if ((text2 != null) || (message.Fields.Count > 0))
{
object obj4 = SmtpMail.LateBoundAccessHelper.GetPropStatic(obj1, "Configuration");
if (obj4 != null)
{
if (text2 != null)
{
SmtpMail.LateBoundAccessHelper.SetPropStatic(obj4, "Fields", "http://schemas.microsoft.com/cdo/configuration/sendusing", 2);
SmtpMail.LateBoundAccessHelper.SetPropStatic(obj4, "Fields", "http://schemas.microsoft.com/cdo/configuration/smtpserver", text2);
SmtpMail.LateBoundAccessHelper.SetPropStatic(obj4, "Fields", "http://schemas.microsoft.com/cdo/configuration/smtpserverport", 0x19);
}
foreach (DictionaryEntry entry1 in message.Fields)
{
SmtpMail.LateBoundAccessHelper.SetPropStatic(obj4, "Fields", (string) entry1.Key, entry1.Value);
}
object obj5 = SmtpMail.LateBoundAccessHelper.GetPropStatic(obj4, "Fields");
SmtpMail.LateBoundAccessHelper.CallMethodStatic(obj5, "Update", new object[0]);
Marshal.ReleaseComObject(obj5);
Marshal.ReleaseComObject(obj4);
}
}
因为如下的信息:
foreach (DictionaryEntry entry1 in message.Fields)
{
SmtpMail.LateBoundAccessHelper.SetPropStatic(obj4, "Fields", (string) entry1.Key, entry1.Value);
}
[/code]
故我们可以自己添加相关的CDO属性:
如使用需要认证的SMTP SERVER,则我们可以加入
MailMessage myMail = new MailMessage();
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",userName);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",password);
这样就达到了认证的效果.
例子代码如下:
//邮件内容为文本还是HTML
myMail.Body = Web.Mail.MailFormat.Html;
//邮件级别
myMail.Priority = Web.Mail.MailPriority.High;
//SmtpMail.SmtpServer = "smtp.163.com";
SmtpMail.Send(myMail);
附CdoConfiguration相关属性参考:
public abstract class CdoConfiguration
{
// Fields
[MarshalAs(UnmanagedType.BStr)]
public const string cdoAutoPromoteBodyParts = "http://schemas.microsoft.com/cdo/configuration/autopromotebodyparts";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoFlushBuffersOnWrite = "http://schemas.microsoft.com/cdo/configuration/flushbuffersonwrite";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoHTTPCookies = "http://schemas.microsoft.com/cdo/configuration/httpcookies";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoLanguageCode = "http://schemas.microsoft.com/cdo/configuration/languagecode";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPAccountName = "http://schemas.microsoft.com/cdo/configuration/nntpaccountname";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/nntpauthenticate";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/nntpconnectiontimeout";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPServer = "http://schemas.microsoft.com/cdo/configuration/nntpserver";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPServerPickupDirectory = "http://schemas.microsoft.com/cdo/configuration/nntpserverpickupdirectory";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPServerPort = "http://schemas.microsoft.com/cdo/configuration/nntpserverport";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoNNTPUseSSL = "http://schemas.microsoft.com/cdo/configuration/nntpusessl";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoPostEmailAddress = "http://schemas.microsoft.com/cdo/configuration/postemailaddress";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoPostPassword = "http://schemas.microsoft.com/cdo/configuration/postpassword";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoPostUserName = "http://schemas.microsoft.com/cdo/configuration/postusername";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoPostUserReplyEmailAddress = "http://schemas.microsoft.com/cdo/configuration/postuserreplyemailaddress";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoPostUsingMethod = "http://schemas.microsoft.com/cdo/configuration/postusing";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSaveSentItems = "http://schemas.microsoft.com/cdo/configuration/savesentitems";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSendEmailAddress = "http://schemas.microsoft.com/cdo/configuration/sendemailaddress";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSendUserReplyEmailAddress = "http://schemas.microsoft.com/cdo/configuration/senduserreplyemailaddress";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPAccountName = "http://schemas.microsoft.com/cdo/configuration/smtpaccountname";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPServerPickupDirectory = "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoSMTPUseSSL = "http://schemas.microsoft.com/cdo/configuration/smtpusessl";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoURLGetLatestVersion = "http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoURLProxyBypass = "http://schemas.microsoft.com/cdo/configuration/urlproxybypass";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoURLProxyServer = "http://schemas.microsoft.com/cdo/configuration/urlproxyserver";
[MarshalAs(UnmanagedType.BStr)]
public const string cdoUseMessageResponseText = "http://schemas.microsoft.com/cdo/configuration/usemessageresponsetext";
}
相关链接:
1.
www.systemwebmail.com
2.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmail.asp
net2.0下
.net Framework 2.0 下,在 System.Net.Mail 命名空间中提供了对邮件操作的支持,他的功能更强大。比如你的邮件服务器需要验证才能发送邮件,代码就只需简单成如下:
public static void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
...{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}
我们可以通过修改 UseDefaultCredentials Credentials DeliveryMethod 等属性,方便的支持各种情况下发送邮件的方式。