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

很多时候,开发的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 ] ,点击属性:1

 

进入访问选项卡:

2

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

3

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

 

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

 

现在即部署好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; 
        }


进入邮箱查收验证

8

  代码下载地址:http://download.csdn.net/detail/longteng1116/7107097

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_千鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值