网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

如何用python发送接收邮件

时间:2023-07-11 09:30

人气:

作者:admin

标签: html  python  SMTP 

导读:SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。...

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

Python发送邮件比较简单,掌握两个自带库 smtplib、email 即可,smtplib 负责发送邮件,email 负责构造邮件(邮件内容,主题,收件人,抄送人等)。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

MIMEText用于电子邮件正文

MIMEMultipart用于电子邮件结构

MIMEApplication用于在电子邮件中添加二进制数据(如文件附件)

MIMEImage用于图片

importsmtplib
fromemail.mime.imageimportMIMEImage
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.applicationimportMIMEApplication

1.发送邮件(可带附件)

下面是一个使用Python中的smtplib库发送电子邮件的示例代码。

importsmtplib
fromemail.mime.textimportMIMEText
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.applicationimportMIMEApplication

#设置发送邮件的信息
sender_email='xxx@qq.com'#发件人邮箱账号
sender_password='xxx'#发件人邮箱授权码
receiver_email='xxx@qq.com'#收件人邮箱账号
subject='Thisisatestemailby数字ICer'#邮件的主题

smtp_server='smtp.qq.com'#qq邮箱的SMTP服务器
smtp_port=465#qq邮箱的SMTP服务器端口465

defsend_email():
ret=True
try:
#创建一个multipart的邮件对象
msg=MIMEMultipart()
msg['From']=sender_email
msg['To']=receiver_email
msg['Subject']=subject

#添加邮件正文
body='Hello,thisisatestemail.'
msg.attach(MIMEText(body,'plain'))

#添加附件
#filename='attachment.pdf'
#withopen(filename,'rb')asf:
#attachment=MIMEApplication(f.read(),_subtype='pdf')
#attachment.add_header('Content-Disposition','attachment',filename=filename)
#msg.attach(attachment)
#
#发送邮件
withsmtplib.SMTP_SSL(smtp_server,smtp_port)assmtp:
smtp.login(sender_email,sender_password)
smtp.sendmail(sender_email,receiver_email,msg.as_string())
print("邮件发送成功")
exceptExceptionase:
print("邮件发送失败:",e)
send_email()

上面使用QQ邮箱帐户发送邮件,也可以使用其他邮箱,需要定义邮箱的SMTP服务器和端口。

对于QQ邮箱,SMTP服务器是smtp.qq.com,SMTP端口是465。

生成授权码

邮箱设置-->账户

设置POP3/IMAP/SMTP服务中

点击生成授权码,sender_password = 'xxx' 即为授权码,并不是你的qq邮箱密码;

074291de-1f28-11ee-962d-dac502259ad0.png授权码

定义发件人电子邮件地址、授权码和收件人电子邮件地址。

使用MIMEMultipart()创建一个多部分消息。使用msg['From']、msg['To']和msg['Subject']向消息添加发件人、收件人和主题。

使用MIMEText(body, 'plain')向消息添加邮件正文。

使用MIMEApplication()向消息添加附件。

其中 MIMEText 构造对象时,第一个参数是邮件正文;第二个参数是subType,可以设置两种格式 'plain' 和 'html';‘plain’ 表示发送纯文本消息。

07617dec-1f28-11ee-962d-dac502259ad0.png发送邮件(可带附件)

2.发送HTML格式的邮件

下面是发送HTML格式电子邮件的示例代码。

importsmtplib
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.applicationimportMIMEApplication


sender_email='xxx@qq.com'#发件人邮箱账号
sender_password='xxx'#发件人邮箱授权码
receiver_email='xxx@qq.com'#收件人邮箱账号
subject='Thisisatestemailby数字ICer'#邮件的主题
smtp_server='smtp.qq.com'#qq邮箱的SMTP服务器
smtp_port=465#qq邮箱的SMTP服务器端口465

mail_msg="""

Python邮件发送测试...

这是一个链接

""" msg=MIMEText(mail_msg,'html','utf-8') msg['From']=Header("sender_email",'utf-8') msg['To']=Header("receiver_email",'utf-8') msg['Subject']=Header(subject,'utf-8') try: withsmtplib.SMTP_SSL(smtp_server,smtp_port)assmtp: smtp.login(sender_email,sender_password) smtp.sendmail(sender_email,receiver_email,msg.as_string()) print("邮件发送成功") exceptsmtplib.SMTPException: print("Error:无法发送邮件")

email.header是Python标准库中的一个模块,Header类是一个用于处理电子邮件头部的工具,它可以处理中文等非ASCII字符集,确保电子邮件头部可以正确显示和解析。

当在电子邮件头部中使用中文或其他非ASCII字符时,需要对这些字符进行编码,以确保电子邮件头部可以被正确地显示和解析。Header类可以将这些非ASCII字符编码为合适的格式。

07880336-1f28-11ee-962d-dac502259ad0.png

发送HTML格式的邮件






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信