小弟日常撸 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 毫秒左右,之前估算的,应该主观上加了编译的时间
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.