金笛邮件论坛  

返回   金笛邮件论坛 > 开发者乐园 > 电子邮件系统技术交流

回复
 
LinkBack 主题工具 显示模式
旧 2013-06-03, 10:11   #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
chyb 当前离线   回复时引用此帖
回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 02:51


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.