温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python email电子邮件怎么发送普通文本、附件、html格式邮件

发布时间:2021-10-19 10:17:03 来源:亿速云 阅读:125 作者:柒染 栏目:大数据

python email电子邮件怎么发送普通文本、附件、html格式邮件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

=今天学习使用smtplib发送电子邮件,并记录学习过程欢迎大家一起交流分享。

新建一个python文件命名为py3_email.py,在这个文件中进行操作代码编写:

import osimport smtplibfrom email.message import EmailMessageimport imghdr#这里使用qq邮箱进行测试#发送普通文本#从环境变量中获取#电子邮箱地址和密码EMAIL_ADDRESS = os.environ.get('EMAIL_ADDRESS')EMAIL_PASSWORD = os.environ.get('EMAIL_PASSWORD')#获取收件人的邮箱地址EMAIL_RECEVIER = os.environ.get('EMAIL_RECEVIER')
with smtplib.SMTP('smtp.qq.com',25) as smtp:  #使用ehlo识别smtp服务器  smtp.ehlo()  #启用TLS  smtp.starttls()  #再次识别smtp  smtp.ehlo()  #登录smtp  smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)  #smtp.set_debuglevel(1)调试使用  subject = 'hello where are you ?'  body ='Hi In China!!!!!!'  msg = f'{subject}\n\n{body}'  smtp.sendmail(EMAIL_ADDRESS,EMAIL_RECEVIER,msg)##注意这里测试的时候,发件人使用的是qq邮箱##使用163邮箱作为发件人会出很多问题。##这里的密码是邮箱的授权码 需要自己登录到邮箱进行设置
####使用EmailMessage对象设置邮件主题内容发送e_msg = EmailMessage()e_msg['Subject'] = 'Life is short !!!'e_msg['From']  = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_msg.set_content('How about python?')with smtplib.SMTP('smtp.qq.com',25) as smtp:  smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)  smtp.send_message(e_msg)
##发送带附件的邮件e_msg = EmailMessage()e_msg['Subject'] = 'Image from my PC!!!'e_msg['From']  = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_msg.set_content('Image moto attached。。。')#打开图片,添加图片信息到e_msg中with open('0.jpg','rb') as f:  file_data = f.read()  file_type = imghdr.what(f.name)  file_name = f.namee_msg.add_attachment(file_data,maintype='image',subtype=file_type,filename=file_name)#也可以添加多张图片,使用for实现即可#如果是pdf文件做如下调整#e_msg.add_attachment(file_data,maintype='application',subtype='octet-stream',filename=file_name)#其他格式文件可参考apiwith smtplib.SMTP('smtp.qq.com',25) as smtp:  smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)  smtp.send_message(e_msg)
####发送一个HTML格式的邮件e_msg = EmailMessage()e_msg['Subject'] = 'html email send!!!'e_msg['From']  = EMAIL_ADDRESSe_msg['To'] = EMAIL_RECEVIERe_msg.set_content('This is a plain text email')e_msg.add_alternative("""\<!DOCTYPE html><html>    <body>        <h2 >This is an HTML Email!</h2>    </body></html>""", subtype='html')with smtplib.SMTP('smtp.qq.com',25) as smtp:  smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)  smtp.send_message(e_msg)

关于python email电子邮件怎么发送普通文本、附件、html格式邮件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI