Wagtailで超簡単なイベント予約サイトを作る④

  • URLをコピーしました!

こんにちは。

Wagtailで超簡単なイベント予約サイトを以下流れでご紹介していきたいと思います。今回は「④予約完了メール送信」について記載します。

  1. イベント一覧とイベント詳細ページを作成する
  2. 予約ページを作成する
  3. 予約登録処理
  4. 予約完了メール送信
  5. 予約確認とキャンセル処理を作成する

    1~3については以下を参照してください。

    あわせて読みたい
    Wagtailで超簡単なイベント予約サイトを作る① こんにちは。 Wagtailで超簡単なイベント予約サイトを以下流れでご紹介していきたいと思います。 イベント一覧とイベント詳細ページを作成する 予約ページを作成する 予...

    あわせて読みたい
    Wagtailで超簡単なイベント予約サイトを作る② こんにちは。 Wagtailで超簡単なイベント予約サイトを以下流れでご紹介していきたいと思います。今回は「②予約ページを作成する」について記載します。 イベント一覧と...

    あわせて読みたい
    Wagtailで超簡単なイベント予約サイトを作る③ こんにちは。 Wagtailで超簡単なイベント予約サイトを以下流れでご紹介していきたいと思います。今回は「③予約登録処理」について記載します。 イベント一覧とイベント...

    目次

    今回作るもの

    前回予約登録処理をしましたので、登録処理が終わったらメール送信をします。メールはテンプレートを用意して必要事項を入れた状態で送信する形にします。

    以下のようなメールを送信します。

    メール送信処理

    前回作成した、②予約登録履歴情報を使ってメール送信をします。event/models.pyのBookingHistoryに以下を追加します。

    from wagtail.admin.mail import send_mail
    
    class BookingHistory(ClusterableModel):
        ...
        def send_book_email(self):
    
            context = {
                'bookingdata': self,
            }
    
            email_address = self.user.email
            email_subject = render_to_string('event/email/book_confirmation_subject.txt', context).strip()
            email_content = render_to_string('event/email/book_confirmation_message.txt', context).strip()
    
            send_mail(email_subject, email_content, [email_address])
    

    SMTPサーバーを使用してメール送信する場合は必要に応じて以下設定をします。
    設定値についてはhttps://docs.djangoproject.com/en/3.1/ref/settings/を確認ください。
    settings/base.py(もしくはdev.py,production.py)

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'XXXXX'
    EMAIL_USE_TLS = True
    EMAIL_PORT = 587
    EMAIL_HOST_USER = 'XXXXX'
    EMAIL_HOST_PASSWORD = 'XXXXX'
    DEFAULT_FROM_EMAIL = 'XXXXX'
    SERVER_EMAIL = 'XXXXX'
    

    events/views.pyのbookingにメール送信処理を追加します。

    def booking(request, event_id):
        ...
        # 予約内容を履歴に登録
        bookingdata = BookingHistory.objects.create(
            ...
        )
    
        # 予約メールを送信
        bookingdata.send_book_email()
        ...
    

    メールTemplate

    件名テンプレートevent/email/book_confirmation_subject.txtを作成します。

    ワークショップお申込みを承りました
    

    本文テンプレートevent/email/book_confirmation_message.txtを作成します。

    {{ bookingdata.first_name }} {{ bookingdata.last_name }} さま
    
    こんにちは、〇〇です。
    この度は、ワークショップへお申し込みいただき、
    ありがとうございました。
    
    以下の内容で参加をお受けいたしましたので、
    ご確認くださいませ。
    
    ━━━ お申込み内容 ━━━━━━━━━━━━━━━━
    {{ bookingdata.event.title }}
    
    【日時】{{ bookingdata.event.creation_date | date:"y/n/j H:i"}}
    【場所】〒{{ bookingdata.event.zip_code }}
    {{ bookingdata.event.address1 }} {{ bookingdata.event.address2 }} {{ bookingdata.event.address3 }}
    
    【参加料】{{ bookingdata.event.price }}円
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    
    ※このメールはシステムからの自動返信です。
    
    • URLをコピーしました!

    コメント

    コメントする

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

    目次