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()

发送成功

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值