1. 程式人生 > 其它 >Django使用QQ郵箱傳送郵件

Django使用QQ郵箱傳送郵件

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郵箱

https://mail.qq.com/

  • 點選設定

點選賬戶、點選開啟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'

說明:

  1. EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

聲明後端我們的Django專案將使用與SMTP伺服器連線。

  1. 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
  1. EMAIL_PORT
    = 587

EMAIL_PORT設定必須設定為587 ,因為它是大多數 SMTP 伺服器的預設埠。對於個人電子郵件提供商而言,情況仍然如此。

此埠與 TLS 加密一起使用,以確保電子郵件傳送的安全性。

  1. EMAIL_USE_TLS = True

傳輸層安全(TLS) 是一種跨 Web 使用的安全協議,用於加密 Web 應用程式 (Django) 和伺服器 (SMTP 伺服器) 之間的通訊。

  1. EMAIL_HOST_USER = '[email protected]'

個人電子郵件地址

  1. 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的方式是可以不用啟動服務,就可以使用他們的模組。

4、傳送成功截圖

學習連結 https://www.w3cschool.cn/article/17223331.html