Flask Web開發 郵件功能之windows遇到的坑

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

就可以正確的運行了~
好了,雖然很簡單,但是剛開始一直沒有出來效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章