V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuecn
V2EX  ›  程序员

写了个邮件 DKIM 签名代码,有点用吗?

  •  
  •   xiangyuecn ·
    xiangyuecn · 2018-11-11 16:51:07 +08:00 · 2431 次点击
    这是一个创建于 2215 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果我们的代码对邮件进行了 DKIM 签名,可以直接投递到对方邮件服务器,不经过己方的邮件服务器。

    合法签名(先有个合法的域名)的邮件对方能够接收,最差也能投递到垃圾箱吧,一般不会被拦截或者被对方邮件服务器直接拒收。


    .Net Framework 4.5 下 C# 实现的,项目地址:

    Github: https://github.com/xiangyuecn/DKIM-Smtp-csharp


    .Net 下进实现 DKIM 签名比较曲折,主要是系统带的 MailMessage、SmtpClient 功能太渣了,想要个什么好功能,对不起 private。很多控制功能缺乏,讲典型的 HELO 发的是服务器名字,看.Net 源码,内部是一个属性控制的,并且通过大量的代码、读各种环境配置来给他赋了个值,最后得出的是电脑名字;但是说到提供一个配置选项。。。想改?没门。

    直到

    遇到了一个神器,任何类内定义的方法都可以用一个自己写的方法来替换掉,包括.Net 框架内的,完美!

    DotNetDetour 顺带给他提了个issues

    7 条回复    2018-11-12 15:05:58 +08:00
    txydhr
        1
    txydhr  
       2018-11-12 07:19:14 +08:00
    因为 dkim,spf 签名很容易,而且这两个东西主要还是防止自己的域名被其他人盗用,不能说明你本身发送的是非垃圾邮件。。
    邮件服务商主要还是看发送 ip 的信誉和内容识别,我自己的个人邮箱 dkim,spf 都是设置好的,但是微软就默认把 digitalocean 的 ip 成段成段的封掉(垃圾箱都进不去),解封需要自己网页去申请。。。。
    dkim 比 spf 的好处是邮件经过其他服务器转发以后邮件的 dkim 的域名和签名依然不变,spf 服务器经过转发服务器以后就失败了(除非你的域名的 spf 里也包括这个转发服务器)。。。。
    xiangyuecn
        2
    xiangyuecn  
    OP
       2018-11-12 10:13:59 +08:00
    @txydhr 人家不收也是没办法 ପ(・ω・) 好好学习天天向上
    julyclyde
        3
    julyclyde  
       2018-11-12 11:46:35 +08:00
    直接投递的话,不满足 spf 约束
    而 spf 的部署,远远比 dkim 多
    xiangyuecn
        4
    xiangyuecn  
    OP
       2018-11-12 12:43:09 +08:00
    @julyclyde v=spf1 +all,比较任性的设置,163 好像签了一下 DKIM 就会收,不签嘛,不知道他们家是不是有缓存,成功一次后面随便发
    julyclyde
        5
    julyclyde  
       2018-11-12 13:19:01 +08:00
    @xiangyuecn +all 的话相当于不设防,你还要 spf 干什么呢?直接删了得了
    txydhr
        6
    txydhr  
       2018-11-12 14:22:44 +08:00 via iPhone
    @xiangyuecn 大多数邮件服务商,比如 gmail 都不会拒收邮件,再垃圾的邮件都是进垃圾箱,另外能进自己的收件箱,可能还是会进别人垃圾箱。。。拒收目前只知道微软企业版和腾讯会,尤其是腾讯,服务器拒收用户都不知道,而且拒收的又多(只要是公司学校自己域名的邮箱,很容易就拒收),识别系统又烂,逻辑莫名其妙,连美国学校发的邮件都拒收,关键是大多数都能进邮箱,有几封就拒收(该学校用的 gmail 系统,连 gmail 的 ip 发来的邮件都拒收。。。)。微软企业版好歹每天都会告诉你我拒收了哪些邮件,而且拒收也很少发生,还可以点链接取回(如果当天有拒收的话)。。。可能跟美国的商业环境严重依赖 email 交流有关吧。。。想不通腾讯这种不通知用户随随便便就默默的拒收用户的邮件是什么逻辑。。。
    xiangyuecn
        7
    xiangyuecn  
    OP
       2018-11-12 15:05:58 +08:00
    @julyclyde +all 方便本地测试 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:32 · PVG 04:32 · LAX 12:32 · JFK 15:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.