2017-07-27 14 views
3

GmailをgmailのSMTPサーバーに送信しようとしました。ヘッダーのコンテンツタイプをエンコードする理由:text/html; OutlookプラグインでMailItemを使用すると、GMAILのSMTPサーバーであるSMTP.GMAIL.COMが使用されていますか?

もし私がそのようなコードを書いてHTMLを送っても問題はありません。

 MailMessage mail = new MailMessage("[email protected]", to, subject, body); 
     mail.IsBodyHtml = true; 
     SmtpClient smtpClient = new SmtpClient(smtp); 
     smtpClient.EnableSsl = true; 

     smtpClient.Port = 587; 
     smtpClient.Credentials = new NetworkCredential(userName, password); 
     smtpClient.Send(mail); 

メールはGmailアカウントで受信ヘッダを持つbase64で である:

Subject: Test 
Content-Type: text/html; charset=utf-8 
Content-Transfer-Encoding: base64 

PGh0bWw==(このベース64は、それが唯一の問題のためだ、有効ではありません)

しかし、もし私がOutlook.MailItemを使って私のメールを送信すると、私は何を得るのでしょうか?

Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: quoted-printable 


    <https://fdsafasdfasd.com/images/logo.png> =09 

Cedric Boivin 


[email protected] 


Vous a envoy=E9 un message s=E9curis=E9 vifdasfasdfes 

私のテキストはクリアで、GmailのHTMLでは見えません。 Outlookプラグインに自分のコードがあります

Microsoft.Office.Interop.Outlook.MailItem newMail = Globals.ThisAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
       // newMail.Display(false);           
       newMail.Subject = subject; 

       newMail.To = email.ToLower().Trim(); 
       newMail.Recipients.ResolveAll(); 
       newMail.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML; 
       newMail.HTMLBody = htmlBody; 
       newMail.Send(); 

何か提案がありますか?

答えて

2

は私が問題を発見しました。

私の電子メールを送信すると、いくつかのプロパティをmailItemに設定しました。この記事に関連した

...

Prevent winmail.dat in outlook (for gmail accounts)

が、私はそれらを削除する場合...すべての作業罰金を。

+0

さて、多分あなたが頼まれた変種でこの答えにリンクし、将来誰かを助けるために縛られました。 –

1

Outlookのメールコードでメールを送信してテストしたところ、自分のGmailアカウントにHTML形式のメールが正しく表示されます。私の環境は:VS2015/Outlook2016

興味深いことに、私のテストでは、 - Content-Type: text/plain;Content-Type: text/html;の両方が表示されています。コードはHtmlBodyだけを設定します。

enter image description here

あなたがメールを送信した後Outlookで、あなたの「送信済みアイテム」を見れば、 - メールの形式は何ですか?

おそらくあなたのOutlookの設定で何かがプレーンテキストに変換されています!古いバージョンのOutlookでは、convert to Plain text for specific usersというオプションがあります。万が一、これらのバージョンを使用していて、このオプションを有効にしていますか?私のテストで

は、私が代わりに.HtmlBody.Bodyを設定した場合にのみ、あなたの行動を取得、すなわち、newMail.Body = htmlBody;

+0

Gmailの受信したアイテムをチェックインする必要があります。見通しには何も問題ありません。また、マイクロソフトフォーラムの私のポストを見ることもできます。https://social.msdn.microsoft.com/Forums/en-US/cf09d3fa-27ba-4ac6-9959-d72247be5bf0/try-to-send-html-email -from-outlook-outlookmailitem-and-passing-by-gmail-smtp-server?forum = outlookdev –

+0

別の考え方 - あなたのHTMLの検証を試みることができますか?あなたのHTMLにgmailが気に入らないものがありますか? – Subbu

+0

良い質問です、私はそれを試してみます –

関連する問題