关于Flask mega-tutorial遇到的一些问题-三(Flask_mail服务器及邮箱设置)

关于Flask mega-tutorial遇到的一些问题-三(flask_mail)

这次看到flask_mail也是出现很多奇怪的问题~~
最后用126邮箱,其实也没有什么;
就和教程一样的大家会出现不同的问题,觉得有必要记一下,记下来;

- config.py

import os
basedir = os.path.abspath(os.path.dirname(__file__))

CSRF_ENABLED = True
SECRET_KEY = 'you-will-never-guess'

OPENID_PROVIDERS = [
    {'name': 'Google', 'url': 'https://www.google.com/accounts/o8/id'},
    {'name': 'Yahoo', 'url': 'https://me.yahoo.com'},
    {'name': 'AOL', 'url': 'http://openid.aol.com/<username>'},
    {'name': 'Flickr', 'url': 'http://www.flickr.com/<username>'},
    {'name': 'MyOpenID', 'url': 'https://www.myopenid.com'}]

SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db')
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')

# mail server settings
MAIL_SERVER = 'smtp.126.com'
MAIL_PORT = 25
MAIL_USE_TLS = False
MAIL_USE_SSL = False
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')

#MAIL_SERVER = 'smtp.gmail.com'
#MAIL_PORT = 465
#MAIL_USE_TLS = False
#MAIL_USE_SSL = True
#MAIL_USERNAME = os.environ.get('MAIL_USERNAME')  
#MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')

# administrator list
ADMINS = ['v***e@126.com'], '****air@gmail.com']

#print (MAIL_USERNAME)
#print (MAIL_PASSWORD)
# pagination
POSTS_PER_PAGE = 3

WHOOSH_BASE = os.path.join(basedir, 'search.db')
MAX_SEARCH_RESULTS = 50

要注意的点:

1. SECRET_KEY 不用改,不用删,和126的客户端授权码不同无关,不用改成一样的(//我也不知道为什么我改了最后觉得没有用删了出现了553);

2.MAIL_SERVERMAIL_PORT的配置;

1、配置gmail邮箱服务器:

MAIL_SERVER = 'smtp.gmail.com'
MAIL_PROT = 465

# 发现这个smtp.gmail.comsmtp.googlemail.com的IP是一样的。。

2、配置qq邮箱服务器:

MAIL_SERVER = 'smtp.qq.com'
MAIL_PROT = 25
MAIL_USE_TLS = True
MAIL_USE_SSL = False

3、配置126邮箱服务器:

MAIL_SERVER = 'smtp.126.com'
MAIL_PROT = 25
MAIL_USE_TLS = False
MAIL_USE_SSL = False

为什么大家不用163呢~~

3.做不同邮箱测试的时候,我把app.db删掉之后重新db_create.py;
还有要是确定代码没问题,就直接把”虚拟环境中启动 Python并且执行下面的代码”写一个小小的发邮件 .py:

  • hello.py
#!flask/bin/python

from flask_mail import Message
from app import app, mail
from config import ADMINS

msg = Message('test subject', sender=ADMINS[0], recipients=ADMINS)
msg.body = 'text body'
msg.html = '<b>HTML</b> body'
with app.app_context():
    mail.send(msg)

成功就可以进行下一步啦。

4.为了安全起见,设置环境变量一般不在代码中填入邮箱密码等信息,设置环境变量;

对于

MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')

看起来,我们应该在环境变量中设置好MAIL_USERNAMEMAIL_PASSWORD

持有email服务器用户名和密码的两个变量需要在环境中定义。如果你是使用Linux或Mac OS X上的bash,你可以设置这些变量如下:

(venv) $ export MAIL_USERNAME=<Gmail username>
(venv) $ export MAIL_PASSWORD=<Gmail password>

对于Windows用户,可以设置环境变量如下:

(venv) $ set MAIL_USERNAME=<Gmail username>
(venv) $ set MAIL_PASSWORD=<Gmail password>

——-Flask Web Development —— Email

这里说明一下:
1. Unix/Linux下这句export MAIL_USERNAME=<Gmail username>
这个可以直接形如export MAIL_USERNAME=vk***e@126.com
不用加尖括号<>这样子的,倒是可以加个引号吧~~
以及以及,一定要输出看一下对不对~
以及以及以及,这个最好写到~/.zshrc(or~/.bashrc)里吧~

2.set 命令是在cmd中的,set方式设置只对当前的命令窗口有效,关闭命令窗口就没有了。
在PowerShell用:$env:MAIL_USERNAME='XXXX@example.com'
检查环境变量的命令是 ls env
也可以在我的电脑-环境变量手动设置有效,这是全局的。 – Flask web开发第6章 Flask-Mail 设定环境变量 MAIL_USERNAME

希望问题能够解决~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值