メールの転送を行うスクリプトを実行したい場合(仕分けルールの転送やリダイレクトを利用するのが簡単であるが、転送やリダイレクト処理はExchange Serverのメールボックスの場合には、サーバ側で処理され転送先のドメイン名などで正常に処理されない場合が多い)※逆に、スクリプトで実行させる場合にはOutlookを起動しておく必要があるので注意
スクリプト(VBA)の準備
所定の引数を持つサブプロシージャを追加することで仕分けルールの画面でスクリプトを選択することができる
- Outlookを起動する。
- VBAを起動(Alt+F11)する。
- 標準モジュール(Module1など)を追加する。
- 追加した標準モジュールに以下のサブプロシージャを追加する。
- [ファイル|上書き保存]メニューで標準モジュールの変更を保存する。
Sub CustomRule_ForwardMail(Item As Outlook.MailItem)
Const TO_ADDRESS = "転送先のメールアドレス"
Dim objForwardItem As Outlook.MailItem
Dim strSenderName As String
Dim strToName As String
Dim strCCName As String
strSenderName = Item.SenderName
strToName = Item.To
strCCName = Item.CC
Set objForwardItem = Item.Forward
objForwardItem.To = TO_ADDRESS
objForwardItem.Body = "Forward This Mail By Outlook Script." & vbCrLf _
& "-----------------------------------------" & vbCrLf _
& "From: " & strSenderName & vbCrLf _
& "To: " & strToName & vbCrLf _
& "CC: " & strCCName & vbCrLf & vbCrLf _
& Item.Body
objForwardItem.Recipients.ResolveAll
objForwardItem.Send
End Sub
VBAプロジェクトにデジタル署名を追加
スクリプト(VBA)を実行するために、Officeのセキュリティで止められないようにデジタル署名を追加する
※デジタル署名がない場合にはOutlookのマクロセキュリティを低くする必要があり、運用上のリスクが上がる
- 利用可能なデジタル署名を用意して、インポートする。
- Outlookを起動する。
- VBAを起動(Alt+F11)する。
- [ツール|デジタル署名]メニューを選択する。
- [デジタル署名]画面で[署名]項目の[選択]ボタンを選択し、用意したデジタル署名を選択する。
- [OK]ボタンを選択する。
- [ファイル|上書き保存]メニューで標準モジュールの変更を保存する。
仕分けルールの作成
- Outlookを起動する。
- [自動仕分けウィザード]を起動する。
- [新しい仕分けルールを作成]から、[受信メッセージにルールを適用する]を選択する。
- [次へ]ボタンを選択する。
- [宛先またはCCに自分の名前がある場合]項目のチェックボックスにチェックをつける。
- [次へ]ボタンを選択する。
- [スクリプトを実行する]項目のチェックボックスにチェックをつける。
- 下の[スクリプトを実行する]のリンク部分を選択し表示された[スクリプトの選択]画面から[Project.CustomRule_FowardMail]を選択する
- [OK]ボタンを選択する。
- [完了]ボタンを選択して[自動仕分けウィザード]を完了する。
- [仕分けルール]に[宛先またはCCに自分の名前がある場合(クライアントルール)]が追加される。
仕分けルールのテスト
受信トレイに沢山メールがある場合には、すべてを転送してしまうためあらかじめ、テスト用のメール1~2通を残して別のフォルダなどに移動しておく
- Outlookを起動する。
- [仕分けルールと通知]画面を表示する([ルール|仕分けルールと通知の管理]メニューなど)
- [宛先またはCCに自分の名前がある場合]項目のチェックボックスにチェックが付いている場合には外しておく。
- [仕分けルールの実行]ボタンを選択する。
- [仕分けルールの実行]画面の[実行する仕分けルールの選択]内の[宛先またはCCに自分の名前がある場合]チェックボックスにチェックを付ける。
- [実行するフォルダ]が[受信トレイ]になっていること[サブフォルダを含む]チェックボックスのチェックが外れていることを確認して、[今すぐ実行]ボタンを選択します。
- スクリプトが実行され、指定したメールアドレスに転送される。
うまく動作しない場合には、Outlookを再起動しセキュリティの確認画面などが表示された場合には、デジタル署名の内容を確認して、プロジェクトに追加したデジタル署名と同じ内容であれば[マクロを有効にする]を選択してスクリプト(VBA)が動作可能な状態にしてからテストを行う
仕分けルールの適用
テストが正常に動作したのを確認して、仕分けルールを適用する
- Outlookを起動する。
- [仕分けルールと通知]画面を表示する([ルール|仕分けルールと通知の管理]メニューなど)
- [宛先またはCCに自分の名前がある場合]項目のチェックボックスにチェックが付ける。
- 他の仕分けルールがある場合には、ルールの適用順序を変更する(フォルダに移動するルールなどが直前にある場合には、転送ルールで転送されません)
- [適用]または[OK]ボタンを選択して[仕分けルールと通知]画面を閉じます。
- 適当なメールを送信してメールが転送されるか確認します。
この記事へのコメント