1、结果图:
2、注意事项
1、要先在IIS管理器中查看你得smtp是如何配置的
因为我代码采取的验证方式是指定凭证验证,所以,在IIS中也需要配置,配置如下:
3、代码实现
//邮箱服务设置
//对应邮箱发送的服务器地址
using (SmtpClient SmtpMail = new SmtpClient("SMTP服务器地址", 端口号))
{
//邮件发送方式:网络
SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network;
//服务器是否使用ssl协议连接
SmtpMail.EnableSsl = false;
//指定身份验证凭证
//SmtpMail.UseDefaultCredentials = true;//默认凭证
SmtpMail.Credentials = new NetworkCredential("账户名", "密码");
//发送邮件设置
MailMessage mailob = new MailMessage();
//发件人地址、姓名、编码
mailob.From = new MailAddress("发件人地址", "预警通知", Encoding.UTF8);
//收件人地址
List<string> employees1 = new List<string>();
//群发邮件
foreach (var employee in employees)
{
mailob.To.Add(employee.ToString() + "邮箱后缀名");
}
mailob.Subject = "预警通知";
mailob.SubjectEncoding = Encoding.UTF8;
mailob.Body = message;
mailob.BodyEncoding = Encoding.UTF8;
return SmtpMail.SendMailAsync(mailob);
}
}
4、难点
1、搞不清楚SMTP中的地址与邮件地址到底有啥区别
2、SSMTP中SSL安全链接有什么作用
3、几个身份验证凭证的区别及代码实现,暂时还没搞清楚,哈哈哈如果有大佬知道,可以指导一下
解决:
1、通过代码可以看出SMTP中的地址是SMTP服务器地址和端口号,而邮件中的地址则是发件人/收件人邮件地址,两者是不同的;
2、SSL安全链接,以下是我找的资料,大家可以对比观看
****本文为CSDN博主「园中杨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaofeiyuan/article/details/108808077****
使用ssl安全链接发送邮件:ssl(port: 465 & 994),创建SMTP_SSL对象,实现ssl安全连接
:param host: 126邮件服务器地址
:param user: 发件人
:param pwd: 授权码
:param receivers: 收件人
:param msg: 邮件内容对象
:param port: 126邮件服务器端口
:return:
"""
smtp_obj = None
try:
smtp_obj = smtplib.SMTP_SSL(host, port)
smtp_obj.login(user, pwd)
smtp_obj.sendmail(user, receivers, msg.as_string())
logging.info("{} send mail, subject {}".format(user, msg["Subject"]))
except Exception as e:
logging.error("fail to send mail {}, msg {}".format(e, msg.as_string))
finally:
smtp_obj.close()
————————————————