Flask Web開發 郵件功能之windows遇到的坑
windows開發真的很坑,一些環境變量設置了…大家都懂得
先來說一下關於環境問題
系統:windows
安裝的是Anaconda,一鍵式安裝
本文介紹如何使用Flask-Mail發送郵件。
Flask-Mail連接到簡單郵件傳輸協議(SMTP)服務器,並把郵件交給這個服務器發送。
0.安裝Flask-Mail
在Anaconda中安裝,一條命令搞定
pip install flask-mail
1.Flask-Mail發送郵件
本實例是用163郵箱賬戶爲例發送電子郵件的。
注意,163常用的收件,發件服務器的地址和端口是什麼。
第一步:使用163郵箱,需要先登錄客戶端進行設置,點擊設置>POP3/SMTP/IMAP
第二步:點擊左側客戶端授權密碼
進行相關操作開啓客戶端授權碼
注意,這個客戶端授權碼是下文要用到的密碼
以下是一個簡單的代碼:flask_email.py
# -*- coding:utf-8 -*-
# Author: Roc-J
from flask import Flask
from flask_mail import Mail, Message
import os
app = Flask(__name__)
#下面是SMTP服務器配置
app.config['MAIL_SERVER'] = 'smtp.163.com' #電子郵件服務器的主機名或IP地址
app.config['MAIL_PORT'] = '465' #電子郵件服務器的端口
app.config['MAIL_USE_TLS'] = False #啓用傳輸層安全
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME') #郵件賬戶用戶名
app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD') #郵件賬戶的密碼
mail = Mail(app)
@app.route('/')
def index():
msg = Message('主題', sender=app.config['MAIL_USERNAME'], recipients=['[email protected]'])
msg.body = '文本 body'
msg.html = '<b>HTML</b> body'
mail.send(msg)
return '<h1>郵件發送成功</h1>'
if __name__ == '__main__':
app.run()
上面的註釋已經寫得很明確了,其中郵件用戶名和密碼要存儲到環境變量中,在windows下設置是很有意思的。
打開cmd到當前程序目錄下,在命令行中輸入
set MAIL_USERNAME=youremail
set MAIL_PASSWORD=
注意,這裏的密碼是剛剛客戶端設置的客戶端授權碼的密碼,不是郵箱的密碼。
注意,cmd設置環境變量不需要加引號,直接輸入內容即可,並且要注意!注意!注意!這個設置是臨時變量,因此不要關閉這個terminal,直接在下面運行該程序
在cmd中接着剛纔那兩條語句
python flask_email.py
就可以正確的運行了~
好了,雖然很簡單,但是剛開始一直沒有出來效果。