打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#发送DKIM签名的邮件

DKIM(DomainKeys Identified Mail) 是一个电子邮件验证标准——域名密钥识别邮件标准,邮件系统可据此标准判断邮件是否为垃圾邮件。

它的工作原理是生成私钥(private key)/公钥(public key)对,将公钥以TXT记录的形式存放在 DNS 服务器中,发送邮件时选择相应的邮件字段(比如From, To, Subject)通过私钥生成签名信息并附加到邮件头之后进行发送。目标邮件服务器收到邮件后,根据发件人的域名从 DNS 查询中得到公钥,然后用该公钥验证邮件头中的签名信息是否合法。

我们通过 C# 代码成功发送了 DKIM 签名的邮件,具体操作步骤如下:

1、通过 dkimcore.org 提供的工具生成私钥以及需要添加至 DNS 中的包含公钥的记录

a)打开 http://dkimcore.org/tools/,在 Domain Name 中输入发送邮箱的域名,点击 Generate;

b)假设域名是 cnblogs.biz,我们会得到如下图所示的三个数据——Selector(1362200600.cnblogs), Private key, DNS记录(名称为1362200600.cnblogs._domainkey,值是以v=DKIM1;开头以冒号结尾的部分[不包含冒号,图中未显示])。

2、在DNS服务器中添加TXT记录

3、检查DNS记录是否添加成功

打开 http://dkimcore.org/tools/ ,在 Check a published DKIM Core Key 栏目中输入 Selector 与 Domain,点击 check;如果添加成功,会显示“This is a valid DKIM key record”。见下图:

4、写 C# 代码发送 DKIM 签名的邮件

a) 从 github 签出 DKIM.Net (https://github.com/dmcgiv/DKIM.Net) 的源代码并编译得到 DKIM.Net.dll;

b) 在项目中添加 DKIM.Net.dll 的引用,然后编写 C# 发送邮件的代码,示例代码如下:

c) 运行代码发出邮件

5、接收邮件并检查邮件是否通过 DKIM 验证。

我们测试时邮件发向的是 gmail 邮箱,在 gmail 中该邮件的阅读窗口选择“显示原始邮件”,如果通过了 DKIM 验证,会看到如下的信息:

注:如果您想用友好的 Selector 名称(文中是1362200600.cnblogs),可以随意设定,只要代码中与 DNS 记录中保持一致即可。比如用 dkim 名称,在 DNS 添加记录时名称就是 dkim._domainkey ,代码则为 var selector = "dkim";

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
hMailServer 邮件系统安装配置篇
IRedMail安装和配置
iRedMail开源免费的邮件服务器安装与配置:邮件账号管理,SMTP/POP3,网页邮箱 | Musk100
新一代email将成为通信综合平台
2015年,你不能错过的邮件营销干货!
.NET开发邮件发送功能的全面教程(含邮件组件源码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服