比如 A 发送了一封邮件给 B , A 这边发送成功了, B 那边可能会有一段网络延迟未能收到。
有没有什么方法能够知道 A 发送的邮件是否已经到了 B ?
1
Citrus 2016-01-03 16:08:26 +08:00 via iPhone
搜索: 已读回执
|
2
233 2016-01-03 16:09:13 +08:00
非技术手段的话, 是可以请求已读回执的
|
3
akira 2016-01-03 17:05:38 +08:00
送到和已读还是有区别的。
邮件发送成功后一段时间内没收到退信,应该就可以认为送达了。 |
4
Slienc7 2016-01-03 17:11:59 +08:00
我不确定你这里说的网络延迟是什么意思。
这是包含在协议里的: 如果是 SMTP 发件,如果服务器没有返回错误代码(拒收,不存在等),回应正常的状态码,可以认作投递成功,可以认作已经到达对方邮箱(当然也可能是垃圾箱)。 至于说网络延迟这类应该是对方的邮件服务器内部的同步延迟,这是不可控问题。 楼上提到的已读回执是“已读”,且并不是所有邮件服务提供商都支持,且可能需要用户手动确认。 |
5
jugelizi 2016-01-03 17:13:43 +08:00
你说的收到的意思是指邮件到达对方邮件服务器上吧
一般发送接口都有返回状态的呀 |
6
Lpl OP |
7
Lpl OP |
8
liuhaotian 2016-01-03 17:23:26 +08:00 via iPhone
这样子的话只要 Gmail 没有退信就可以认为发送成功了。
如果是已读回执的话可以通过自己的服务器来实现。 |
9
tammy 2016-01-03 17:25:28 +08:00 1
给你个思路,弄个透明图片放你服务器上,然后右键包含这个图片,如果别人看了,你服务器那边就有日志
|
11
FrankFang128 2016-01-03 18:08:03 +08:00 via Android 2
附上口令红包不就行了。
|
12
SourceMan 2016-01-03 18:10:15 +08:00 via iPhone
独一的资源,看是否请求过
|
13
sennes 2016-01-03 18:46:10 +08:00 via iPhone
烦请阁下点击下面链接以便告诉我们您已阅读邮件。
|
14
Lpl OP @liuhaotian 嗯嗯,我理解你的意思。那么如果没有已读回执的话能判断邮件是否已经到达对方邮箱以及对方是否已读呢?
@tammy 哈哈,这个倒是简单暴力啊。有没有通过网络层面实现的呢? @FrankFang128 不太明白这个意思..是附上一个口令红包,然后对方如果使用了即表明阅读了么 @SourceMan 是这个意思,比如发的每一份邮件也是独一的资源,关键这里怎么判断是否已经收到了 @sennes 邮件回执的意思我了解,我想想能否不需要回执就可以知道。这里只是想知道邮件是否已经发送到对方邮箱,从发送开发到对方邮箱接收用时多少。 而且...要回执有点怪怪的 |
15
regist 2016-01-03 20:05:03 +08:00
你想让服务器返回一段指令让你明白邮件已经被收件箱收取
问题是,你能让对方服务器(不是你自己的发件服务器)返回特殊的指令吗? 再说,对方客户端设置一天才收取一次邮件呢?这些都是你没法控制的。 兄台,洗洗睡吧。 |
16
gdtv 2016-01-03 20:24:30 +08:00 1
1 、判断邮件是否已到达对方的服务器,分两种情况,第一种是你自己写的邮件发送端代码,你可以实时知道对方服务器是否已收到,如果收方没收到或者拒收,在邮件协议里有说明的。 第二种是使用网页版的邮箱服务器,例如 gmail ,当你在 gmail 网页上点击发送按钮,邮件其实是发送到了 gmail 的服务器,此时还没有到达收件方的服务器,你需要等几分钟, gmail 才会告诉你是否发送成功。
2 、第 1 只是判断是邮件是否到达收件方的服务器,但不通判断对方人员的邮件客户端是否收到了邮件,例如人家自己家里电脑上的 Outlook 设置每 1 同步一次,那他可能要等一天才收到你的邮件,这个你无法判断。 3 、判断对方(指人类)是否已打开了你的邮件。某些邮件提供商在自家邮箱范围内会提供这样的服务器。例如 QQ 邮箱发给 QQ 邮箱,就可以有已读回执。如果不是同一个提供商,就没有办法。上面回复里说的嵌入一张图片的方法,大部分网页版的邮箱会默认不显示图片,所以无效。 |
17
Lpl OP @regist 不需要对方服务器返回特殊指令的。比如说 SMTP 和 Ping 都属于 TCP/IP 协议, Ping 可以发送数据包然后让对方返回同样的数据包然后检测网络是否通行。那么 SMTP 协议也可以说是发送了数据到对方服务器,那么对方服务器是否也会返回某个状态码给 SMTP 呢(就是这点不理解,到底返回没返回,返回的话怎么能够查看)?
因为网络时延的问题,这个状态码肯定会返回的很慢,等于说双倍时间( A 服务器发送给 B 服务器,时间记为 t , B 服务器判断没有这个邮箱,返回状态码,时间记为 t 。那么这个时候应该是 2t )。 但是,如果你的邮件地址填写时正确的,在 Foxmail 这些客户端上并不会返回错误代码; 相反,如果邮件地址是正确的,那么邮件协议肯定有一个正确的代码。那么问题来了.....咋看到这个状态码 |
18
soland 2016-01-03 20:37:23 +08:00
放个图片。
|
19
Lpl OP @gdtv good !!总算是搞明白这个问题了,对于第二种来说,貌似 gmail 没有告诉过我是否发送成功。
对于第一种来说,是不是发送到对方邮件使用的服务器后(不管是否发送到对方客户端)协议会有一个成功到达的状态码返回呢?返回的过程是否是肯定会经过发邮件的那一些节点,还是会视网络情况随机找最近的网络节点呢? |
20
regist 2016-01-03 20:49:58 +08:00 1
@Lpl 如果你配制过服务器的邮件,应该用 telent 测试过发信,配合监控邮件日志,你能知晓对方收件服务器确实会返回状态码,但是这个状态码到你的收件箱依赖你的收信频率设置(客户端),网页端也能给你解析结果,发送成功 or 发送失败,以及发送失败的原因,不过这个状态变化依赖于网页端邮件提供商的设置。
发信过程类似如下: 你的客户端( or 网页端) <--> smtp 服务器 <--> 对方收件服务器 <--> 对方客户端 如果你用客户端发送,那么后面的过程你控制不了 如果你能直接接触到 smtp 服务器,那么你能知晓对方收件服务器返回的状态码,进而判断,这个时候如果对方用客户端收件,那么你同样没法控制 至于后面两个,你接触不到的 |
21
kn007 2016-01-03 21:11:12 +08:00
如果是私有邮件服务器,可以在日志中看到 250 OK ,说明已到对方邮箱。至于对方有没有阅读,就只能通过已读回执、图片请求了。
|
22
Lpl OP @regist 明白了!十分感谢,是我问题发出来没有表述清楚,其实这里的 A 和 B 想表达的是发件服务器和收件服务器。。。不过这么多回答明白了很多问题
|
23
xderam 2016-01-03 21:18:43 +08:00
到达 B 的邮件服务器和到达 B 的邮件客户端貌似是两回事.如果不想用已读回执. 可以在发送的邮件里搞一个 gif 或者任意一个 url. 这个 url 指向你的 http 服务器. 恩.当对方打开的时候.恩.你懂的.
|
25
honeycomb 2016-01-03 21:33:41 +08:00
第三方 tracking pixel ,但是只能用来判断已读,遇到开反追踪的可能无效
|
26
jhaohai 2016-01-03 21:56:25 +08:00 via iPhone
显示发送成功就是已送达吧,别的也没什么方法
|
27
des 2016-01-03 22:02:13 +08:00
如果都能知道,你让发垃圾邮件的情何以堪
|
28
FrankFang128 2016-01-03 22:37:11 +08:00 via Android
红包开玩笑的 嘿嘿
|
29
way2explore2 2016-01-03 22:41:26 +08:00 via Android
@tammy 这到是一个好思路。
但像 Thunderbird 默认是屏图片的啊 |
30
gdtv 2016-01-04 00:46:03 +08:00
@Lpl 对于第二种情况,如果在 gmail 网页发邮件,点击发送按钮后,如果发送失败,过几分钟后网页上会有红色文字提示。
其他问题 20 楼的朋友说得更清楚,我就不说了。 |
31
zonghua 2016-01-04 00:49:09 +08:00 via iPhone
问一下礼貌问题。邮件投简历, HR 认为是条件不符是直接不理,还是回信挽拒?
|
32
zonghua 2016-01-04 01:56:51 +08:00 via iPhone
@way2explore2 stylesheet 也是可以的啊,或者其他外联的资源。
|
34
mengzhuo 2016-01-04 09:48:09 +08:00 via iPhone
除了 tracking pixel 没有别的办法
但如果 b 的客户端屏蔽图片 就 88 了 理论上是不可能 100%知道的 |
35
vickyphan 2016-01-04 12:28:24 +08:00
重要邮件我都是抄送一份给自己的
|
36
Myprincess 2016-01-04 14:58:17 +08:00
附件上一个红包口令。哈哈,玩笑
|
37
tammy 2016-01-04 18:56:24 +08:00
@imydou 有这种可能
@way2explore2 确实哦,不少客户端、网页版都默认屏蔽,但是参考 @Myprincess 的可以诱导别人去必须去看图片。带个口令红包,图片内容就是口令(不过这个红包只适合中国国庆吧)。 |
38
julyclyde 2016-01-05 10:17:51 +08:00
|
40
Slienc7 2016-01-05 10:34:56 +08:00
|