[英]Send already generated MHTML using CDOSYS through C#?
我已經准備好生成一個MHTML作為字節數組(來自Aspose.Words),並希望將其作為電子郵件發送。 我正在嘗試通過CDOSYS進行此操作,盡管可以接受其他建議。 現在,盡管我有以下內容:
CDO.Message oMsg = new CDO.Message();
CDO.IConfiguration iConfg = oMsg.Configuration;
Fields oFields = iConfg.Fields;
// Set configuration.
Field oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
oField.Value = CDO.CdoSendUsing.cdoSendUsingPort;
oField = oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"];
oField.Value = SmtpClient.Host;
oField = oFields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"];
oField.Value = SmtpClient.Port;
oFields.Update();
//oMsg.CreateMHTMLBody("http://www.microsoft.com", CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
// NEED MAGIC HERE :)
oMsg.Subject = warning.Subject; // string
oMsg.From = "system@example.com";
oMsg.To = warning.EmailAddress;
oMsg.Send();
在此代碼段中,警告變量的Body屬性為byte []。 在上面的代碼中它在“ NEED MAGIC HERE”處顯示的位置,我想使用此byte []設置CDO消息的正文。
我嘗試了以下方法,這毫無疑問是行不通的:
oMsg.HTMLBody = System.Text.Encoding.ASCII.GetString(warning.Body);
有人對我如何使用CDOSYS或其他東西實現自己想要的東西有任何想法嗎?
請不要使用CDO,它可以追溯到計算機仍然使用煙霧信號交換電子郵件的時代。 System.Net.Mail包含您需要的一切,MailMessage是您的朋友。 請注意其IsBodyHtml屬性。
可以通過CDO.Message(必須將其添加到項目引用COM庫“ Windows 2000庫的Microsoft CDO”中):
protected bool SendEmail(string emailFrom, string emailTo, string subject, string MHTmessage)
{
string smtpAddress = "smtp.email.com";
try
{
CDO.Message oMessage = new CDO.Message();
// set message
ADODB.Stream oStream = new ADODB.Stream();
oStream.Charset = "ascii";
oStream.Open();
oStream.WriteText(MHTmessage);
oMessage.DataSource.OpenObject(oStream, "_Stream");
// set configuration
ADODB.Fields oFields = oMessage.Configuration.Fields;
oFields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = CDO.CdoSendUsing.cdoSendUsingPort;
oFields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = smtpAddress;
oFields.Update();
// set other values
oMessage.MimeFormatted = true;
oMessage.Subject = subject;
oMessage.Sender = emailFrom;
oMessage.To = emailTo;
oMessage.Send();
}
catch (Exception ex)
{
// something wrong
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.