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

2022-07-08 22:26:19 +08:00
 nihaorz

小弟日常撸 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 = "xxx@xxx.com.cn"
    from_name = "xxx"
    password = "xxx"
    to_addrs = ["xxx1@xxx.com.cn"]
    cc_addrs = ["xxx2@xxx.com.cn", "xxx3@xxx.com.cn"]
    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 毫秒左右,之前估算的,应该主观上加了编译的时间

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

@blankmiss java 一直都挺好的,我这边没有问题,符合预期。。

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

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

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

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

© 2021 V2EX