asp.net 使用本地SMTP服务进行邮件发送

发布时间:2015/6/23 15:20:53 浏览量:860

windows的SMTP服务,非邮件系统,所以不要混肴了SMTP和邮件系统的概念。在系统中搭建SMTP服务,是为了更好的表现邮件发送者的邮箱地址和更快的进行邮件发送而已。其他的用途,我们不在这里阐述。我们这里要讲的是在asp.net程序里,如何通过SMTP服务,进行一些简单邮件的发送。比如要实现用户在网站注册后,要发送一个激活链接到用户注册的邮箱等。

前提:
1、要有属于你自己的服务器。
2、要有属于你自己的域名(可进行域名管理)。

SMTP服务的安装步骤:
windows 2008 默认是不安装SMTP服务的,需要我们手动安装,打开“服务器管理器”,添加功能,选择 SMTP服务,如下图:
1.jpg
当中会提示你要安装IIS6管理器,如果没有提示,自己添加进去,如下:
2.jpg
然后就是“下一步”直到安装完成。

SMTP服务的配置:
打开IIS6管理器,这时你会看到一个SMTP的虚拟服务已经在运行,如下图:
3.jpg
打开属性,常规项的 ip 设置默认“所有未分配”,点击“高级”,你会看到默认的端口号为 25,如果你的不一样,可以在这里设置。
4.jpg

访问 项,“身份验证”,只保留“匿名访问”为选中状态:
5.jpg6.jpg

“连接”,选中“仅以下列表”,然后添加本地ip:
7.jpg

“中继”,也是一样,选中“仅以下列表”, 然后添加本地ip:
8.jpg

都用“仅以下列表”和本地ip是为了安全,意思就是仅允许部署到服务器的asp.net 程序能使用。

邮件项,保持默认即可。
传递项,的高级里,把你的邮箱服务域名填进来。(一般我们会注册一个二级域名,如:mail.abc.com)如下图:
12.jpg

好了,至此,您的SMTP服务就算是搭建完毕了。可以用 nslookup 进行您的域名测试:
13.jpg

或者新建一个txt文本文件,内容如下:

From: blog@yourdomain.com
To: email@yourdomain.com
Subject: Email test
 
This is the test body of the email

然后,把这个txt文件拷贝到 C:\inetpub\mailroot\Pickup 目录,如果您的SMTP已经搭建好,你发现这个文件很快就会被发送出去了。

如果需要SMTP服务随服务器启动,还要自行设置一下服务“SMTPSVC”让它自动启动。

asp.net 程序编写邮件发送:
string mymail = "my@abc.com"; //这里的邮件地址,可以任意填,因为这里只管发送,不管接收。
string myname = "我的邮箱";
MailMessage message = new MailMessage();
message.From = new MailAddress(mymail, myname );
//收件人地址 message.To.Add(new MailAddress("your@abc.com")); message.Subject = "邮件标题";
message.IsBodyHtml = true;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Body = "邮件内容";
SmtpClient client = new SmtpClient("localhost", 25); //设置为本地的SMTP服务端口
client.Send(message);

如此,就实现了用asp.net结合本地SMTP服务发送邮件的功能。

本例只是抛砖引玉,未经长期实验认证,因为别人的邮件系统有可能做了一些限制,比如加密啊或者需要什么证书啊什么的,或者您的域名已经被拉到黑名单啦什么的。这些情况目前还没碰到,如果有更好的办法,希望列举出来大家参考参考。

网友回复
总数:0 当前页:1 / 0 首页 上页 下页 末页
回复

品码堂 (关于我们

桂ICP备13004001号