如何做到邮件实时收取?

2018-10-23 10:45:28 +08:00
 ft3312591

用 python 写了个下载邮件附件的脚本,在 windows 计划任务里做了个 1 分钟循环定时。有没有办法改成实时接收?如果写 while 循环的话,一直重复登录邮箱是不是不太好,能否实现监听邮箱有新邮件再运行

7527 次点击
所在节点    Python
24 条回复
gstqc
2018-10-23 10:49:49 +08:00
IMAP POP3 都没有推送,只能定时查询
Exchange ActiveSync 了解下
kernel
2018-10-23 10:50:55 +08:00
一直登录有啥不好?
opengps
2018-10-23 10:50:59 +08:00
其实 foxmail 这种也是定时去刷新登录的
jimzhong
2018-10-23 10:52:34 +08:00
XuJianHua
2018-10-23 11:15:07 +08:00
监控
locoz
2018-10-23 12:04:18 +08:00
邮件服务商没有提供可以推送的协议的话,就只能轮询了
qilishasha
2018-10-23 12:37:52 +08:00
自建邮件服务器就可以实时 其他登录后抓取就是了
geelaw
2018-10-23 12:51:41 +08:00
你开着 Outlook 2016 然后用 Outlook object model 检查新邮件就行了。
nolo
2018-10-23 12:56:37 +08:00
自动转发到 sendcloud 或者 mailgun,然后创建一个收信路由。
zhjits
2018-10-23 13:02:42 +08:00
首先 SMTP 不是 realtime 协议,所以我觉得实时收取这个需求本身是不存在的。
一定要尽量快的话,IMAP 有 Push 扩展可以试试(效果也就那样)
DavidNineRoc
2018-10-23 13:04:17 +08:00
前端轮询, 或者后台轮询然后主动推给前端
geelaw
2018-10-23 13:05:42 +08:00
@zhjits 小秘密:SMTP 甚至不是一个收信协议!

另一个小秘密:所有使用 Exchange 的用户都是实时收取的。
shyling
2018-10-23 13:08:39 +08:00
Exchange Active Sync, Mapi 系列可以

EWS 也要手动
passerbytiny
2018-10-23 13:47:45 +08:00
楼上已经说了,传统 Email 服务的协议 SMTP、POP3、IMAP 都是没有推送这一块的,所以你只能轮询。至于为什么这样设计,因为普通邮递就是这样的,不加钱就只送到邮箱。
af463419014
2018-10-23 15:18:33 +08:00
我用的方法可能不高大上,但比较实用吧

直接转发到 QQ 邮箱,然后来邮件了微信就会马上滴滴滴
psuwgipgf
2018-10-23 16:00:08 +08:00
我用 GMail 收信比较及时,只慢一两分钟的样子,你自己写程序话,可以找找有 api 提供邮箱吧
iwtbauh
2018-10-23 19:05:23 +08:00
SMTP 啊(如果你有公网 IP ),要知道以前的时候 sendmail 都是 Unix 发行版的标配。

另外 fetchmail 不了解一下?曾经电子邮件界的明星程序
iwtbauh
2018-10-23 19:13:56 +08:00
@geelaw

SMTP 怎么不是收信协议了。SMTP 是简单邮件“传输”协议,传输包括收和发两部分!
msa 和 mta 前者发后者收和发,都是 SMTP 的实现。
当然不是收到信箱里,收到信箱里不叫收,叫“投递”
cz5424
2018-10-23 19:22:39 +08:00
设置自动转发到自己服务器
geelaw
2018-10-23 23:47:17 +08:00
@iwtbauh #18 除非你是邮件服务器,目前我不 aware of 任何用 SMTP 收邮件的客户端。

但作为邮件服务器不存在“ SMTP 不实时”这种说法(它根本不 make sense ),因为邮件到达服务器才算收到,或者说服务器收到邮件的时刻才定义了这封邮件的“实时”。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX