python处理SMTP协议发送邮件

python处理SMTP协议发送邮件

smtplib 主要解决邮件的传输,与服务器的连接关闭等操作

email主要处理与邮件的正文,附件等与内容有关的东西

一、发送邮件

1、协议

(1)SMTP:发送邮件,Simple Mail Transfer Protocol

(2)POP3:接收文件,Post Offic Protocol V3

(3)IMAP:网络邮件访问协议,Internet Mail Access Protocol,比POP3实时性更强

2、如何发送邮件

截至(2022年1月),网易邮箱的SMTP(发送邮件)和IMAP/POP3(接收邮件)服务器地址如下:

SMTP服务器地址(发送邮件):smtp.163.com SMTP服务器IP地址:122.228.247.124 25端口(不加密)、465端口(SSL加密)、587端口(TLS加密)

IMAP服务器地址(接收邮件):imap.163.com IMAP服务器IP地址:123.126.100.39 143端口(不加密)、993端口(SSL加密)

POP3服务器地址(接收邮件):pop.163.com POP3服务器IP地址:123.125.50.38 110端口(不加密)、995端口(SSL加密)

# 直接导入内置模块
import smtplib,time
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# smtplib 主要解决邮件的传输,与服务器的连接关闭等操作
# email主要处理与邮件的正文,附件等与邮件内容有关的东西

# 发送邮件第一步 - 构建邮件的主体对象
# sender = '13772816626@163.com'
# reciver = '13772816626@163.com'
sender = '2811403517@qq.com'
reciver = '2811403517@qq.com'

msg = MIMEMultipart()  # 构建邮件的主体对象
msg['Subject'] = 'Python test eamil'  #邮件标题
msg['From'] = sender  # 邮件发送者
msg['To'] = reciver  # 邮件接受者

# 第二步 - 构建邮件的正文
body = '''
<div style='font-size: 30px; color: red;'>这是一个邮件的正文<a href='www.woniuxy.com'>点我有惊喜</a></div>
'''  # body是邮件正文的内容,基本上邮件的正文目前都是html格式
content = MIMEText(body,'html','utf-8')   # content 是邮件的正文,其中包含内容,格式,编码
msg.attach(content)  # 将邮件内容加到msg主体对象当中

# 添加附加邮件
attachment = MIMEApplication(open('./woniunote.jpg','rb').read())
filename = 'text.jpg'
attachment.add_header('content-Disposition','attachment',filename=filename)
msg.attach(attachment)

# 建立与邮件服务器的连接,并发送邮件
smtpObj = smtplib.SMTP()  # 实例化 SMTP 对象,如果基于smtplib.SMTP_SSL
smtpObj.connect('mail.qq.com','25')   # 连接邮件服务器地址,参数要有正确端口号
smtpObj.login(user=sender,password='MDQ2yxh2YF2ymq13')  # 连接上邮件服务器地址之后进行登录,用户登录之后才可进行发送邮件,qq这里的password是授权码
smtpObj.sendmail(sender,reciver,str(msg))  # 登陆成功之后才可进行发送邮件,三个参数分别是 发送者,接收者,字符串版邮件主体对象
smtpObj.quit()  # 关闭 SMTP 连接

# 且SMTP邮件发送是以明文发送的,就是用了个base64转码

3、基于QQ邮箱发送邮件

image-20240407193828527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值