Django專案之傳送郵件
傳送郵件配置資訊
Django中內建了郵件傳送功能,被定義在django.core.mail模組中。傳送郵件需要使用SMTP伺服器,常用的免費伺服器有:163、126、QQ,下面以163郵件為例。
1)登入後設置-POP3/SMTP/IMAP。
2)在新頁面中點選“客戶端授權密碼”,勾選“開啟”,彈出新視窗填寫手機驗證碼。
3)填寫授權碼。
4)提示開啟成功。
5 ) 在Django配置檔案中,設定郵箱的配置資訊
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# 其他郵箱伺服器地址和埠,自行百度
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
#傳送郵件的郵箱
EMAIL_HOST_USER = '[email protected]'
#在郵箱中設定的客戶端授權密碼
EMAIL_HOST_PASSWORD = 'python123'
#收件人看到的發件人
EMAIL_FROM = 'python<[email protected]>'
6 ) 使用Django提供的模組傳送郵件
在django.core.mail
模組提供了send_mail
來發送郵件。
send_mail
(subject, message, from_email, recipient_list
- subject 郵件標題
- message 普通郵件正文, 普通字串
- from_email 發件人
- recipient_list 收件人列表
- html_message 多媒體郵件正文,可以是html字串
非同步傳送郵件
傳送驗證郵件屬於耗時操作,同樣可以使用celery中非同步執行
1. 在專案根目錄下建立celery_tasks
包
2. 在celery_tasks
目錄下建立config.py
檔案,用於儲存celery的配置資訊
broker_url = "redis://127.0.0.1/14"
3. 在celery_tasks
目錄下建立main.py
檔案,用於作為celery的啟動檔案
from celery import Celery
import os
# 為celery使用django配置檔案進行設定
if not os.getenv('DJANGO_SETTINGS_MODULE'):
os.environ['DJANGO_SETTINGS_MODULE'] = '專案名稱.settings.dev'
# 建立celery應用
app = Celery('隨便起名')
# 匯入celery配置
app.config_from_object('celery_tasks.config')
# 自動註冊celery任務
app.autodiscover_tasks(['celery_tasks.email'])
4. 在celery_tasks
目錄下建立email
包
5. 在email
目錄下建立email/tasks.py
檔案(檔名必須是tasks),用於儲存傳送郵件的非同步任務
from celery_tasks.main import app
import logging
from django.core.mail import send_mail
from django.conf import settings
# 獲取在配置檔案中定義的logger,用來記錄日誌
logger = logging.getLogger("django")
@app.task(name="send_verify_email")
def send_verify_email(token, email):
"""
傳送郵件
:param token: 加密token值
:param email: 簡訊驗證碼
:return: None
"""
verify_url = 'http://域名和埠/success_verify_email.html?token=' + token
to_email = email
subject = "XX公司郵箱驗證"
html_message = '<p>尊敬的使用者您好!</p>' \
'<p>感謝您使用XX產品。</p>' \
'<p>您的郵箱為:%s 。請點選此連結啟用您的郵箱:</p>' \
'<p><a href="%s">%s<a></p>' % (to_email, verify_url, verify_url)
try:
send_mail(subject=subject, # 郵件標題
message="", # 普通郵件正文
from_email=settings.EMAIL_FROM, # 發件人
recipient_list=[to_email], # 收件人
html_message=html_message # 多媒體郵件正文
)
except Exception as e:
logger.error("傳送郵件[異常][email: %s, message: %s ]" % (email, e))
6. 檢視中呼叫非同步傳送郵件
# 虛擬碼 非同步任務函式名.delay(引數1, 引數2)
send_verify_email.delay(token, email)
7.進入虛擬環境,切換到celery_tasks資料夾路徑下,開啟非同步
celery -A celery_tasks.main worker -l info
引數解釋:
- -A celery_tasks.main 指定啟動檔案
- worker 建立任務執行者
- -l info 檢視詳細執行過程
相關推薦
Django專案之傳送郵件
傳送郵件配置資訊 Django中內建了郵件傳送功能,被定義在django.core.mail模組中。傳送郵件需要使用SMTP伺服器,常用的免費伺服器有:163、126、QQ,下面以163郵件為例。 1)登入後設置-POP3/SMTP/IMAP。 2)在新頁面中點
Maven座標、依賴的介紹之傳送郵件示例專案
什麼是座標? 最早聽到座標是在數學幾何中,比如在一個平面座標系中(X、Y),表示該平面上與X軸的距離為Y,與Y軸的距離為X的一點, 任何一個座標都能夠唯一標識該平面中的一點。在實際生活中,比如說網上購物,你在下訂單的時候寫上家庭住址,然後快遞員 就能夠根據地址送貨上門,其實
程式碼珍藏之傳送郵件
/** * 傳送重置密碼郵件 * @return */ @RequestMapping(params="sendResetPwdMail") @ResponseBody public AjaxJson sendResetPwdMail(String email,HttpServletRequest reque
Django專案之部署
1. 靜態檔案 當Django執行在生產模式時,將不再提供靜態檔案的支援,需要將靜態檔案交給靜態檔案伺服器。 我們先收集所有靜態檔案。專案中的靜態檔案除了我們使用的front_end_pc中之外,django本身還有自己的靜態檔案,如果rest_framewor
Django專案之FastDFS檔案儲存系統
0. 使用Docker安裝FastDFS 1. FastDFS的Python客戶端 安裝 安裝fdfs_client-py-master.zip到虛擬環境中 pip install fdfs_client-py-master.zip pip install
Django專案之CKEditor富文字編輯器
1. 安裝 pip install django-ckeditor 2. 新增應用 在INSTALLED_APPS中新增 INSTALLED_APPS = [ ... 'ckedito
monkeyrunner入門之傳送郵件(四)
這裡我已Gmail為例,道理都是一樣的 device.touch裡面的數字是手機螢幕的座標,手機螢幕的座標這樣得知: 開啟設定–系統—開發者選項–指標座標 device.type模擬鍵盤輸入內容 提供可複製程式碼: #coding:utf-8 #儲存檔案格式記得選擇utf-8
Django+Celery非同步傳送郵件
安裝 pip install django==1.11.7 pip install celery 專案目錄 AXF ├── alipay_config │ ├── alipay_rsa_public_key.pem │ └──
Nodejs之傳送郵件nodemailer
nodejs郵件模組nodemailer的使用說明 1.介紹 nodemailer是node的一個傳送郵件的元件,其功能相當強大,普通郵件,傳送附件,郵件加密等等都能實現,而且操作也十分方便。 nodemailer在GitHub上的專案地
django 中 SMTP 傳送郵件配置
QQ郵箱傳送郵件 登入 qq 郵箱, 點選設定,進入賬戶  開啟服務:  django 專案中的 setting 檔案中新增配置程式碼: # qq IMAP/SMTP 配置 EMAIL_BACKEND = 'django.core.mail.b
Jenkins持續整合之傳送郵件
最近專案中需要實現Jenkins上構建完成後自動傳送郵件,在網上搜了一些資料,多多少少有些問題,現在把自己的經驗分享一下。 大概步驟:系統管理—>系統設定—>郵件通知 點選高階,下面
用java開發Email工具之傳送郵件
作者:馮睿 本文介紹瞭如何利用Java的網路API來實現一個電子郵件工具程式。通常Email工具都是使用SMTP(簡單郵件傳輸協議, Simple Mail Transfer Protocol)來傳送郵件,使用POP3協議來接受電子郵件。在本文中只對這兩個協議作簡單介紹。
Web應用安全之傳送郵件
To為收件人,Subject為標題,From為發件人地址。郵件頭注入的主要原因與HTTP訊息頭注入漏洞類似。訊息頭中各欄位以換行符分開,因此,如果能夠在外界傳入的引數插入換行符,那麼就可以新增新的訊息頭
django 中的各種郵件傳送
修改setting.py 加入郵箱配置 1 EMAIL_USE_SSL = True #是否使用加密 2 3 EMAIL_HOST = 'smtp.qq.com' #smtp伺服器, 如果是 163 改成 smtp.163.com 4 5 EMAIL_PORT
Django系列之第一個專案搭建
一、安裝 (1)使用pip3 install django在控制檯安裝django; (2)新增到環境變數 二、建立專案 方式1:通過命令建立 (1)建立project: 通過django-admin.py startproject mysite: mysite為自己的專案名稱
【SSH網上商城專案實戰25】使用java email給使用者傳送郵件
當用戶購買完商品後,我們應該向使用者傳送一封郵件,告訴他訂單已生成之類的資訊,郵箱地址是從使用者的基本資訊中獲取,好了,首先我們來看一下java中傳送郵件的方法。
測試開發之Django——No5.Django專案的部署(CentOS7+nginx)
配置環境:CentOS7 1.安裝python3環境 預設的CentOS7系統中,會安裝python2.7的版本,由於Django2.0並不支援python2.7的版本,所以我們需要自己在系統中安裝python3的版本。 ① 安裝wget工具,用於在網上下載檔案 這樣代表,我的系統
ubuntu Django專案後臺不掛斷執行之screen命令
1、安裝screen apt install screen 2、新建一個screen screen -S web 這樣就會新開一個視窗。cd到你需要的目錄然後輸入你想輸入的命令。輸入: python manage.py runserver 0.0.0.0:80
Linux學習筆記之Django專案以程序的形式在後臺啟動(CentOS)
body { background: #f4f4f4 } .title { width: 100%; background: #5cb85c; padding: 5px; font-size: 20px; margin: 5px } .sub_title { width: 99%; background: #
django 傳送郵件配置
拿qq郵箱當做發件箱舉例子,首先配置郵箱 在qq郵箱的賬戶設定裡面設定如下 得到第三方登陸授權碼 setting.py中設定如下: # 傳送郵件設定 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBac