python发送邮箱验证码

通过python代码,发送邮箱验证码

前提:今天通过flask-mail测试邮箱验证码的时候,总是不通,显示timeout,很烦,不知道是代码的问题还是邮箱长久没有使用的问题,通过下面的代码测试了一下,邮箱是通的,估计是代码存在问题,还需要继续排查,先把正确代码做个记录.
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr


def send_email(receivers, subject, content):
    """发送邮件

    Args:
        sender (str): 发件人邮箱地址
        password (str): 发件人邮箱授权码
        receivers (list): 收件人邮箱地址列表
        subject (str): 邮件主题
        content (str): 邮件内容

    Returns:
        bool: 邮件是否发送成功
    """
        # 读取环境变量中的敏感信息 发送邮箱账户和对应授权码
    sender = '123456789@qq.com'
    password = '7984654dsfafdf'
    try:
        # 构造邮件对象
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['From'] = formataddr(['From nicead.top', sender])
        msg['Subject'] = subject

        # 连接邮箱服务器并登录
        server = smtplib.SMTP_SSL('smtp.qq.com', 465)
        server.login(sender, password)

        # 发送邮件
        for receiver in receivers:
            msg['To'] = formataddr(['FK', receiver])
            server.sendmail(sender, [receiver], msg.as_string())

        server.quit()
        return True
    except Exception:
        return False


if __name__ == '__main__':

    # 设置收件人列表和邮件内容
    receivers = ['123456789@qq.com', '123456789@163.com']
    subject = '验证码'
    content = '验证码为:785421'

    # 发送邮件
    if send_email( receivers, subject, content):
        print('邮件发送成功')
    else:
        print('邮件发送失败')
注: 其中的邮箱账户和密码都是虚拟的,将你的邮箱账户替换掉就可以.
另外,密码是你的邮箱授权验证码,不是邮箱登录密码,需要在对应的邮箱账户中设置
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值