python发送qq邮件,加密发送,非加密发送
设置qq邮箱
设置开启客户端功能
登录qq邮箱网页版—>设置—>账户—>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务—>开启 POP3/SMTP服务
设置—>账户
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启POP3/SMTP服务
根据提示开启
授权码
开启成功
查看qq邮件服务器信息1
查看qq邮件服务器信息2
查看qq邮件服务器信息3
qq邮箱SMTP服务器为,smtp.qq.com,默认端口25,加密端口465
编写代码前需掌握的信息
– | – |
---|---|
qq邮箱服务器地址 | smtp.qq.com |
默认端口 | 25 |
加密端口 | 465 |
登录服务器的账号 | 自己的qq邮箱账户 |
登陆服务器的密码 | 授权码 |
编写python代码
发送邮件所需要的模块
利用python发送邮件我们需要用到两个python的内置模块,smtplib和email,其中smtplib模块负责发送邮件,而email模块负责构造邮件内容。
email模块的三种方法
from email.mime.text import MIMEText #纯文本,HTML。html类型时,发送消息的内容也需要为html格式。
from email.mime.image import MIMEImage #图片
from email.mime.multipart import MIMEMultipart #多种组合内容
编写python代码
连接服务器、登录邮箱账户、定义邮箱内容、发送邮件
#导入模块
import smtplib
from email.mime.text import MIMEText #纯文本,HTML。html类型时,发送消息的内容也需要为html格式。
from email.mime.image import MIMEImage #图片
from email.mime.multipart import MIMEMultipart #多种组合内容
#创建 SMTP 对象,名字可自定义
#非加密
smtp = smtplib.SMTP()
#加密
smtp = smtplib.SMTP_SSL(host)
#连接邮件服务器
smtp.connect(host,port)
#登录邮件服务器
smtp.login(uer_name,password)
#发送邮件
smtp.send_mail(from_addrs,to_addr,msg.as_string())
#退出邮件服务器
smtp.quit()
完整代码
非加密发送
#导入模块
#smtplib模块负责发送邮件
#email模块负责构造邮件内容
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 构造MIMEText对象,参数为:正文,MIME的subtype(默认为plain字符),编码方式
message = MIMEText('邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("tom", 'utf-8') # 发件人的昵称,字符集utf-8
message['To'] = Header("mary", 'utf-8') # 收件人的昵称,字符集utf-8
message['Subject'] = Header('Python SMTP 邮件测试', 'utf-8') # 定义主题内容,字符集utf-8
#屏幕打印消息内容
print(message)
# 创建 SMTP 对象
smtp = smtplib.SMTP()
# 连接(connect)指定服务器,端口
smtp.connect("smtp.qq.com", port=25)
# 登录,自己的qq邮箱账号和授权码
smtp.login(user="9*******8@qq.com", password="au********ge")
#发件人的邮箱,收件人邮箱(收件人可为多个,多个写成列表['邮箱地址1','邮箱地址2','邮箱地址3']),此处测试为自己发给自己,msg发送内容,把message的内容作为字符串赋值给msg发送
smtp.sendmail("9********8@qq.com", to_addrs="9******8@qq.com", msg=message.as_string())
smtp.quit()
收到邮件
加密发送
#导入模块
import smtplib
from email.mime.text import MIMEText
from email.header import Header
message = MIMEText('邮件发送测试ssl...', 'plain', 'utf-8')
message['From'] = Header("tom", 'utf-8') # 发件人的昵称
message['To'] = Header("mary", 'utf-8') # 收件人的昵称
message['Subject'] = Header('Python SMTP ssl 邮件测试', 'utf-8') # 定义主题内容
print(message)
# 创建 SMTP 对象
smtp = smtplib.SMTP_SSL("smtp.qq.com")
# 连接(connect)指定服务器
smtp.connect("smtp.qq.com", port=465)
# 登录,需要:登录邮箱和授权码
smtp.login(user="9*******8@qq.com", password="au********ge")
smtp.sendmail("9*******8@qq.com", to_addrs="9*******8@qq.com", msg=message.as_string())
smtp.quit()
收到邮件
调整代码
完整代码,加密端口发送
#导入模块
import smtplib
from email.mime.text import MIMEText
smtp_host = "smtp.qq.com"
smtp_port = 465
subject = "qq_mail"
smtp_sender = "9******8@qq.com"
smtp_receive = "2******3@qq.com"
smtp_Cc = "9******8@qq.com"
password = 'au********ge'
mm = """
message 邮件内容
message['Subject'] 邮件主题描述 邮件主题描述
message['From'] 发件人显示,不起实际作用如:"xxx"
message['To'] 收件人显示,不起实际作用 多个收件人用','隔开如:"xxx,xxxx"
msg["Cc"] 抄送人显示,不起实际作用,多个抄送人用','隔开如:"xxx,xxxx"
SMTP 对象里的内容才有实际意义
smtp.sendmail('发件人','收件人',邮件信息)
"""
message = MIMEText(mm, 'plain', 'utf-8') #plain,纯文本类型
message['Subject'] = subject # 邮件主题显示
message['From'] = smtp_sender # 发件人显示,没有实际作用
message['To'] = smtp_receive # 收件人显示,没有实际作用
message["Cc"] = smtp_Cc # 抄送人显示,没有实际作用
# 创建 SMTP 对象
smtp = smtplib.SMTP_SSL(smtp_host,smtp_port)
# 连接(connect)指定服务器
smtp.connect(smtp_host,smtp_port)
# 登录,需要:登录邮箱和授权码
smtp.login(smtp_sender, password)
#发送邮件smtp.sendmail('发件人','收件人',邮件信息)
smtp.sendmail(smtp_sender, smtp_receive,message.as_string())
print("发送成功")
smtp.quit()
发送成功
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154047.html