SendGrid APIを使用してメールを送信
フィードバック機能付き完全なPython/張庫Webサービス開発ガイド講義を聞いて整理した文章.
SendGridに加入する. API鍵生成後、Create a sender identity文が出力されます. 出力された文字をクリックしてSender Emailを作成(https://app.sendgrid.com/settings/sender_auth/senders/new) Sander電子メール認証コースが必要
長期プロジェクトへの適用
SendGrid API KeyとSender Emailの作成
settings > API Keys
接続でAPI鍵を生成する.( https://app.sendgrid.com/settings/api_keys ) 長期プロジェクトへの適用
設定にSendGrid設定を追加
# Email with Send Grid
# https://docs.sendgrid.com/for-developers/sending-email/django
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'# this is exactly the value 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS =True
WELCOME_EMAIL_SENDER = '' # Sender Email 추가!
ユーザー・モデル・メソッドに電子メールを送信するコードの作成
accounts/models.py# accounts/models.py
class User(AbstractUser):
website_url = models.URLField(blank=True)
bio = models.TextField(blank=True)
def send_welcome_email(self):
subject = render_to_string('accounts/welcome_email_subject.txt')
content = render_to_string('accounts/welcome_email_content.txt', {
"user": self,
})
sender_email = settings.WELCOME_EMAIL_SENDER
return send_mail(subject, content, sender_email, [self.email], fail_silently=False)
電子メールテンプレートの作成
User.send_welcome_email
で、render_to_string
にテンプレートを挿入します.(電子メールのタイトルと内容)
txt拡張子ですが、テンプレート構文も使えるのでいいです.
accounts/templates/accounts/welcome_email_content.txtInstagram 가입을 환영합니다.
{{ user.first_name }} {{ user.last_name }}님 가입을 환영합니다.
- Instagram 운영자 드림
accounts/templates/accounts/welcome_email_title.txtInstagram 가입을 환영합니다.
シェルで実行
$ python manage.py shell
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.first()
>>> user.send_welcome_email() # 1: 성공
Reference
この問題について(SendGrid APIを使用してメールを送信), 我々は、より多くの情報をここで見つけました
https://velog.io/@joje/SendGrid-API를-이용해-메일-보내기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
# Email with Send Grid
# https://docs.sendgrid.com/for-developers/sending-email/django
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'# this is exactly the value 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS =True
WELCOME_EMAIL_SENDER = '' # Sender Email 추가!
# accounts/models.py
class User(AbstractUser):
website_url = models.URLField(blank=True)
bio = models.TextField(blank=True)
def send_welcome_email(self):
subject = render_to_string('accounts/welcome_email_subject.txt')
content = render_to_string('accounts/welcome_email_content.txt', {
"user": self,
})
sender_email = settings.WELCOME_EMAIL_SENDER
return send_mail(subject, content, sender_email, [self.email], fail_silently=False)
Instagram 가입을 환영합니다.
{{ user.first_name }} {{ user.last_name }}님 가입을 환영합니다.
- Instagram 운영자 드림
Instagram 가입을 환영합니다.
$ python manage.py shell
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.first()
>>> user.send_welcome_email() # 1: 성공
Reference
この問題について(SendGrid APIを使用してメールを送信), 我々は、より多くの情報をここで見つけました https://velog.io/@joje/SendGrid-API를-이용해-메일-보내기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol