提起邮件服务,最早之前一般自建邮件服务器,需要硬软件和运维的支持,稳定性也难保证,随着云服务的普及邮件推送功能的服务化是趋势,也省钱省事省心。
最早开始用过搜狐邮件服务,阿里云生态现在基本都出现了,我们来尝试一下阿里云的邮件推送服务:
一、阿里云控制台操作
首先在阿里云邮件推送控制台添加域名,然后在自己的dns服务器中添加如下的解析(根据控制台中的“配置”):
- 一个主机名为aliyundm的TXT记录,用于验证域名所有权
- 一个主机名为空、值为
v=spf1 include:spf1.dm.aliyun.com -all
的TXT记录,用于防止被当作垃圾邮件 - 一个MX记录
在mac上可以通过nslookup -query=TXT 域名
与nslookup -query=MX 域名
命令查看DNS设置是否生效。
接着在阿里云控制台验证一下域名,验证成功之后,添加一下发信地址(发件地址),并设置一下SMTP密码。
然后通过下面的C#代码使用阿里云邮件推送服务的SMTP就可以发送邮件了。
二、在程序中调用
MailMessage mailMsg = new MailMessage(); mailMsg.To.Add(new MailAddress(" 收件人地址")); mailMsg.From = new MailAddress("控制台创建的发信地址", "显示名称"); // 邮件主题 mailMsg.Subject = "测试邮件主题"; // 邮件正文内容 string text = "这是一封通过阿里云邮件服务发送的邮件"; string html = @"欢迎使用<a href=""https://dm.console.aliyun.com"">邮件推送</a>"; mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain)); mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html)); // 添加附件 string file = "D:\\1.bak"; Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); mailMsg.Attachments.Add(data); //邮件推送的SMTP地址和端口 SmtpClient smtpClient = new SmtpClient("smtpdm.aliyun.com", 25); // 使用SMTP用户名和密码进行验证 System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("控制台创建的发信地址", "SMTP密码"); smtpClient.Credentials = credentials; smtpClient.Send(mailMsg);
最终相信阿里云的稳定性,且价格是相当的便宜,还有每天200封的免费量,哈哈!