美文网首页
python使用QQ SMTP发送邮件

python使用QQ SMTP发送邮件

作者: 夜凉听风雨 | 来源:发表于2020-10-09 11:51 被阅读0次

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

image.png

2.在设置里点击账户

3.在账户里,开启POP3/SMTP服务

image.png

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

image.png
代码如下:

# !/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("邮件发送失败!")

相关文章

网友评论

      本文标题:python使用QQ SMTP发送邮件

      本文链接:https://www.haomeiwen.com/subject/pvklpktx.html