V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nihaorz
V2EX  ›  问与答

Python smtp 协议发送邮件贼鸡儿慢

  •  
  •   nihaorz · 2022-07-08 22:26:19 +08:00 · 1370 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟日常撸 java ,最近上手摸了一下 python ,搞搞自动 docker save 镜像、压缩上传、然后发送邮件通知

    到最后一步发送邮件了,用的 smtp 协议,结果发现发送邮件贼鸡儿慢,基本上 35 秒左右,但是我用 java 撸了一发,发现很快啊,5 秒内完事儿

    下面是我的代码:

    #!/usr/bin/python3
    
    import smtplib
    import traceback
    from email.mime.text import MIMEText
    from email.header import Header
    
    def send_html_email(smtp_host, smtp_port, use_ssl, from_addr, from_name, password, to_addrs, cc_addrs, subject, content):
        try:
            msg = MIMEText(content, _subtype='html', _charset='utf-8')
            msg['Subject'] = Header(subject, 'utf-8')
            msg['From'] = "{}<{}>".format(from_name, from_addr)
            msg['To'] = ",".join(to_addrs)
            msg['Cc'] = ",".join(cc_addrs)
            if use_ssl:
                smtp = smtplib.SMTP_SSL()
            else:
                smtp = smtplib.SMTP()
            smtp.connect(smtp_host, smtp_port)
            smtp.login(from_addr, password)
            smtp.sendmail(from_addr, to_addrs, msg.as_string())
        except:
            print("邮件发送失败")
            traceback.print_exc()
        finally:
            smtp.quit()
    
    
    if __name__ == '__main__':
    
        smtp_host = "mail.xxx.com.cn"
        smtp_port = 25
        from_addr = "[email protected]"
        from_name = "xxx"
        password = "xxx"
        to_addrs = ["[email protected]"]
        cc_addrs = ["[email protected]", "[email protected]"]
        subject = "python SMTP 测试邮件"
        content = '<a target="_blank" href="http://192.168.200.128">测试链接</a>'
    
        send_html_email(smtp_host, smtp_port, False, from_addr, from_name, password, to_addrs, cc_addrs, subject, content)
    
    

    用 126 邮箱、qq 邮箱、公司自己的邮箱发都一样的,35 秒左右,对比 java 5 秒左右,简直无地自容啊,各位彦祖指导一下,问题何在啊?先行谢过了

    说错了,代码打印了一下,java 是 500 毫秒左右,之前估算的,应该主观上加了编译的时间

    6 条回复    2022-07-11 09:40:18 +08:00
    nihaorz
        1
    nihaorz  
    OP
       2022-07-08 22:31:10 +08:00
    说错了,代码打印了一下,java 是 500 毫秒左右,之前估算的,应该主观上加了编译的时间
    iikebug
        2
    iikebug  
       2022-07-08 22:38:36 +08:00
    这不应该吧,性能瓶颈怎么可能在这种情况碰到呢?
    CEBBCAT
        3
    CEBBCAT  
       2022-07-08 23:59:40 +08:00
    profile 一下呗
    awen233333
        4
    awen233333  
       2022-07-10 16:11:47 +08:00
    用你代码试了一下,QQ 邮箱 700 毫秒左右
    blankmiss
        5
    blankmiss  
       2022-07-11 02:37:58 +08:00 via iPhone
    为什么我感觉 java 很慢 用的 outlook
    nihaorz
        6
    nihaorz  
    OP
       2022-07-11 09:40:18 +08:00
    @iikebug @CEBBCAT @awen233333 今天上班又试了一下,一切正常了,那天估计是网络有问题,真是头秃啊,哈哈

    @blankmiss java 一直都挺好的,我这边没有问题,符合预期。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:48 · PVG 10:48 · LAX 18:48 · JFK 21:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.