2013年1月11日金曜日

Djangoで、メール送信の雛形文章をテンプレート化

Django(1.4.2)で、メール送信の雛形文章をテンプレート化してみました。テンプレート化することによって、ソースがすっきりしました。使い方は、Djangoテンプレートをそのまま利用できるので、管理も楽。同じ要領で、HTMLメールなども送信可能です。

/contact/views.py
# メールテンプレート
from django.core.mail import EmailMultiAlternatives
from django.template.loader import get_template
from django.template import Context

# テンプレートを読み込み
plaintext = get_template('email.txt')

# フォームの入力受け取り
sender = 'to@sampledomain.com'
fullname = '受信者'
message = 'お問い合せです。'

# 送信先
recipients = ['admin@sampledomain.com']
bccrecipients = ['bcc@sampledomain.com']
subject = 'お問い合せ' 

# テンプレートに変数割り当て
d = Context({ 'fullname': fullname, 'message': message })
textcontent = plaintext.render(d)

# メール送信
msg = EmailMultiAlternatives(subject, textcontent, sender, recipients, bccrecipients)
msg.send()
/templates/email.txt
{{ fullname }}様

下記の通り、お問い合せを承りました。

{{ message }}
参考サイト
Creating email templates with Django(Stack Overflow)
拡張コンテンツ形式のメールを送信する(Django documentation)

0 件のコメント:

コメントを投稿