美文网首页
python-使用smtplib,emial库发送邮件

python-使用smtplib,emial库发送邮件

作者: 非鱼2018 | 来源:发表于2019-08-10 13:53 被阅读0次

最近在公司想用jenkins在构建完毕后,发送个·测试报告,谁知道master主机是linux,在job中配置eidted email 插件时,使用${file,path='report.html'}发送时,无效,就直接把这串字符打印出来了,试了一下,像build_number哪些环境变量全都在邮件设置中获取不到,execue shell是可以获取的,试了很多办法,依然解决不了,后来想想,算了,还是直接用python写算了,使用smtplib以及email库

1.直接使用smtplib可以发送简单的邮件

import smtplib
from_addr= '****@163.com'
password= '****'#网易邮箱授权码,不是密码
to_addrs= 'sample@163.com'
msg= 'test email'
smtp_host= 'smtp.163.com'  # SMTP 服务器主机
smtp_port= 25  # SMTP 服务器端口号
msg= """To: {0}\r\nFrom: {1}\r\n\r\n{2}.""".format(from_addr, to_addrs, msg)
smtp_obj= smtplib.SMTP(host=smtp_host,port=smtp_port)
smtp_obj.login(from_addr, password)
smtp_obj.sendmail(from_addr, to_addrs, msg)
smtp_obj.close()

2.使用email库

from email.header import Header
from email.mime.text import MIMEText
import smtplib
from_addr = '***@163.com'
password = '*****'
# to_addrs = "***@gmail.com"
to_addrs = ['***@163.com','***@qq.com']
# 创建 SMTP 对象
smtp_host = 'smtp.163.com'  # SMTP 服务器主机
smtp_port = 25  # SMTP 服务器端口号
smtp_obj = smtplib.SMTP(host=smtp_host, port=smtp_port)
with open filename as f:
    str=f.read
    f.close()
msg = MIMEText(_text=str, _subtype="html", _charset="utf-8")  
msg["Subject"] = Header(s="发送 html 邮件", charset="utf-8")  # 标题
msg["From"] = Header(s=from_addr)  # 发送人
msg["To"] = Header(s=','.join(to_addrs),charset='utf-8')  # 接收人
#这里的发送者和接收者只是显示在邮件的发送人和接收人
print(msg.as_string())
smtp_obj.login(user=from_addr, password=password)
smtp_obj.sendmail(from_addr=from_addr, to_addrs=to_addrs, msg=msg.as_string())
smtp_obj.quit()

相关文章

网友评论

      本文标题:python-使用smtplib,emial库发送邮件

      本文链接:https://www.haomeiwen.com/subject/jgcrjctx.html