Files
rogaining_srv/rog/utils.py
2024-07-25 00:57:48 +00:00

35 lines
1.3 KiB
Python

import os
from django.template.loader import render_to_string
from django.conf import settings
import logging
from django.core.mail import send_mail
logger = logging.getLogger(__name__)
def load_email_template(template_name, context):
template_path = os.path.join('email', template_name)
email_content = render_to_string(template_path, context)
# 件名と本文を分離
subject, _, body = email_content.partition('\n\n')
subject = subject.replace('件名: ', '').strip()
return subject, body
def send_activation_email(user, activation_link):
context = {
'name': user.firstname or user.email,
'activation_link': activation_link,
'app_download_link': settings.APP_DOWNLOAD_LINK,
'service_name': settings.SERVICE_NAME,
}
subject, body = load_email_template('activation_email.txt', context)
try:
send_mail(subject, body, settings.DEFAULT_FROM_EMAIL, [user.email], fail_silently=False)
logger.info(f"アクティベーションメールを送信しました。 受信者: {user.email}")
except Exception as e:
logger.error(f"アクティベーションメールの送信に失敗しました。 受信者: {user.email}, エラー: {str(e)}")
raise # エラーを再度発生させて、呼び出し元で処理できるようにします