とある技術者の備忘録的情報

メールを送るときにHTMLメールのソースを直接書く方法 Outlook編

HTMLメールはきれいに送ることができていい。たいがいは、phpなどでWeb上でsmtpに渡して送るケースが多いと思うが、
この間、通常のPCメールソフトOutlook2013でHTMLのソースを書いたものを直接送りたいケースがあった。
そのとき、ふと、あれ???どうするんだ?
となった。

普通にメール新規を立ち上げて、本文にソースを書いても、それがそのまま送られてしまうだけ。

Outlook2013でどうやってHTMLソースを編集したらいいんだ???
となった。

ここでは、その方法について、備忘録として記録しておく。

内容は、Outlook2010でも確認済みで問題ない。
が、他のバージョンではテストしていない。

これをするには、OutlookのVBAマクロを利用することでできる。

①まず、標準ではVBAを利用できるようにはなっていないので、使えるようにする。

メニュー(リボン)の空欄のところで、右クリック。
⇒「リボンのユーザー設定」

もしくは、

「ファイル」⇒「オプション」⇒「リボンのユーザー設定」

リボンのユーザー設定

②リボンの追加

「開発」をにチェックを入れる。
リボンー「開発」にチェック

③開発タブができる

Outlook2013-「開発」タブ

④VBAエディタを開く

Outlook-VBA Edit エディタ

⑤VBAエディタでコードを書く場所を開く

「Project1」⇒「Microsoft Outlook Objects」⇒「ThisOutlookSession」

Outlook-コード編集を開く

⑥次のコードを書く

Sub HTMLEdit()
Dim objShell As Object
Dim objFso As Object
Dim strFileName As String
Dim stmFile As Object

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
strFileName = objShell.ExpandEnvironmentStrings("%temp%\") & objFso.GetTempName()
Set stmFile = objFso.CreateTextFile(strFileName, True)
stmFile.WriteLine ActiveInspector.CurrentItem.HTMLBody
stmFile.Close
objShell.Run "%windir%\notepad " & strFileName, , True
Set stmFile = objFso.OpenTextFile(strFileName, 1)
ActiveInspector.CurrentItem.HTMLBody = stmFile.ReadAll
stmFile.Close
objFso.DeleteFile strFileName
End Sub

Outlook - VBA

⑥デジタル署名を追加する

通常はセキュリティのため、署名のないVBAマクロは無効になっている。
Outlookのセキュリティ設定を変更することで、すべてのマクロを警告つきで実行できるようになるが、
セキュリティのことを考えるとあまりお勧めできない。

まずは、自分のデジタル署名を作る。
(Windows 7での仕方)

A.「スタート」⇒「すべてのプログラム」⇒「Microsoft Office」⇒「Microsoft Office ツール」」⇒「VBAプロジェクトのデジタル証明書」
これで、「デジタル証明書の作成」ダイヤログボックスが表示される。

※これが見つからない場合には、インストールオプションで選択されていなかった場合があるので、追加インストールするか、
 次のフォルダで、[selfsert.exe]ファイルを探してみるといい。
 C:\Program Files (x86)\Microsoft\OfficeOffice15\selfsert.exe

B.「証明書の名前」ボックスに、証明書のわかりやすい名前を入力。

C.「OK」をクリック。

D.「SelfCert 成功」というメッセージが表示されたら、「OK」をクリック。

※詳細はOffceの公式をご覧ください。

デジタル署名の準備ができたら、次は作ったVBAマクロのコードにデジタル署名を追加する。

先ほどのVBA Editにて、
「ツール」⇒「デジタル署名」⇒「選択」
で、作成したデジタル署名を追加。
Outlook - VBA - デジタル署名

⑦これで準備完了。メール作成に戻って、マクロの実行

「新しい電子メール」⇒「開発」⇒「マクロ」⇒「Project1.ThisOutlookSession.HTMLOject」([.HTMLOject]は作ったマクロの名前によって変わる)
Outlook - 新規メール - 開発

⑧HTMLメールのソース編集

これでHTMLメールのソースがテキストエディタで開くので、
ここで編集するればよい。

保存して、エディタを閉じれば、メール本文にHTMLの内容が表示される。

Outlook - HTMLソース - 編集

以上である!

文責:牧秀樹

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

スポンサードリンク