关于通过SMTP服务器群发邮件的实现——我的Web开发心得

来源:互联网 发布:山东长川软件 编辑:程序博客网 时间:2024/05/16 11:33

在asp.net中发邮件变得非常简单了,核心代码如下:


  1.         public void SendMail(string to,string from,string subject,string body,string server, string user, string password)
  2.         {
  3.             try
  4.             {
  5.                 MailMessage message = new MailMessage(from,to,subject,body);
  6.                 //回复地址。
  7.                 if (!string.IsNullOrEmpty(ReplyTo))
  8.                 {
  9.                     message.ReplyTo = new MailAddress(ReplyTo);
  10.                 }
  11.                 message.IsBodyHtml = IsBodyHtml;
  12.                 message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");                
  13.                 SmtpClient client = new SmtpClient(server);
  14.                 // Add credentials if the SMTP server requires them.                
  15.                 client.Credentials = new NetworkCredential(user, password);
  16.                 client.Send(message);
  17.             }
  18.             catch (Exception ex)
  19.             {
  20.                 WriteErrorLog(ex.ToString());
  21.                 
  22.             }
  23.         }

将相应的邮件写好就可以发邮件了,但是由于各邮件服务器商的限制,我试过我的sohu,126,qq邮箱都不能正常发送,都会给出相应的错误提示,实际上并故事代码的错,而是被服务器禁止了。


那么怎么解决这个问题呢?对于正式的项目来说都会有单独的服务器。笔者本人也是这样,在服务器上配置STMP服务是一个比较好的选择。SMTP是通过添加Windows组件来完成安装。如下图所示。



安装的配置也很简单,为了安全最好改个端口,比如我就是改成60025,呵呵不要照抄哦,否则我会知道。还有设置好允许访问的Ip就行了。


当然服务器肯定要有个外网IP。最好有独立域名,这样使用起来方便一些。