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