您的位置:首页 > 编程语言 > ASP

ASP.NET 调用2008部署的SMTP服务自动发邮件

2014-03-27 14:33 447 查看
很多时候,开发的web应用程序由于需要向用户发送邮件提醒,不得不使用SMTP协议完成自动邮件转发。邮件的常用协议包括SMTP和POP3,对于POP3而言功能更强大,但是仅作为发送段的邮件提醒或类似验证链接之类请求,用SMTP无疑是最好的选择。

1、首先,我们得在自己的windows服务器上部署好IIS,以2008为例,添加SMTP服务。

进入“控制面板”——“管理工具”——“服务器管理器”——“功能”——右边“添加功能”——选择“SMTP服务器”,添加时会提示安装必要的IIS6.0组件,默认安装就可以了,如图:



2、进入IIS6.0 ,可以看到[SMTP virtual server #1]的服务。下面做的就是要保证程序如何与SMTP进行互通。LT是在虚拟机下做的实验,虚拟机IP为192.168.137.10,保证虚拟机能够联网,否则无法用SMTP发邮件。

默认情况下,SMTP服务是禁止任何IP段访问自身的SMTP服务的,应该是处于防止垃圾邮件保护。接下来的就是设置如何访问SMTP。右键[SMTP virtual server ] ,点击属性:



进入访问选项卡:





为了进行最基本的测试,身份验证可以选择匿名(默认):





但是“链接”和“中继”里面需要修改,将“仅以下列表”改为“仅以下列表除外",这里的意思大致是哪些ip能够访问我的SMTP服务。



点击确定即可。或者选择“仅一下列表”,将自己的主机地址添加进入。



现在即部署好SMTP服务。

3、利用c# 连接SMTP服务,自动发送邮件。

主函数代码,想邮箱des发送消息mess :

protected void Button1_Click(object sender, EventArgs e)
{
string des = "longteng_1116@163.com";
string mess = "测试";
if (IF_Mail.SendEmail(des, mess))
IF_WebPopMessage.PopMessage(Button1, "发送成功");
else
IF_WebPopMessage.PopMessage(Button1, "发送失败!");
}


连接SMTP,发送邮件,需要添加引用

using System.Net;

using System.Net.Mail;

public static bool Send_Message(string user_mail, string message)
{

string des = user_mail;
string mess = message;
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
//smtp.EnableSsl = true;   //smtp服务器是否启用SSL加密,为设置为false
smtp.Host = "192.168.137.10"; //指定 smtp 服务器地址
//  smtp.Port = 25;             //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true;
//如果需要认证,则用下面的方式
//smtp.Credentials = new NetworkCredential("administrator", "************");
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.From = new MailAddress("hello@long.cn", "LT-SMTP服务器", System.Text.Encoding.UTF8);
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码
mm.ReplyTo = new MailAddress("longteng_1116@163.com", "BookTouch", System.Text.Encoding.UTF8);
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
//上面后两个参数的意义, 同 From 的意义.Encoding.GetEncoding(936)
mm.To.Add(des);
//邮件的接收者
mm.Subject = "Web系统通知"; //邮件标题
mm.SubjectEncoding = System.Text.Encoding.UTF8;
mm.Body = mess;
mm.BodyEncoding = System.Text.Encoding.UTF8;
mm.IsBodyHtml = true;                       //邮件正文是否是HTML格式
mm.BodyEncoding = System.Text.Encoding.UTF8;
smtp.Send(mm);
return true;
}


进入邮箱查收验证





代码下载地址:http://download.csdn.net/detail/longteng1116/7107097
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐