【玩转python】python实现代替QQ邮箱发出邮件(附源码,新手也能用!)

源码请点赞关注收藏后评论区留言或者私信博主

常规登录QQ邮箱发送邮件的过程是比较繁琐和复杂的,而且不够智能化,下面通过一个实例来讲解如何使用python程序代替QQ邮箱来替我们发邮件

当程序输入如下图时表明发邮件成功

【玩转python】python实现代替QQ邮箱发出邮件(附源码,新手也能用!)_第1张图片

 当程序输入如下图时说明授权码有点问题 

此时点击里面的网址 按照指示获得最新的授权码即可

 下面是保姆级教程,哪怕你一点都不懂代码,只需按照图片指示修改对应内容也可以成功发送QQ邮件

下面的信息根据你自己的发件人邮箱和收件人邮箱以及授权码填即可

【玩转python】python实现代替QQ邮箱发出邮件(附源码,新手也能用!)_第2张图片

下面这里可以改收件人和发件人的名字(其实不改也行)

再下面的文件路径就要改成你自己所要发送的文件路径即可 

【玩转python】python实现代替QQ邮箱发出邮件(附源码,新手也能用!)_第3张图片

 至此 需要修改的部分都修改完了 大功告成 点击运行即可

部分源码如下

import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os

# 配置邮箱服务器信息
mail_host = "smtp.qq.com"   # 设置服务器
mail_user = "13"     # 用户名
mail_pass = "whgagf"  # 授权码

# 配置发件人、收件人信息
sender = '[email protected]' # 发件人邮箱
receivers = ['[email protected]']  # 收件人邮箱,可设置为多个邮箱


def message_config():
    """
    配置邮件信息
    :return: 消息对象
    """
    # 第三方 SMTP 服务
    content = MIMEText('测试代码数据,注意查收')
    message = MIMEMultipart() # 多个MIME对象
    message.attach(content)  # 添加内容
    message['From'] = Header("不知道你是谁", 'utf-8') # 发件人
    message['To']   = Header("不知道我是谁", 'utf-8')  # 收件人
    message['Subject'] = Header('demo', 'utf-8') # 主题
    # 添加Excel类型附件
    file_name = r'op\mrtb_data.xlsx' # 文件名
    file_path = os.path.join(file_name)        # 文件路径
    xlsx = MIMEApplication(open(file_path, 'rb').read())  # 打开Excel,读取Excel文件
    xlsx["Content-Type"] = 'application/octet-stream'     # 设置内容类型
    xlsx.add_header('Content-Disposition', 'attachment', filename=file_name) # 添加到header信息
    message.attach(xlsx)
    return message

def send_mail(message):
    """
    发送邮件
    :param message: 消息对象
    :return: None
    """
    try:
        smtpObj = smtplib.SMTP_SSL(mail_host) # 使用SSL连接邮箱服务器
        smtpObj.login(mail_user, mail_pass)   # 登录服务器
        smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件
        print("邮件发送成功")
    except Exception as e:
        print(e)

if __name__ == "__main__":
    print("开始执行")
    message = message_config() # 调用配置方法
    send_mail(message)         # 发送邮件
    print("执行结束")

你可能感兴趣的:(python源码实例,python,开发语言,服务器,httpx,pytest)