记录使用python smtplib邮件发送

基于多源异构数据存储管理系统开发时遇到的邮件发送问题,这里做一下记录。

import smtplib  # 导入smtplib模块,用于发送邮件
from email.mime.text import MIMEText  # 从email.mime.text导入MIMEText类,用于构建文本邮件
from email.header import Header  # 从email.header导入Header类,用于设置邮件头部

email_subject = '邮件主题'  # 定义邮件主题
# 定义邮件内容,使用多行字符串
email_content = """  





数据问题提醒



  
数据问题提醒
尊敬的用户,您好!

我们注意到您的账户数据存在一些问题,需要您立即关注并采取行动。以下是具体问题及建议的解决步骤:

  • 问题1:数据1显示异常,请检查数据来源是否正确。
  • 问题2:数据2存在缺失,请补充完整以保证服务正常运行。
  • 问题3:数据3超出正常范围,请调整至合理数值。

请尽快登录到您的账户中检查并更新相关数据。如果有任何疑问,或需要我们的帮助,请通过以下联系方式与我们联系。

立即登录并检查数据

感谢您的理解与合作。

""" msg = MIMEText(email_content, 'plain', 'utf-8') # 创建MIMEText对象,设置邮件内容、格式和编码 msg['Subject'] = Header(email_subject, 'utf-8') # 设置邮件主题 msg['From'] = '[email protected]' # 设置发件人邮箱 msg['To'] = '[email protected]' # 设置收件人邮箱 smtp_server = 'smtp.qq.com' # 定义SMTP服务器地址,QQ邮箱服务器地址为smtp.qq.com smtp_port = 587 # 定义SMTP服务器端口(587为TLS端口,465为SSL端口) sender_email = '[email protected]' # 定义发送者邮箱 password = 'yourauthorizationcode' # 定义发送者邮箱的授权码 try: with smtplib.SMTP(smtp_server, smtp_port) as server: # 创建SMTP对象并连接到SMTP服务器 #server.set_debuglevel(1) # 开启调试信息,需要再启用 server.starttls() # 启用TLS加密 server.login(sender_email, password) # 登录到SMTP服务器 server.sendmail(sender_email, msg['To'], msg.as_string()) # 发送邮件 server.quit() # 结束会话 print('邮件发送成功') # 打印成功消息 except smtplib.SMTPException as e: # 捕获SMTP异常 print(f'邮件发送失败: {e}') # 打印失败消息和异常信息 except Exception as e: # 捕获其他异常 print(f'发生了其他错误: {e}') # 打印其他错误信息

在发送过程中需要手动调用一下server.quit()方法关闭会话,否则会报一个错误

send: 'QUIT\r\n'
reply: b'\x00\x00\x00\x1a\x00\x00\x00\n'
reply: retcode (-1); Msg: b'\x00\x00\x00'
邮件发送失败: (-1, b'\x00\x00\x00')

这是因为未能正确关闭导致的。

你可能感兴趣的:(python,前端,javascript)