![]() |
![]() |
#1 (permalink) |
版主
注册日期: 2012-02-07
帖子: 281
|
![]()
邮件发送是一个比较复杂的过程,其中发信者的确认就有几个步骤。 熟悉SMTP协议的用户可能知道,在客户端连接到
目标邮件服务器以后,一封邮件的发送要经历以下几个步骤: a. helo niubi.jdmail.org, 告诉目标服务器客户端的主机名 b. mail from: <no-reply@jdmail.io>, 发信地址 c. rcpt to: <wuyou@qq.com>, 收信人地址 d. data 开始传输邮件正文 From: <service@jdmail.com> To: <fanjin@qq.com> Subject: 祝贺jdmail日发送量过百万 祝贺jdmail日发送量过百万 . 至此,只要收件人是正确的,内容不反动,不是大规模发送的纯推广式的小广告, 这一封邮件就可以发出去了。 fanjin@qq.com的主人进入其QQ邮箱后看到的是怎样显示呢? 咱们使用foxmail试试: 很眼熟有没有, 由%#$@%%^$^$^#$@$@!$@mxcloud.com代发。 至于原因, 别急,首先咱们熟悉几个简单的概念: 1.helo niubi.jdmail.org helo命令开启smtp会话,告诉目标邮件服务器自己的主机名,通常就包括域名了 2.mail from: <no-reply@jdmail.io> 在会话过程中,使用mail from命令,指定发信人的邮件地址。这个地址成为信封sender 3.发出data命令后, 邮件正文中包含: From: service@jdmail.com 这么一段文字,其中的邮件地址成为信头 sender. 我们可以看到,在helo, mail from两个命令,以及信头中都会出现发信方(发信者的邮件地址或者发送服务器的域名) 。由于smtp协议极其简单,任何人可以通过telnet命令发送邮件, 比如*nix下面的telnet程序: telnet mx1.qq.com 25 Trying 58.250.132.64... Connected to mx1.qq.com (58.250.132.64). Escape character is '^]'. 220 newmx57.qq.com MX QQ Mail Server helo kingdee.jdmail.org 250 newmx57.qq.com mail from: <no-reply@jdmail.io> 250 Ok rcpt to: <344486306@qq.com> 250 Ok data 354 End data with <CR><LF>.<CR><LF> From: <wangge@163.com> To: <344486306@qq.com> Subject: jdmail Rocks. jdmail rocks . 250 Ok: queued as 在qq邮箱里面看到的结果 那咱们再试一下, 用下面的列子, telnet mx1.qq.com 25 Trying 58.250.132.64... Connected to mx1.qq.com (58.250.132.64). Escape character is '^]'. 220 newmx110.qq.com MX QQ Mail Server helo kingdee.jdmail.org 250 newmx110.qq.com mail from: <no-reply@jdmail.io> 250 Ok rcpt to: <344486306@qq.com> 250 Ok data 354 End data with <CR><LF>.<CR><LF> Subject: jdmail Rocks. From: <service@jdmail.io> To: <344486306@qq.com> jdmail XL! . 250 Ok: queued as 邮箱里面显示结果如下: Yeah, 没有显示代发!聪明的你可能已经发现,只要信头sender的域名和信封sender的域名是一样的,就不会显示代 发! 但是,问题还没这么简单。首先,咱们想想,为什么ISP要将代发字样显示出来提示用户呢?如上文所说,由于 smtp协议很简单,任何人都可以使用telnet发送程序,并且发信主机名,信封sender和信头sender都是可以随意填写 的,这样一来,伪造邮件就变得很容易了。显示代发,为了提示用户真实的发信人。 但是,显示代发并不意味着这些 邮件就有问题,反而这是一种专业的表现, 因为发送大量邮件在工程上面的复杂性使得自己架设和运营邮件服务器变 得成本很高,人们更愿意去使用已有的专业的邮件发送服务,如jdmail。对国外互联网比较关注的用户可能也注意到, 国外的大型站点,比如groupon, twiter, pinterest以及spotify等发送的邮件均会显示代发字样。 现在,主流的邮件服务提供商,都会在符合条件的邮件里面提示显示代发,但是每家的规则略有区别。咱们在上面的 例子中看到,qq邮件对于信封sender和信头sender的域名不一致的邮件会显示代发字样, 那么163.com和gmail.com这 两个有着同样大基数的规则是如何呢? 继续看。 telnet 163mx02.mxmail.netease.com. 25 Trying 220.181.14.145... Connected to 163mx02.mxmail.netease.com (220.181.14.145). Escape character is '^]'. 220 163.com Anti-spam GT for Coremail System (163com[20121016]) helo kingdee.jdmail.org 250 OK mail from: <service@jdmail.io> 250 Mail OK rcpt to:<dream_passion@163.com> 250 Mail OK data 354 End data with <CR><LF>.<CR><LF> Subject: jdmail rocks From: <no-reply@jdmail.io> To: <dream_passion@163.com> jdmail zan! . 250 Mail OK queued as mx18,RMCowEB5LFCtcKRRzaDvFQ--.719S2 1369731348 客户端内显示结果: 虽然信封sender和信头sender的域名是一样的, 但是还是显示代发。那么再进行下面这个会话: telnet 163mx02.mxmail.netease.com. 25 Trying 220.181.14.155... Connected to 163mx02.mxmail.netease.com (220.181.14.155). Escape character is '^]'. 220 163.com Anti-spam GT for Coremail System (163com[20121016]) helo kingdee.jdmail.org 250 OK mail from: <service@jdmail.io> 250 Mail OK rcpt to:<dream_passion@163.com> 250 Mail OK data 354 End data with <CR><LF>.<CR><LF> Subject: jdmail rocks From: <service@jdmail.io> To: <dream_passion@163.com> Ding !! . 250 Mail OK queued as mx35,VcCowEA5QVvacaRRrEvZFQ--.1197S2 1369731592 Connection closed by foreign host. 客户端里面显示的结果如下: 耶,不显示代发!不难发现, 163.com要求信头sender和信封sender邮件地址完全一样,而不是域名一样,才会不显 示代发(这个规则可以应用到所有网易旗下邮箱). 那么gmail是怎么样的规则呢? 咱们进行下面的会话: telnet alt3.gmail-smtp-in.l.google.com. 25 Trying 173.194.74.27... Connected to alt3.gmail-smtp-in.l.google.com (173.194.74.27). Escape character is '^]'. 220 mx.google.com ESMTP k6si5788072qat.40 - gsmtp helo kingdee.jdmail.org 250 mx.google.com at your service mail from: <no-reply@jdmail.io> 250 2.1.0 OK k6si5788072qat.40 - gsmtp rcpt to: <qiw209@gmail.com> 250 2.1.5 OK k6si5788072qat.40 - gsmtp data 354 Go ahead k6si5788072qat.40 - gsmtp Subject: jdmail Rocks From: <no-reply@jdmail.io> To: <qiw209@gmail.com> jdmail rocks! . 250 2.0.0 OK 1369731884 k6si5788072qat.40 – gsmtp 客户端显示结果如下: 没有显示代发字样。 再开启一个会话, telnet alt3.gmail-smtp-in.l.google.com. 25 Trying 173.194.74.27... Connected to alt3.gmail-smtp-in.l.google.com (173.194.74.27). Escape character is '^]'. 220 mx.google.com ESMTP w3si25908987qer.0 - gsmtp helo kingdee.jdmail.org 250 mx.google.com at your service mail from: <no-reply@jdmail.io> 250 2.1.0 OK w3si25908987qer.0 - gsmtp rcpt to: <¥#%#¥%#@gmail.com> 250 2.1.5 OK w3si25908987qer.0 - gsmtp data 354 Go ahead w3si25908987qer.0 - gsmtp Subject: jdmail Rocks From:<service@jdmail.io> To: <@#¥@#¥@#@gmail.com> jdmail rocks! . 250 2.0.0 OK 1369732177 w3si25908987qer.0 - gsmtp 502 5.5.1 Unrecognized command. w3si25908987qer.0 - gsmtp quit 221 2.0.0 closing connection w3si25908987qer.0 - gsmtp Connection closed by foreign host. 客户端显示如下: 同样不显示代发,说明gmail的规则和qq一样,只要信封sender和信头sender的域名一致,就不显示代发字样。 现在,大家对为什么显示代发字样应该有个基本的认识了。虽然很多用户对显示代发字样不喜欢,但是jdmail所采用 的策略是符合邮件服务商对邮件发送的一致要求,能够度上提邮件发送的量和到达率,降低了由于过量发送邮件被邮 件服务商拒绝邮件的风险。同时,jdmail和邮件服务商之间有充分的沟通,对邮件发送有深刻理解, 能够满足用户的 各种发送需求,当然,前提是邮件质量过关。 小结一下,邮件显示代发并不是什么很神秘的事情,更不是什么坏事。 jdm
__________________
陈彦博 邮件事业部 技术支持工程师 北京春笛网络信息技术服务有限公司 北京海淀区知春路23号863软件园量子银座903室 100191 电话:010-82356575-6023 传真:010-82356575-6004 手机:18622575102 电邮:chenyb@mailer.com.cn 网址:www.chundi.com QQ:1481461853 1650928809 |
![]() |
![]() |