Python——SMPT发送邮件

1、源码实现


     注:只需将源码中x和*的位置换上对应邮箱号、密码/授权码就好。此外,收件人和发件人邮箱可以相同,即自己发给自己


from smtplib import SMTP, SMTP_SSL
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

try:
    # 连接到服务器
    # smtp = SMTP(host="smtp.163.com")
    smtp = SMTP_SSL(host="smtp.qq.com", port=465)

    # useemail = "xxx@163.com"
    useemail = "xxx@qq.com"

    # 登录
    # smtp.login(useemail, "******")
    smtp.login(useemail, "你的邮箱SMTP授权码,不是QQ/邮箱密码")  #获取授权码请看下方操作流程

    # 构造发送文件内容对象
    # sendmulti = MIMEMultipart("<h1>这是<b>Python<b>写的一封邮件</h1>", "html")
    sendmulti = MIMEMultipart()
    
    # 显示发件人
    sendmulti["from"] = useemail

    # 显示收件人
    sendmulti["to"] = "xxx@qq.com, xxx@qq.com"

    # 邮件主题
    sendmulti["subject"] = "测试邮件"

    # 构造图片对象并添加进邮件对象
    with open("xxx.png", "rb") as f:
        imgdata = MIMEImage(f.read())
        imgdata.add_header("Content-ID", "img001")
        sendmulti.attach(imgdata)
    htmlTitle = "<h1>世外桃源</h1><img src='cid:img001' /><p>End</p>"
    html = MIMEText(htmlTitle, "html")
    sendmulti.attach(html)

    # 添加文件附件
    with open("xxx.py", "rb") as f:
        mess_file = MIMEText(f.read(), "base64", "utf-8")
        mess_file["Content-Type"] = "application/octet-stream"
        mess_file["Content-Disposition"] = "attachment; filename='new.txt'"
        sendmulti.attach(mess_file)

    # 发送方法  第一个参数:发件人  第二个参数:收件人列表  第三个参数:邮件转字符串
    smtp.sendmail(useemail, ["xxx@qq.com", "xxx@qq.com"], sendmulti.as_string())
    smtp.quit()
except Exception as e:
    print(e)

2、获取授权码(以QQ邮箱为例)

  • 首先,进入QQ邮箱首页 > 点击设置

  • 然后,选择账户 > 下滑到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 > 点击开启

  • 完成短信发送点击 我已发送 成功便能收到授权码
  • 开启后操作如下图

大功告成

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值