画像が埋め込まれたメールの送信に問題があります。ワードエディターを使用していくつかの解決策を試しましたが、状況を解決できません。クライアントが望んでいないので、私は SmtpClient を使用できません。彼には交換があり、送信済みフォルダーにメールを送信する必要があります。
たとえば、html形式でメールを送信したい。ヘッダーの画像 - ロゴとフッターの画像 - サイン。
HTML テンプレートを文字列としてデータベースに保存し、メールの外観と目的を増やしました。送信時に置き換えられる変数を使用して挿入する特定のデータ。
mailitem.wordeditor を使用せず、インスペクターを表示する必要なく、データベースに保存されている画像を電子メールに追加する方法を知っている人はいますか? 画像がすでにディスク上にあるか、何らかの方法で使用されているストリームであると仮定しましょう?
私のアプリケーションは、別のウィンドウでユーザーに通知せずにバックグラウンドで送信する必要があります。wordeditor を使用して画像を追加するには、インスペクターを表示する必要があります。そして、すぐに閉じても点滅します。
2 番目の問題は、mailitem の HTMLBody プロパティをフォーマットする方法です。通常の HTML は受け付けず、いわゆる html のみを受け付けます。彼らの単語htmlを勉強することは本当に必要ですか?
最初に MailMessage を使用しましたが、このテンプレートは画像や代替ビューでも機能しました。MailMessage を使用して Outlook 経由で送信する可能性があるかもしれませんが、私はそれを知りません。
anoyneはそれに出くわしましたか?
public void SendEmailViaOutlook()
{
//in template I mostly need to use table and css to divide email into blocks - header, content, footer
String htmlTemplate = "<html>\n";
htmlTemplate += " <head>\n";
htmlTemplate += " <style type=\"text//css\">\n";
htmlTemplate += " #Header {border-width: 1; border: solid; text-align: center}\n";
htmlTemplate += " #Content {border-width: 1; border: solid; text-align: center}\n";
htmlTemplate += " #Footer {border-width: 1; border: solid; text-align: center}\n";
htmlTemplate += " </style>\n";
htmlTemplate += " </head>\n";
htmlTemplate += " <body>\n";
htmlTemplate += " <table>\n";
htmlTemplate += " <tr><td><img src=\"cid:companylogo\"/></td></tr>\n";
htmlTemplate += " <tr><td><div id=\"Header\">$HEADER$</div></td></tr>\n";
htmlTemplate += " <tr><td><div id=\"Contentr\">$CONTENT$</div></td></tr>\n";
htmlTemplate += " <tr><td><div id=\"Footer\">$FOOTER$</div></td></tr>\n";
htmlTemplate += " <tr><td><img src=\"cid:usersign\"/></td></tr>\n";
htmlTemplate += " </table>\n";
htmlTemplate += " </body>n";
htmlTemplate += "</html>\n";
//the code is simplified to demostrate problem
//$CONTENT etc. will be replaced by another html from custom html wysiwyg editor
try
{
Outlook.Application outlook = new Outlook.Application();
Outlook._MailItem outLookMailMessage = outlook.CreateItem(Outlook.OlItemType.olMailItem) as Outlook._MailItem;
outLookMailMessage.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
/*
here a I have problem to set the property - my template is not
set and a blank email is sent - almost none html it takes except the example from msdn http://support.microsoft.com/kb/310262, are there some rules how to write it?
*/
outLookMailMessage.HTMLBody = htmlTemplate;
outLookMailMessage.Subject = this.Subject;
outLookMailMessage.Recipients.Add("somenone@somewhere.com");
/*
here I woud need somehow link 2 images with cid companylogo and usersign
*/
outLookMailMessage.Send();
outLookMailMessage = null;
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
どんな助けでも大歓迎です!