python 发送邮件

Posted on 2020-04-03 10:32  橙子j  阅读(181)  评论(0)    收藏  举报

注意:qq的密码是qq开启smtp时候给的授权码!

 参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017790702398272

发送简单的邮件:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

mail_host='smtp.qq.com'
mail_user='123456789@qq.com'
mail_pwd='vhlc******cahg' #qq生成的授权码

receivers=['123456789@126.com']
subject='Python email test report'

msg=MIMEText('<html><h1>你好!</h1></html>','html','utf-8')
msg['Subject']=Header(subject,'utf-8')

try:
    smtpObj=smtplib.SMTP()
    smtpObj.connect(mail_host)
    #上面两行也可以写成:smtpObj=smtplib.SMTP_SSL(mail_host,465)
    smtpObj.login(mail_user,mail_pwd)
    smtpObj.sendmail(mail_user,receivers,msg.as_string())
    print('success!')
except smtplib.SMTPException:
    print('fail!!!')

得到的邮件:

 

 

发送带附件的邮件:

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

mail_host='smtp.qq.com'
mail_user='123456@qq.com'
mail_pwd='vhl****ahg' #qq生成的授权码

receivers=['123456@126.com']
subject='Python email test report'

send_file=open('C:\\Users\\JChen46\\Documents\\2020-04-01 17_32_46_result.html',
               'rb').read()
att=MIMEText(send_file,'base64','utf-8')
att['Content-Type']='application/octet-stream'
att['Content-Disposition']='attachment; filename="2020-04-01 17_32_46_result.html"'

msgRoot=MIMEMultipart('related')
msgRoot['Subject']=subject
msgRoot.attach(att)

try:
    smtpObj=smtplib.SMTP()
    smtpObj.connect(mail_host)
    #上面两行也可以写成:smtpObj=smtplib.SMTP_SSL(mail_host,465)
    smtpObj.login(mail_user,mail_pwd)
    smtpObj.sendmail(mail_user,receivers,msgRoot.as_string())
    print('success!')
except smtplib.SMTPException:
    print('fail!!!')