美文网首页
python 发送 email(带附件)

python 发送 email(带附件)

作者: 开始懂了90 | 来源:发表于2019-04-01 16:29 被阅读0次

利用python脚本 发送mail

#!/usr/bin/python3
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
 
# 第三方 SMTP 服务
mail_host="smtp.163.com"  #设置服务器
mail_user="kaishidongle@163.com"    #用户名
mail_pass="12345678"   #口令 
 
 
sender = 'sender@163.com'
receivers = ['kaishidongle@163.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 
# 邮件内容
message = MIMEText('你好, 麻烦开通防火墙, 详情见附件~ 谢谢 !!', 'plain', 'utf-8')


# 邮件主题 
subject = '申请开通防火墙'
message['Subject'] = Header(subject, 'utf-8')
 
 
try:
    server = smtplib.SMTP_SSL(mail_host,465)    
    server.login(mail_user,mail_pass)
    server.sendmail(sender, receivers, message.as_string())
    print ("邮件发送成功")
except Exception as e :
    print (e)

注: 使用SMTP_SSL方法 可以避免 SMTP AUTH extension not supported by server 这个错误

发送带附件的脚本
#!/usr/bin/python3
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.base import MIMEBase
from email import encoders

 
# 第三方 SMTP 服务
mail_host="smtp.163.com"  #设置服务器
mail_user="kaishidongle@163.com"    #用户名
mail_pass="12345678"   #口令 
 
 
sender = 'sender@163.com'
receivers = ['kaishidongle@163.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 


# 邮件内容
message.attach(MIMEText('你好, 麻烦开通防火墙, 详情见附件~ 谢谢 !!', 'plain', 'utf-8'))


# 邮件主题 
subject = '申请开通防火墙'
message['Subject'] = Header(subject, 'utf-8')
 
# 附件相关
part = MIMEBase('application', "octet-stream")
part.set_payload(open("防火墙策略申请表-19-04-01-08-00-48.xlsx", "rb").read(),'utf-8')
encoders.encode_base64(part)
# filename 不要省略了文件名的后缀 否则会变成乱码 eg.:ATT00002.bin
part.add_header('Content-Disposition', 'attachment', filename="防火墙策略申请表.xlsx") 
message.attach(part)

try:
    server = smtplib.SMTP_SSL(mail_host,465)    
    server.login(mail_user,mail_pass)
    server.sendmail(sender, receivers, message.as_string())
    print ("邮件发送成功")
except Exception as e :
    print (e)

相关文章

网友评论

      本文标题:python 发送 email(带附件)

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