在asp.net中发邮件变得非常简单了,核心代码如下:
- public void SendMail(string to,string from,string subject,string body,string server, string user, string password)
- {
- try
- {
- MailMessage message = new MailMessage(from,to,subject,body);
- //回复地址。
- if (!string.IsNullOrEmpty(ReplyTo))
- {
- message.ReplyTo = new MailAddress(ReplyTo);
- }
- message.IsBodyHtml = IsBodyHtml;
- message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
- SmtpClient client = new SmtpClient(server);
- // Add credentials if the SMTP server requires them.
- client.Credentials = new NetworkCredential(user, password);
- client.Send(message);
- }
- catch (Exception ex)
- {
- WriteErrorLog(ex.ToString());
- }
- }
将相应的邮件写好就可以发邮件了,但是由于各邮件服务器商的限制,我试过我的sohu,126,qq邮箱都不能正常发送,都会给出相应的错误提示,实际上并故事代码的错,而是被服务器禁止了。
那么怎么解决这个问题呢?对于正式的项目来说都会有单独的服务器。笔者本人也是这样,在服务器上配置STMP服务是一个比较好的选择。SMTP是通过添加Windows组件来完成安装。如下图所示。
安装的配置也很简单,为了安全最好改个端口,比如我就是改成60025,呵呵不要照抄哦,否则我会知道。还有设置好允许访问的Ip就行了。
当然服务器肯定要有个外网IP。最好有独立域名,这样使用起来方便一些。