[英]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.