Python 发送邮件
Python 原生#
import smtplib
from email.message import EmailMessage
# 发送文本
with open('test') as fp:
# 创建一条 text/plain 信息
msg = EmailMessage()
msg.set_content(fp.read())
# 发送 html
# msg.add_alternative('<h1>Hello</h1>', subtype='html')
msg['Subject'] = '标题'
msg['From'] = '发送方邮件地址'
msg['To'] = '接受方邮件地址'
# 通过 ssl 加密方式发送
with smtplib.SMTP_SSL('smtp服务器地址', 465) as s:
s.login('发送方邮件地址', '发送方邮件密码或授权码')
s.send_message(msg)
# -----------------------------------------------------------
# 通过 tls 加密方式发送
with smtplib.SMTP('smtp服务器地址', 587) as s:
s.starttls()
s.login('发送方邮件地址', '发送方邮件密码或授权码')
s.send_message(msg)
Flask-mail#
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config.update(
MAIL_SERVER = os.getenv('MAIL_SERVER'),
MAIL_PORT = 465,
MAIL_USE_SSL = True,
MAIL_USERNAME = os.getenv('MAIL_USERNAME'),
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD'),
MAIL_DEFAULT_SENDER=('发送人', os.getenv('MAIL_USERNAME'))
)
mail = Mail(app)
def send_mail(subject, to, body, html=None):
message = Message(subject, recipients=[to], body=body, html=html)
mail.send(message)
本作品采用《CC 协议》,转载必须注明作者和本文链接