受信した電子メールを読み取り、テキストの静的形式 (私の場合は「#」の後に 6 つの整数が続く) を認識し、それを Web ページへのハイパーリンクにする方法またはプログラムをご存知の方はいませんか?
似たようなものがあると思います。これは、「www.google.com」と入力して Enter キーまたはスペース キーを押すと、自動的にハイパーリンクに変換されるのと同じ方法で動作します。これは作成したメールの場合で、私は受信したメールでこれを探しています。
答え1
バグ/欠陥追跡アプリケーションでバグへのハイパーリンクを自動的に作成しようとしていますか?
最も簡単な方法は、電子メールを送信するソフトウェアを変更して、ハイパーリンク自体を作成することです...
それでも手動で実行したい場合は、私が作成した、機能すると思われる簡単なガイドがあります (非常に軽くテストしましたが、名目上は設計どおりに機能します)。
ステップ1: リボンの[開発]タブを有効にする
オプションをクリックします:
[リボンのカスタマイズ] をクリックし、[開発] チェックボックスをクリックします。
ステップ2: VBAに移動してコードを入力します
Visual Basicをクリックします:
ダブルクリックしてこのOutlookセッションモジュールを作成し、次のコードを貼り付けます。
さて、コードは次のようになります。
Option Explicit
Sub InsertHyperLink(MyMail As MailItem)
Dim body As String, re As Object, match As Variant
body = MyMail.body
Set re = CreateObject("vbscript.regexp")
re.Pattern = "#[0-9][0-9][0-9][0-9][0-9][0-9]"
For Each match In re.Execute(body)
body = Replace(body, match.Value, "http://example.com/bug.html?id=" & Right(match.Value, 6), 1, -1, vbTextCompare)
Next
MyMail.body = body
MyMail.Save
End Sub
保存アイコンをクリックするか、 を押しますCtrl+S
。
ステップ3: スクリプトを実行するカスタム ルールを作成します。
ルールとアラートの管理に移動します。
[新しいルール...] をクリックします。
「受信したメッセージにルールを適用する」をクリックし、「次へ」をクリックします。
特定のメッセージに対してのみルールを実行する場合は、ここで任意の条件を選択できます。本文に「#123456」を含むメッセージのフィルタリングについては心配する必要はありません。これはコード内で行われます。したがって、必要に応じて、たとえば「From:」または件名でフィルタリングするだけです。これはオプションです。
「スクリプトを実行」を選択します。下部のボックスにある青い下線付きの「スクリプト」というテキストをクリックします。
先ほど作成したスクリプトを選択します。ダイアログが小さいため、スクリプトの名前が切り取られている可能性がありますが、問題ありません。
この時点で、ダイアログが消えるまで、下部にある「次へ」と「完了」を繰り返しクリックするだけで完了します。
次に、自分自身にメールを作成して(または、カスタム条件を指定した場合は、期待する送信者または件名からメールを受信して)、次のような番号を挿入します。
#123456
体内に取り込み、送信します。
メール メッセージを受け取ると、その URL が記載されているはずですhttp://example.com/bug.html?id=123456
(「123456」は選択した 6 つの数字に置き換えられます)。
コード内の URL 文字列を変更することで、スクリプト コードをカスタマイズして別の URL を指すようにすることができます。また、数字を保持または削除したり、その他のさまざまな操作を実行したりすることもできます。
この回答には昼休み全体を費やしました。価値があると思ったら、ぜひ投票してください。何か難しいことや質問がある場合は、コメントでお知らせください。
非常に役立ちますStackOverflow の質問。少なくともこれを実装するための実現可能なアプローチを教えてくれました。Outlook で件名ヘッダーを追加する (VBA)