实例
# encoding:utf8 """ flask_mail实现邮件的发送 """ from flask import Flask from flask_mail import Message, Mail# Message构建消息对象, Mail完成发送 # 实例化 app = Flask(__name__ ) # 1.配置 app.config["MAIL_SERVER"] = "smtp.qq.com" app.config["MAIL_PORT"] = 465 app.config["MAIL_USE_SSL"] = True app.config["MAIL_USE_TLS"] = False app.config["MAIL_USERNAME"] = "2388955374@qq.com" # ("username", "qq_mail")# 字符串时是发件人邮箱, 元组会自动拆分成发件人昵称邮箱和邮箱 app.config["MAIL_PASSWORD"] = "凭证" # # QQ邮箱需要的凭证,不需要要密码 app.config["MAIL_PASSWORD"] = "bruqfuzmmxwneccj" # 2.邮箱实例化 ,一定要在邮件配置的后面, 不然会报错10061 mail = Mail( app ) # 发送消息 def send_msg(): # 3.构建消息对象 msg = Message( subject="测试邮件,请及时删除!", sender=app.config.get("MAIL_USERNAME"), recipients=["1259934209@qq.com", "2388955374@qq.com"] ) # msg.html = """ # <b> 2021年3月23日 </b> # html会覆盖body??? # """ msg.body = """ 亲爱的陈: 这是测试邮件,请及时删除! """ msg.charset = "utf-8" # 邮件字符 ,非必须 # 4. 发送邮件 mail.send( msg ) # 邮件发送消息 @app.route("/") def send_qq_mail(): try: send_msg() return "邮件发送成功! " except Exception as e: return "邮件发送失败:%s !" % str(e) if __name__ == "__main__": app.run( debug=True )
注意点:
msg.html会导致 msg.body不可见,原因未知
mail的实例化需要在邮件配置结束之后,不然会报错 10061
MAIL_PORT是邮箱服务器端口