美文网首页
flask-mail发送邮件

flask-mail发送邮件

作者: 摸不去的尘 | 来源:发表于2016-11-01 05:29 被阅读499次

Flask-Mail是一个对python smtplib进行封装以便集成到Flask提供发送邮件支持的模块。在学习flask-mail遇到了两个问题,记录下来以便以后查看。

flask-mail安装

pip installl flask-mail

flask-mail的使用

代码如下:

#!/usr/bin/env python
import flask import Flask
from flask_mail import Message, Mail  #现在flask-mail改为flask_mail导入

app = Flask(__name__)
#app.config['MAIL_SERVER'] = '220.181.12.16'
app.config['MAIL_SERVER'] = 'smtp.163.com'  #  这里用163邮件服务器
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = True        # 启用安全传输层协议
app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME')      # 从系统环境变量加载用户名和密码
app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD')
mail = Mail(app)

# 创建邮件内容
msg = Message('email subject',sender='sender-email-address@163.com',
          recipients=['reciver-email-address@exmple.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)

if __name__ == '__main__':
    app.run()

执行这段代码遇到两个问题:

  1. SMTP 530 认证失败,原因是开启了smtp服务,但是第三方邮件客户端要使用授权码登录,所以要在163邮箱上设置,设置客户端授权码,并使用户端授权码作为第三方邮件客户端的登录密码,即是代码中MAIL_PASSWORD的值。

  2. SMTP error 554,在stackoverflow找到原因是DNS反向解析的问题,解决方法是把['MAIL_SERVER'] = 'smtp.163.com替换成['MAIL_SERVER'] = '220.181.12.16'

SMTP error 554 is one of the more vague error codes, but is typically caused by the receiving server seeing something in the From or To headers that it doesn't like. This can be caused by a spam trap identifying your machine as a relay, or as a machine not trusted to send mail from your domain.

We ran into this problem recently when adding a new server to our array, and we fixed it by making sure that we had the correct reverse DNS lookup set up.

相关文章

  • Flask-Mail 发送邮件

    Flask 发送邮件 @(Flask)[Flask开发|Flask-Mail] 使用flask-mail扩展发送电...

  • 2018-04-26 flask-mail

    flask-mail 1、安装 pip install flask-mail 2、配置 3、异步发送邮件

  • Flask Web开发学习笔记(五)

    本文主要介绍,如何使用Flask-Mail发送邮件。 Flask-Mail连接到简单邮件传输协议(SMTP)服务器...

  • 6.电子邮件

    涉及的包 Flask-Mail SendGrid-python 6.1使用Flask-mail发送邮件 6.1.1...

  • flask-邮件发送

    利用flask-mail实现邮件发送 qq邮箱版 网易邮箱版

  • Flask邮件发送

    1、Flask通过flask-mail插件支持邮件发送pip install flask-mailpip i...

  • Flask-mail 发送邮件

    配置 app 对象的邮件服务器地址,端口,用户名和密码等创建一个 Mail 的实例:mail = Mail(app...

  • flask-mail发送邮件

    Flask-Mail是一个对python smtplib进行封装以便集成到Flask提供发送邮件支持的模块。在学习...

  • flask-mail 发送邮件

    首先我们现在qq里面开通发送邮件服务先 首先点开qq邮箱设置这里 然后点击账户这里,一直往下拉,找到开通 发送邮箱...

  • Flask-mail测试和遇到的问题

    导语 今天在尝试 Flask-Mail 发送邮件的过程中,遇到一个小问题导致发送邮件失败,查到了半天问题,真是被自...

网友评论

      本文标题:flask-mail发送邮件

      本文链接:https://www.haomeiwen.com/subject/tixmuttx.html