通过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服务