python发送QQ邮件

一、使用QQ邮箱发送邮件

使用第三方 SMTP 服务发送

这里使用了 QQ 邮箱(你也可以使用 163,Gmail等)的 SMTP 服务,需要做以下配置:

QQ 邮箱 SMTP 服务器地址:smtp.qq.com,ssl 端口:465。

以下实例你需要修改:发件人邮箱(你的QQ邮箱),密码,收件人邮箱(可发给自己)。

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

my_sender = '212225353@qq.com'  # 发件人邮箱账号
my_pass = 'xxxxxxxxx'           # 发件人邮箱授权码 不是qq密码   
my_user = '212225353@qq.com'    # 收件人邮箱账号,我这边发送给自己


def mail():
    ret = True
    try:
        msg = MIMEText('填写邮件内容', 'plain', 'utf-8')
        msg['From'] = formataddr(["andy", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To'] = formataddr(["FK", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject'] = "发送邮件测试"  # 邮件的主题,也可以说是标题

        server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱授权码
        server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
    except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
        ret = False
    return ret


ret = mail()
if ret:
    print("邮件发送成功")
else:
    print("邮件发送失败")

 

发送带图片的邮件

 

import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart


def send_email_imag(SMTP_host, from_account, from_password, to_account, subject, img_data):
    html_content = """
    <html><body>
    <img src="cid:image1" alt="image1" align="center" width=100% >
    </body></html>
    """
    # 1. 实例化SMTP,链接邮件服务器(也可以使用上面的方法)
    smtp = smtplib.SMTP_SSL(SMTP_host, port=465)
    # 2. 登录邮箱,用户名和密码(授权码)
    smtp.login(from_account, from_password)
    print('Login Successful!')
    # 3. 配置发送内容msg
    msg = MIMEMultipart()
    # 3.1 创建超文本对象(用来确定图片布局) ,并将超文本加载到msg
    content = MIMEText(html_content, _subtype='html', _charset='utf8')
    msg.attach(content)
    # 3.2 创建图片对象,并将图片加载到msg
    img = MIMEImage(img_data, _subtype='octet-stream')
    img.add_header('Content-ID', 'image1')
    msg.attach(img)
    # 3.3 加载邮件主题和发送账户
    msg['Subject'] = Header(subject, 'utf-8')  # 主题
    msg['From'] = from_account
    msg['To'] = to_account
    # 4. 配置发送邮箱,接受邮箱,以及发送内容
    smtp.sendmail(from_account, to_account, msg.as_string())
    # 5. 关闭邮件服务
    smtp.quit()


if __name__ == '__main__':
    #  相对路径和绝对路径
    img_file = open(r"D:\project_58tribe\发送email\img.png", "rb")
    # img_data2 = open("C:\\Users\\cqfdcw\\Desktop\\456.png","rb").read()
    img_data = img_file.read()
    img_file.close()
    try:
        send_email_imag('smtp.qq.com', '自己的邮箱', '邮箱授权码', '自己的邮箱', '邮件主题', img_data)
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

 

  

更多教程:https://www.runoob.com/python/python-email.html

posted @ 2020-04-01 10:27  叫我大表哥  阅读(661)  评论(0编辑  收藏  举报