Django 使用 AWS SES 發信
分類
建立時間: 2022年6月10日 12:51
更新時間: 2025年5月17日 23:26
說明
AWS Simple Email Service (SES) 可以讓你發送 Email
本篇使用 Django 實作聯絡我們表單,當表單送出後
接著使用 SES 發信通知自己
Django 聯絡我們表單
關於 Django 實作聯絡我們,請參考 Django 實作 聯絡我們
AWS IMA User
建立一個使用者,讓 Django 可以透過這個使用者使用 SES
使用者需要開啟 AmazonSESFullAccess 權限
建立方式請參考 AWS IAM 建立 API 專用的使用者
記得要儲存 Access key id 和 secret access key
這個等等要在 Django 配置使用
驗證 SES 身份
本篇示範使用 domain 寄信到 gmail 信箱
詳細步驟可以參考 建立 AWS SES 發信功能
配置 Django 使用 SES
安裝插件
這個插件是用來讓 Django 使用 SES
終端
$ pip install django-ses
把 IAM 使用者的 access key id 和 secret access key 貼在下面
settings.py
# 這是本機測試用的
# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# 使用 SES
EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_ACCESS_KEY_ID = 'YOUR-ACCESS-KEY-ID'
AWS_SECRET_ACCESS_KEY = 'YOUR-SECRET-ACCESS-KEY'
# 設定 SES 的區域 ex: us-east-2
AWS_SES_REGION_NAME = 'REGION-NAME'
# 設定 email 端點 ex: email.us-east-2.amazonaws.com
AWS_SES_REGION_ENDPOINT ='REGION-ENDPOINT'
更新寄信的信箱位址
更新 views 上寄信和收信的地址,原本輸入的是假地址
domain 信箱帳號地址你可自己指定
例如: admin@your_domain.com
將 from_email
和 recipient_list
輸入正確的 email 位址
views.py
# 略
def contact(request: HttpRequest) -> HttpResponse:
# 略
try:
send_mail(
subject=subject,
message='',
html_message=rendered_email,
from_email='admin@your_domain.com',
recipient_list=['mygmail@gmail.com']
)
except BadHeaderError:
return HttpResponse('Invalid header found.')
# 略
測試
最後在自己測試寄一封信,確認信箱有收到信
請留意信有可能在推銷郵件或者垃圾郵件中
如果不在主要信件區的話,可以再自行把信改成主要信件
參考
觀看次數: 2038
awsdjangoemailservicesessimple
相關文章:
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!