1.登录QQ邮箱,点击设置

2.在设置里点击账户
3.在账户里,开启POP3/SMTP服务

4.生成授权码,后面在代码里用来当做邮箱密码

代码如下:
# !/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
send_user = "xxxxxxxxx@qq.com" # 发件人的邮箱账号
send_pwd = "xxxxxxxxxx" # 发件人邮箱的密码(在第四步生成的授权码)
rec_user = "xxxxxxxxxxx@qq.com" # 收件人邮箱,也可以填发件人邮箱,自己发送给自己
def mail():
ret = True
try:
msg = MIMEText("这是测试邮箱发送内容!", "plain", "utf-8") # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
msg["From"] = formataddr(["FromSMTPQQ", send_user]) # 括号中对应发件人邮箱昵称、发件人邮箱账号
msg["To"] = formataddr(["RecSMTP", rec_user]) # 括号中对应收件人邮箱昵称、收件人邮箱账号
msg["Subject"] = "这是邮件的主题" # 邮件的主题或标题
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 括号中对应的是发件人邮箱中的SMTP服务器,端口
server.login(send_user, send_pwd) # 括号中对应的是发件人邮箱账号和密码
server.sendmail(send_user, [rec_user], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception:
print Exception
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功!")
else:
print("邮件发送失败!")
发送一个html格式的邮件:
发送html格式的邮件只需要将MIMEText函数里的参数plain改为html,将邮件内容用html格式来写。
代码如下:
# !/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
send_user = "xxxxxxx@qq.com" # 发件人的邮箱账号
send_pwd = "yyyyyyyy" # 发件人邮箱的密码
rec_user = "zzzzzzz@qq.com" # 收件人邮箱
def mail():
ret = True
try:
content = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
"""
msg = MIMEText(content, "html", "utf-8") # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
msg["From"] = "jonas" # 括号中对应发件人邮箱昵称、发件人邮箱账号
msg["To"] = "you" # 括号中对应收件人邮箱昵称、收件人邮箱账号
msg["Subject"] = "一个主题" # 邮件的主题或标题
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 括号中对应的是发件人邮箱中的SMTP服务器,端口
server.login(send_user, send_pwd) # 括号中对应的是发件人邮箱账号和密码
server.sendmail(send_user, [rec_user], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception:
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功!")
else:
print("邮件发送失败!")
网友评论