前提・実現したいこと
VBAからOutlookを通して送るHTMLメールが、元のコードのままで送られるようにしたい。
(Outlook側の設定で解決できるのであれば、その設定をお教えいただきたいです。)
発生している問題
<iOSでメールを見た場合> デフォルトメールアプリだけでなくGmailアプリなどで見ても、font-familyが効いておらず、iOSデフォルトの明朝体で表示される。 その他にも、幅100%を指定していても左右にmarginが発生する。それ以外のスタイルは反映している。 <WindowsやMacOSで見た場合> 上記のような問題は見られない。 <送信確認画面で送信ファイルをhtml形式で保存してソースを見てみる> 元のコードはスタイルをすべてインラインにしたもので、font-familyは*にあてていたのに、送信時のhtmlファイルはfont-familyの一部が消えていたりする。(font-family自体は一部残っている)
Outlookを起動するVBAコード
Sub sendMailByOutlook_UTF8() Dim objOutlook As Outlook.Application Set objOutlook = New Outlook.Application Dim objMail As Outlook.MailItem Set objMail = objOutlook.CreateItem(olMailItem) Dim oAccount As Outlook.Account Set oAccount = Session.accounts("メールアカウント") Dim mailBody As String, Target As String Target = メール本文になるHTMLファイルのパス With CreateObject("ADODB.Stream") .Charset = "UTF-8" .Open .LoadFromFile Target mailBody = .ReadText .Close End With With objMail .To = "宛先アドレス" .Subject = "メールタイトル" .HTMLBody = mailBody .BodyFormat = olFormatHTML .SendUsingAccount = oAccount End With '送信画面の確認 objMail.Display End Sub
試したこと
・発送元メールアドレスがGmailなので、CDOで送った場合は上記の問題は起こらなかったため、Outlookを通して送ることで問題が発生しているのではと予想している(CDOはセキュリティ上、使いたくない)
・HTML本文の設定(スタイルや文字コード、宣言など)を数々試したが、どれも同じ結果になった。
補足情報(FW/ツールのバージョンなど)
Office 365を使用しています。
Google APIを使用するしかないのかと考えているのですが、それはそれで骨が折れる方法なようなので、Outlookの設定やVBAで回避できる方法があるようでしたらご教示いただきたくご質問をさせていただきます。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/07 02:59
2019/08/07 06:19
2019/08/09 12:41