0402自学web后端之——使用flask-mail发送邮件

44 篇文章 0 订阅
10 篇文章 0 订阅

安装:

>>> pip3 install flask_mail

设置环境变量

>>> export MAIL_USERNAME=发件邮箱地址@163.com
>>> export MAIL_PASSWORD=发件邮箱授权码
>>> export MAIL_SERVER=smtp.163.com

注意!发件邮箱要开启SMTP,一般在邮箱的设置界面,并且MAIL_PASSWORD一定要填授权码,而非密码,以163为例:
在这里插入图片描述

# -*- coding: UTF-8
# config.py
import os

DEBUG = False
MAIL_SERVER = os.environ['MAIL_SERVER']
MAIL_PORT = 25
MAIL_USE_TLS = True
MAIL_USE_SSL = False
MAIL_USERNAME = os.environ['MAIL_USERNAME']
MAIL_PASSWORD = os.environ['MAIL_PASSWORD']
MAIL_SERVER = os.environ['MAIL_SERVER']
MAIL_DEFAULT_SENDER = 'from@example.com'
DB_HOST = os.environ['MONGO_PORT_27017_TCP_ADDR']
DB_PORT = 27017
KEY = 'secret'
ACTIVATION_EXPIRE_DAYS = 5
TOKEN_EXPIRE_HOURS = 1
# -*- coding: UTF-8
# flaskMail.py
from flask import Flask
from flask_mail import Message, Mail
import os

app = Flask(__name__)
app.config.from_object('config')
mail = Mail(app)

# 创建邮件内容
msg = Message('email subject',sender='发件邮箱地址@163.com',
          recipients=['收件邮箱地址@qq.com'])
msg.body='邮件正文内容'

# 发送邮件,没有包含附件
with app.app_context():
    mail.send(msg)

# 发送邮件,包含有附件
with app.app_context():
    with app.open_resource('test.png') as f:
        # msg.attach 邮件附件添加
        # msg.attach("文件名", "类型", 读取文件)
        msg.attach('test.png','image/png',f.read())
        mail.send(msg)
        print('已发送!')
>>> python3 flaskMail.py
'已发送!'

如果sender中设置的邮箱和环境变量中设置的邮箱不一致会报错:

smtplib.SMTPSenderRefused: (553, b'Mail from must equal authorized user', 'sender-email-address@163.com')

如果邮箱没有设置开启SMTP或发件邮箱密码不是授权码,会报错:

smtplib.SMTPAuthenticationError: (550, b'User has no permission')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值