python 配置 SMTP 发送邮件,支持 SSL 和非 SSL

复制代码
#!/usr/bin/python3

import smtplib
import traceback
from email.mime.text import MIMEText
from email.header import Header

def send_html_email(smtp_host, smtp_port, use_ssl, from_addr, password, to_addrs, subject, content):
  try:
    msg = MIMEText(content, _subtype='html', _charset='utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['From'] = from_addr
    msg['To'] = ",".join(to_addrs)
    print("use_ssl: {}".format(use_ssl))
    if use_ssl:
      smtp = smtplib.SMTP_SSL()
    else:
      smtp = smtplib.SMTP()
    smtp.connect(smtp_host, smtp_port)
    smtp.set_debuglevel(1)
    smtp.login(from_addr, password)
    smtp.sendmail(from_addr, to_addrs, msg.as_string())
  except:
    print("邮件发送失败")
    traceback.print_exc()
  finally:
    smtp.quit()


if __name__ == '__main__':

  smtp_host = "smtp.126.com"
  smtp_ssl_port = 465
  smtp_port = 25
  from_addr = "nihaorz@126.com"
  password = "******"
  to_addrs = ["wangrui1066@geostar.com.cn", "nihaorz@qq.com"]
  subject = "python SMTP 测试邮件"
  content = '<a target="_blank" href="http://192.168.200.128">测试链接</a>'

  send_html_email(smtp_host, smtp_ssl_port, True, from_addr, password, to_addrs, subject, content)
  send_html_email(smtp_host, smtp_port, False, from_addr, password, to_addrs, subject, content)
复制代码

支持 SMTP 及 SMTP_SSL

password 自行修改,qq、126、163 均需使用授权密码(非网页登录邮箱的账户密码)

posted @   Nihaorz  阅读(208)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示