Django使用QQ郵箱傳送郵件
阿新 • • 發佈:2022-05-16
Django使用QQ郵箱傳送郵件
1、建立Django專案
- 任意資料夾下執行命令
E:\Python39\Scripts\django-admin.exe startproject django_email_learn
- django-admin.exe路徑(Python安裝目錄下的Scripts資料夾)
專案結構
2、新增QQ郵箱配置資訊
以QQ郵箱為例,先獲取授權碼
可以參考 https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
- 登入QQ郵箱
- 點選設定
點選賬戶、點選開啟POP3/SMEP服務
點選開啟後驗證密保,然後根據操作傳送簡訊
然後你就得到了你的授權碼,假設為(My authorization code)
配置賬戶資訊到設定中
在django_email_learn/settings.py中新增程式碼
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = '[email protected]' EMAIL_HOST_PASSWORD = 'My authorization code'
說明:
- EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
聲明後端我們的Django專案將使用與SMTP伺服器連線。
- EMAIL_HOST = 'smtp.qq.com'
申明電子郵件主機
下表列出了常見提供商對應的 SMTP 伺服器主機:
電子郵件提供商 | SMTP 伺服器主機 |
---|---|
Gmail | smtp.gmail.com |
Outlook/Hotmail | smtp-mail.outlook.com |
雅虎 | smtp.mail.yahoo.com |
QQ郵箱 | smtp.qq.com |
-
EMAIL_PORT
該EMAIL_PORT
設定必須設定為587
,因為它是大多數 SMTP 伺服器的預設埠。對於個人電子郵件提供商而言,情況仍然如此。
此埠與 TLS 加密一起使用,以確保電子郵件傳送的安全性。
- EMAIL_USE_TLS = True
傳輸層安全(TLS) 是一種跨 Web 使用的安全協議,用於加密 Web 應用程式 (Django) 和伺服器 (SMTP 伺服器) 之間的通訊。
- EMAIL_HOST_USER = '[email protected]'
個人電子郵件地址
- EMAIL_HOST_PASSWORD = 'My authorization code'
剛才獲取的授權碼
3、傳送郵件
開啟CMD執行
python manage.py shell
傳送郵件程式碼
from django.conf import settings
from django.core.mail import send_mail
send_mail(
subject='A cool subject',
message='A stunning message',
from_email=settings.EMAIL_HOST_USER,
recipient_list=['[email protected]', '[email protected]'])
subject 是主題
message 是訊息正文
recipient_list 是接收人
輸入quit()退出shell視窗
當然你也可以在程式中傳送,而不是通過shell視窗,你可以在任意地方呼叫send_email(),然後傳送你的郵件,用shell的方式是可以不用啟動服務,就可以使用他們的模組。