System.Web.Mail

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

故我们可以自己添加相关的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";
}
 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值