电子邮件显示代发揭秘

 邮箱网  1条评论  148940次浏览  2013年05月29日 星期三 18:04

分享到: 更多
中国邮箱网讯 5月29日报道,引自Sendcloud的博客,邮件发送是一个比较复杂的过程,其中发信者的确认就有几个步骤。 熟悉SMTP协议的用户可能知道,在客户端连接到目标邮件服务器以后,一封邮件的发送要经历以下几个步骤:

   a. helo niubi.sendcloud.org, 告诉目标服务器客户端的主机名
   b. mail from: <no-reply@sendcloud.io>, 发信地址 
   c. rcpt to: <wuyou@qq.com>, 收信人地址
   d. data 开始传输邮件正文
   From: <service@sendcloud.sohu.com>
   To: <fanjin@qq.com>
   Subject: 祝贺SendCloud日发送量过百万

   祝贺SendCloud日发送量过百万
   .
至此,只要收件人是正确的,内容不反动,不是大规模发送的纯推广式的小广告, 这一封邮件就可以发出去了。fanjin@qq.com的主人进入其QQ邮箱后看到的是怎样显示呢? 咱们使用foxmail试试:
 

很眼熟有没有, 由%#$@%%^$^$^#$@$@!$@mxcloud.sohu.com代发。 至于原因, 别急,首先咱们熟悉几个简单的概念:

1.helo niubi.sendcloud.org
helo命令开启smtp会话,告诉目标邮件服务器自己的主机名,通常就包括域名了

2.mail from: <no-reply@sendcloud.io>
在会话过程中,使用mail from命令,指定发信人的邮件地址。这个地址成为信封sender

3.发出data命令后, 邮件正文中包含: From: service@sendcloud.sohu.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.sendcloud.org
250 newmx57.qq.com
mail from: <no-reply@sendcloud.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: SendCloud Rocks.
SendCloud 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.sendcloud.org
250 newmx110.qq.com
mail from: <no-reply@sendcloud.io>
250 Ok
rcpt to: <344486306@qq.com>
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: SendCloud Rocks.
From: <service@sendcloud.io>
To: <344486306@qq.com>


SendCloud XL!
.
250 Ok: queued as

邮箱里面显示结果如下:

 
Yeah, 没有显示代发!聪明的你可能已经发现,只要信头sender的域名和信封sender的域名是一样的,就不会显示代发! 但是,问题还没这么简单。首先,咱们想想,为什么ISP要将代发字样显示出来提示用户呢?如上文所说,由于smtp协议很简单,任何人都可以使用telnet发送程序,并且发信主机名,信封sender和信头sender都是可以随意填写的,这样一来,伪造邮件就变得很容易了。显示代发,为了提示用户真实的发信人。 但是,显示代发并不意味着这些邮件就有问题,反而这是一种专业的表现, 因为发送大量邮件在工程上面的复杂性使得自己架设和运营邮件服务器变得成本很高,人们更愿意去使用已有的专业的邮件发送服务,如SendCloud。对国外互联网比较关注的用户可能也注意到,国外的大型站点,比如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.sendcloud.org
250 OK
mail from: <service@sendcloud.io>
250 Mail OK
rcpt to:<dream_passion@163.com>
250 Mail OK
data
354 End data with <CR><LF>.<CR><LF>
Subject: SendCloud rocks
From: <no-reply@sendcloud.io>
To: <dream_passion@163.com>
    
SendCloud 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.sendcloud.org
250 OK
mail from: <service@sendcloud.io>
250 Mail OK
rcpt to:<dream_passion@163.com>
250 Mail OK
data
354 End data with <CR><LF>.<CR><LF>
Subject: SendCloud rocks
From: <service@sendcloud.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.sendcloud.org
250 mx.google.com at your service
mail from: <no-reply@sendcloud.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: Sendcloud Rocks
From: <no-reply@sendcloud.io>
To: <qiw209@gmail.com>

SendCloud 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.sendcloud.org
250 mx.google.com at your service
mail from: <no-reply@sendcloud.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: Sendcloud Rocks
From:<service@sendcloud.io>
To: <@#¥@#¥@#@gmail.com>

SendCloud 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的域名一致,就不显示代发字样。

现在,大家对为什么显示代发字样应该有个基本的认识了。虽然很多用户对显示代发字样不喜欢,但是SendCloud所采用的策略是符合邮件服务商对邮件发送的一致要求,能够度上提邮件发送的量和到达率,降低了由于过量发送邮件被邮件服务商拒绝邮件的风险。同时,SendCloud和邮件服务商之间有充分的沟通,对邮件发送有深刻理解, 能够满足用户的各种发送需求,当然,前提是邮件质量过关。

小结一下,邮件显示代发并不是什么很神秘的事情,更不是什么坏事。 SendCloud深知邮件发送领域的各种技巧, 在用户邮件内容过关的前提下, 能够满足用户各种发送需求。

文章来源:sendcloud技术博客


标签:Sendcloud邮件代发

我的评论:

请  后发表评论。
步惊云

回复 步惊云  2016年06月07日 星期二 16:32

那怎么才能区分显示代发的邮件的来源真假呢
只能凭自己的感觉吗???腾讯的原则,启不是把区分邮件来源真假的义务完全推给了用户。

0条回复