脚本宝典收集整理的这篇文章主要介绍了python发送邮件,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
QQ邮箱传输协议
- SMTP:简单邮件传输协议(由源地址到目的地址的传输规则)
- smtp.qq.COM :QQ邮箱服务器
- 默认端口:25
- 生成第三方登录QQ邮箱的密钥,这样从第三方登录QQ邮箱,不能输入密码,只需要输入第三方密钥就行
需要使用到的库
- smtplib :主要是负责发送邮件,连接邮箱服务器,登录邮箱
- email :构造邮件,邮件显示的内容,收件人,发件人
import smtplib
From email.mime.text import MIMEText # 发送文本
from email.mime.image import MIMeimage # 发送图片
from email.mime.multipart import MIMEMultipart # 将多个对象结合起来
from email.utils import formataddr
from email.header import Header
发送邮件简单代码
sender_from = '604421385@qq.com' # 发件人邮箱
sender_to='icessun@qq.com' # 收件人邮箱
# 定义一个函数,接收传入的邮件主题,邮件内容为参数
def send_email(eamil_subject:str,email_content:str)->int:
try:
# 构造邮件的内容 plain:表示发送的是文本;HTML:表示发送的超文本
message = MIMEText(email_content, 'plain', 'utf-8')
# 主题
message['Subject'] = Header(eamil_subject, 'utf-8')
message['From'] = formataddr(['icessun', sender_from])
message['To'] = formataddr(['604421385', sender_to])
# 构造发送邮件的对象smtp,实例化SMTP()
smtp = smtplib.SMTP()
# 连接邮箱服务器 host 和 port
smtp.connect('smtp.qq.com', @H_19_126@25) # 可以简写 smtp=smtplib.SMTP('smtp.qq.com',25)
# 登陆邮箱 第二个参数是qq邮箱授权码
smtp.LOGin(sender_from, 'xxxxxxxx')
# 发送方,接收方(可以有多个['接收地址1','接收地址2',....]),发送的消息(字符串类型,使用邮件格式)
# message.as_string() 将MIMEText对象变为str
smtp.sendmail(sender_from, sender_to, message.as_string())
# 退出邮箱,结束SMTP会话
smtp.quit()
return 0
except:
return -1
email中的 MIMEText
- plain:表示发送的文本,基本的
# 构造邮件的内容 plain:表示发送的是文本;HTML:表示发送的超文本
email_content = '这是发送的文本消息'
message = MIMEText(email_content, 'plain', 'utf-8')
- html:表示发送的超文本
- base64:表示添加附件
# 打开文件所在的位置
send_file=oPEn(r'F:password.txt').read() # 二进制文件
message = MIMEText(send_file, 'base64', 'utf-8')
message['Content-Type'] = 'application/octet-stream'
# 内容展示的方式:attachment ,中文名字显示不成功 aaa.txt 英文才能正常显示
# message['Content-Disposition'] = 'attachment;filename="aaa.txt"'
message.add_header('Content-Disposition','attachment',filename='aaaa.txt')
email中的 Header 和 formataddr
- 发送的邮件发送方和接收方全部使用 Header;不会显示具体的发件人和收件人的邮箱地址
message['From'] = Header('python','utf-8')
message['To'] = Header('参数', 'utf-8')
- 发送的邮件发送方和接收方全部使用 formataddr;显示具体的发件人和收件人的邮箱地址,和为其设置的别名
# 默认字符编码为 utf-8,第一个参数传入列表[发件人的名字,邮箱地址]
message['From'] = formataddr(['hhhh', sender_from])
message['To'] = formataddr(['604421385', sender_to])
email中的MIMEMultipart
message = MIMEMultipart('mixed')
# 然后把 邮件的 Subject From To 添加到 message中
message['Subject'] = Header(email_subject,'utf-8')
message['From'] = formataddr(['test',sender_from])
message['To'] = formataddr(['接收者',sender_to])
- 将其他文本添加到 Multipart 中
message.attach(text_plain) # MIMEText 对象
message.attach(text_html) # 超文本
message.attach(text_att) # 附件
message.attach(image) # MIMEImage 对象
发送邮件的多功能代码:
- 发送文本
- 发送图片
- 发送超文本
- 发送附件
代码地址
回复:QQ邮箱 获取
以上是脚本宝典为你收集整理的python发送邮件全部内容,希望文章能够帮你解决python发送邮件所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。