利用System.Web.Mail 发送邮件

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

System.Web.Mail.SmtpMail.Send

调用了内部方法: SmtpMail.CdoSysHelper.Send(message);

CdoSysHelper.Send的内部方法实现为:

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);

这样就达到了认证的效果.

例子代码如下:

MailMessage myMail = new MailMessage();

myMail.From = emailFrom;

myMail.To = emailTo;

myMail.Subject = subject;

myMail.Body = sb.ToString();

myMail.BodyFormat = MailFormat.Html;

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing","2");

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendemailaddress",emailFrom);

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress",emailFrom);

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname",userName);

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",Your 163.com's userName);

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",your 163.com's password);

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate","1");

myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver","smtp.163.com");

//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";

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航