博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
试用阿里云邮件推送服务
阅读量:5968 次
发布时间:2019-06-19

本文共 1765 字,大约阅读时间需要 5 分钟。

最近有一个程序的邮件通知功能出问题了。自己搭建邮件服务器虽然不难,但是可靠性很难保证,邮件发送功能的服务化是趋势,看到阿里云正在公测邮件推送服务,正好借遇到邮件发送问题的机会试用一下,看能否解决我们的实际问题。

首先在阿里云邮件推送控制台添加域名,然后在自己的dns服务器中添加如下的解析(根据控制台中的“配置”):

  • 一个主机名为aliyundm的TXT记录,用于验证域名所有权
  • 一个主机名为空、值为v=spf1 include:spf1.dm.aliyun.com -all的TXT记录,用于防止被当作垃圾邮件
  • 一个MX记录

在mac上可以通过nslookup -query=TXT 域名nslookup -query=MX 域名命令查看DNS设置是否生效。

接着在阿里云控制台验证一下域名,验证成功之后,添加一下发信地址(发件地址),并设置一下SMTP密码。

然后通过下面的C#代码使用阿里云邮件推送服务的SMTP就可以发送邮件了。

var mailMsg = new MailMessage();mailMsg.From = new MailAddress("控制台创建的发信地址", "显示名称");mailMsg.To.Add("收件人邮箱");mailMsg.Subject = "Hello aliyun dm";mailMsg.Body = "Send from aliyun dm";mailMsg.IsBodyHtml = true;var smtp = new SmtpClient("smtp.dm.aliyun.com", 25);smtp.Credentials = new NetworkCredential("控制台创建的发信地址", "SMTP密码");smtp.Send(mailMsg);

很轻松地解决了邮件发送问题。

[2016-7-9更新]

在.NET Core中使用MailKit通过阿里云邮件推送服务(directmail)发送邮件的C#代码:

private static async Task SendEmailAsync(    string fromName, string fromEmail,    string toName, string toEmail,    string title, string body){    var mailMessage = new MimeMessage();    mailMessage.From.Add(new MailboxAddress(fromName, fromEmail));    mailMessage.To.Add(new MailboxAddress(toName, toEmail));    mailMessage.Subject = title;    mailMessage.Body = new TextPart("plain") { Text = body };    using (var smtpClient = new SmtpClient())    {        await smtpClient.ConnectAsync("smtp.dm.aliyun.com", 25, SecureSocketOptions.None).ConfigureAwait(false);        smtpClient.Authenticate(new NetworkCredential("username", "password"));        await smtpClient.SendAsync(mailMessage).ConfigureAwait(false);        await smtpClient.DisconnectAsync(true).ConfigureAwait(false);    }}

但使用上面的代码发送邮件时,阿里云邮件推送服务会返回错误"503 Bad sequence of commands",详见

这个问题是MailKit的问题,详见

转载于:https://www.cnblogs.com/dudu/p/5099621.html

你可能感兴趣的文章
UIImagePickerController选择图片发送后旋转90度的问题
查看>>
常用excel函数 vlookup,concatenate,& 的使用
查看>>
MySql多表
查看>>
数据创建表 修改列 新增列
查看>>
PHP 服务器变量 $_SERVER(转)
查看>>
Linux基础 -- vim编辑器3 -- 查找和替换
查看>>
openssh-server (>= 1:6.6p1-2ubuntu1) but it is not going to be installed
查看>>
Apache Shiro SessionManager配置详解.
查看>>
Elasticsearch的Watcher插件
查看>>
译 | 像使用一台主机一样管理集群
查看>>
PostgreSQL数值类型--浮点类型和序列
查看>>
Java栈与堆详解
查看>>
终极vim配置
查看>>
Oracle 游标使用整理
查看>>
git 提交代码的步骤
查看>>
Fit项目分页组件的编写
查看>>
笔记16(shell编程)
查看>>
TeamCity : .NET Core 插件
查看>>
linux 目录结构
查看>>
innodb_pool_buffer_size对innodb性能的影响
查看>>