python通过qq邮箱服务器发送邮件

因为项目需要,需要写一个通过qq邮箱服务器发送邮件的脚本,代码如图所示:

import smtplib
from email.mime.text import MIMEText


def send_alarm(mail_host, mail_user, mail_pass, sender, receivers, title, msg):
    """
    发送报警邮件工具方法
    :param mail_host: 邮件服务器
    :param mail_user: 邮件服务器登录用户
    :param mail_pass: 邮件服务器授权码
    :param sender: 邮件发送人
    :param receivers: 邮件接收者
    :param title: 邮件主题
    :param msg: 邮件内容
    :return: None
    """
    message = MIMEText(msg, 'plain', 'utf-8')
    message["Subject"] = title
    smtpObj = smtplib.SMTP()  # 建立和SMTP邮件服务器的连接
    smtpObj.connect(mail_host, 25)  # 25 为端口号
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("alarm send success!")


if __name__ == '__main__':
    mail_host = 'smtp.qq.com'
    # 这个需要改为你自己的qq
    mail_user = '123456789@qq.com'
    # 这个不是qq密码,也不是登录qq邮箱的密码,而是邮箱授权码
    mail_pass = 'xxxxxx'
    # 这个需要改为你自己的qq
    sender = 'xxxxx@qq.com'
    receivers = 'abcdefg@163.com'
    title = "邮件报警测试"
    msg = "哦哦哦哦哦"
    # 调用发送邮件工具方法
    send_alarm(mail_host, mail_user, mail_pass, sender, receivers, title, msg)

效果展示:

其中邮件授权码的获取方式:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,你可以使用第三方库如`smtplib`和`email`模块来发送电子邮件,包括使用QQ邮箱QQ邮箱通常会要求使用SMTP(简单邮件传输协议)服务,但需要先设置授权而非传统密。 以下是基本步骤: 1. 安装所需库(如果尚未安装): ```bash pip install smtplib email ``` 2. 导入必要的库并创建邮件对象: ```python import smtplib from email.mime.text import MIMEText from email.header import Header # 邮件配置信息 smtp_server = "smtp.qq.com" # QQ SMTP服务器地址 smtp_port = 465 # 常用端口为465或587(加密) sender_email = "your_qq_email@qq.com" # 发送者的QQ邮箱账号 sender_password = "your_authorization_code" # 授权(不是密) receiver_email = "recipient_email@example.com" # 收件人邮箱 message = MIMEText("这是测试邮件的内容", 'plain', 'utf-8') message['From'] = Header(sender_email) message['To'] = Header(receiver_email) subject = "Python邮件测试" message['Subject'] = Header(subject) # 构建邮件数据 msg = message.as_string() ``` 3. 连接并发送邮件: ```python try: with smtplib.SMTP_SSL(smtp_server, smtp_port) as server: server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, msg) print(f"邮件已成功发送至 {receiver_email}") except Exception as e: print(f"发送邮件失败:{e}") finally: server.quit() # 关闭连接 ``` 注意:为了安全起见,请确保在实际应用中妥善处理你的授权,并在不使用时清除它们。此外,QQ邮箱可能对非授权客户端有所限制,所以可能需要开启“QQ邮箱SMTP服务”并检查其设置是否允许从非默认客户端发送邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值