如何做到邮件实时收取? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ft3312591
V2EX    Python

如何做到邮件实时收取?

  •  
  •   ft3312591 2018-10-23 10:45:28 +08:00 8278 次点击
    这是一个创建于 2544 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    但作为邮件服务器不存在“ SMTP 不实时”这种说法(它根本不 make sense ),因为邮件到达服务器才算收到,或者说服务器收到邮件的时刻才定义了这封邮件的“实时”。
    iwtbauh
        21
    iwtbauh  
       2018-10-24 08:07:48 +08:00 via Android
    @geelaw #20

    对啊,所以说 SMTP 并不能说“不是收信协议”。它是传输协议,既发也收

    使用 SMTP 收信的客户端很多啊,MTA 都是啊,以前用的最多的就是 sendmail。这东西还是曾经很多 Unix 系统的标配。
    wsds
        22
    wsds  
       2018-10-25 13:59:08 +08:00
    @geelaw 怎么开?
    wsds
        23
    wsds  
       2018-10-25 14:00:07 +08:00
    @geelaw 我用的就是 Exchange,但 outlook 收信一直晚于网页是怎么回事,收集间隔设置的最小 1 分钟
    tz1006
        24
    tz1006  
       2018-10-31 05:14:07 +08:00
    一般实时的我都用 queue.get()
    线程循环 queue.put()
    你听得懂我在说什么吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2736 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:58 PVG 22:58 LAX 07:58 JFK 10:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86