.net 用iis 做stmp服务器发邮件

1、用本机iis发送邮件(163、qq测试通过,126发不出去,老是收到退信,原因可能是126对免费用户不支持pop3和smtp)
SmtpClient SmtpMail = new SmtpClient();
            //SmtpMail.Host = "localhost";
            SmtpMail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;//指定使用本机stmp服务器 
            MailMessage mail = new MailMessage();
            mail.To.Add("[email protected]");//要发送到的邮箱地址
            mail.From = new MailAddress([email protected], "我是管理员-呼", Encoding.UTF8);//发件人地址(地址必须可用,stmp服务必须开,发送可以不用密码)/发送者昵称/编码
            mail.Subject = "管理员回复";
            mail.Body = "您发布的物品已通过审批!";
            try
            {
                SmtpMail.Send(mail);
                MessageBox.Show("发送成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


需要安装iis服务.net 用iis 做stmp服务器发邮件_第1张图片,并开启stmp虚拟服务

参考:http://www.cnblogs.com/alexworks/articles/1621127.html

2、用服务端iis发送邮件(设置要比本机复杂一点,详见下)

SmtpClient SmtpMail = new SmtpClient();
            SmtpMail.Host = "192.168.0.112";//直接使用IP,即使在别的电脑也可以访问,前提是防火墙必须关掉,以及允许匿名访问
            SmtpMail.Port = 8088;
            //SmtpMail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;//指定使用本机stmp服务器 
            MailMessage mail = new MailMessage();
            mail.To.Add("[email protected]");//要发送到的邮箱地址
            mail.From = new MailAddress("[email protected]", "我是管理员-呼", Encoding.UTF8);//发件人地址(地址必须可用,stmp服务必须开,发送可以不用密码)/发送者昵称/编码
            mail.Subject = "管理员回复";
            mail.Body = "您发布的物品已通过审批!";
            try
            {
                SmtpMail.Send(mail);
                MessageBox.Show("发送成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


 stmp端口可以自己设定,设置后重新启动stmp服务,即可生效,总共需要设置有三点:1、IP地址 2、访问--连接--选中仅以下列表除外 3、设置中继限制---选中仅以下列表,然后添加本机IP(和1设置的一致),其余默认即可;需要注意的是 计算机名不能是 汉字名称,如“张三”(仅限第二种解决方案,第一种可以是汉字);

.net 用iis 做stmp服务器发邮件_第2张图片

你可能感兴趣的:(.net 用iis 做stmp服务器发邮件)