关于C#发送邮件的一点体会

    曾经以为,在.Net组件这么完备的情况下,做一个发送邮件的功能,应该不是什么难事 .可上周真的开始做了以后,竟差点几乎丧失信心,因为"与服务器的连接传输失败"这个错误我看见太多次了,以至于不敢相信会有成功的时候,晕!这个功能我大概弄了一周的时间,从周1开始,一直到周5,开始以为是代码错误,换了N种发法还是不行,可明明网上写的就是很简单嘛,直到周5,突然意识到,会不会是连接smtp服务器的帐号密码错误啊,结果用Outlook一试果然不行.原来Notes邮件服务器和一般的不大一样,他需要另外设一个帐号和密码去获得smtp的验证,叫Internet密码,并不是普通的登录Notes邮箱的帐号和密码.郁闷归郁闷,还是学到了点东东,总结如下,希望对大家有所帮助.

   首先要保证一点,就是现在的smtp服务器大多需要验证,如果需要验证的话,那是需要填写该服务器帐号和密码的,为了这一点,你可以用Outlook在程序服务器上或者本机试验一下是否能用该帐号收发邮件,如果OK那就说明帐号没问题,不能则需要检查下.另外说明一点,对于Notes邮件服务器,他需要验证的帐号和密码,不是普通的邮箱帐号和密码,而是可以单独设置的,这个不明白的可以问一下你们的Notes管理员.其他的就没什么了,老惯例,我还是把测试成功的代码公布出来,其实这种代码很多,值得注意的是我前面提到的.代码如下:

System.Web.Mail.MailMessage mailObj = new System.Web.Mail.MailMessage();
   // 发送者,接受者,标题,内容
   mailObj.From ="lixy@cnooc.com.cn";
   mailObj.To ="liujt119@126.com";
   mailObj.Subject = "HSE测试mail";
   mailObj.Bcc="abc@cnooc.com.cn";

mailObj.BodyFormat = MailFormat.Text;
   mailObj.Body ="能发了吧,嘿嘿";
   mailObj.Priority=MailPriority.High;

mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate","1"); //basic authentication
   mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername","lixy"); //set your username here
   mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "1"); //set your password here
   SmtpMail.SmtpServer="19.16.198.24";  
   SmtpMail.Send(mailObj);

posted on 2006-12-06 13:21  catvi  阅读(202)  评论(0编辑  收藏  举报

导航