質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

735閲覧

Djangoでメール送信処理を行いたい

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/14 06:45

編集2021/02/14 07:05

前提・実現したいこと

Djangoでメール送信処理を行いたい。

発生している問題

**EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'**を使い、コンソール上にメールの送信結果を表示したいが、なぜかうまくできない。

該当のソースコード

Python

1#settings_dev.pyのコード 2from .settings_common import * 3 4DEBUG = True 5 6ALLOWED_HOSTS = [] 7 8LOGGING = { 9 'version': 1, 10 'disable_existing_loggers': False, 11 12 'loggers': { 13 'django': { 14 'handlers': ['console'], 15 'level': 'INFO', 16 }, 17 18 'dairy': { 19 'handlers': ['console'], 20 'level': 'DEBUG', 21 }, 22 }, 23 24 'handlers': { 25 'console': { 26 'level': 'DEBUG', 27 'class': 'logging.StreamHandler', 28 'formatter': 'dev' 29 }, 30 }, 31 32 'formatters': { 33 'dev': { 34 'format': '\t'.join([ 35 '%(asctime)s', 36 '[%(levelname)s]', 37 '%(pathname)s(Line:%(lineno)d)', 38 '%(message)s' 39 ]) 40 }, 41 } 42} 43 44EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 45 46#forms.pyのコード 47from django import forms 48from django.core.mail import EmailMessage 49 50class InquiryForm(forms.Form): 51 name = forms.CharField(label='お名前', max_length=30) 52 email = forms.EmailField(label='メールアドレス') 53 title = forms.CharField(label='タイトル', max_length=30) 54 message = forms.CharField(label='メッセージ', widget=forms.Textarea) 55 56 def __init__(self, *args, **kwargs): 57 super().__init__(*args, **kwargs) 58 59 self.fields['name'].widget.attrs['class'] = 'form-control col-9' 60 self.fields['name'].widget.attrs['placeholder'] = 'お名前をここに入力してください。' 61 62 self.fields['email'].widget.attrs['class'] = 'form-control col-11' 63 self.fields['email'].widget.attrs['placeholder'] = 'メールアドレスをここに入力してください。' 64 65 self.fields['title'].widget.attrs['class'] = 'form-control col-11' 66 self.fields['title'].widget.attrs['placeholder'] = 'タイトルをここに入力してください。' 67 68 self.fields['message'].widget.attrs['class'] = 'form-control col-12 ' 69 self.fields['message'].widget.attrs['placeholder'] = 'メッセージをここに入力してください。' 70 71 def send_email(self): 72 name = self.cleaned_data['name'] 73 email = self.cleaned_data['email'] 74 title = self.cleaned_data['title'] 75 message = self.cleaned_data['message'] 76 77 subject = 'お問い合わせ {}'.format(title) 78 message = '送信者名: {0}\nメールアドレス: {1}\nメッセージ:\n{2}'.format(name, email, message) 79 from_email = 'admin@example.com' 80 to_list = [ 81 'test@example.com' 82 ] 83 cc_list = [ 84 email 85 ] 86 87 message = EmailMessage(subject=subject, body=message, from_email=from_email, to=to_list, cc=cc_list) 88 message.send() 89 90#views.pyのコード 91import logging 92from django.urls import reverse_lazy 93 94from django.views import generic 95from .forms import InquiryForm 96 97logger = logging.getLogger(__name__) 98 99 100 101 102class IndexView(generic.TemplateView): 103 template_name = "index.html" 104 105class InquiryViews(generic.FormView): 106 template_name = "inquiry.html" 107 form_class = InquiryForm 108 success_url = reverse_lazy('diary:inquiry') 109 110def form_valid(self, form): 111 form.send_email() 112 logger.info('Inquiry sent by {}'.format(form.cleaned_data['name'])) 113 return super().form_valid(form) 114

試したこと

・「動かして学ぶ!Python Django 開発入門」という本を見てやっていたので、打ち間違いがないか確認した。
・打ち間違いはなかったので、インターネットで調べたが、解決方法が出てこなかった。

補足情報(FW/ツールのバージョンなど)

Windows10
Django3.1.4
Visual Studio Code  を使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatamyiwathy

2021/02/14 14:26

どういう風にうまくいかなかったのかをおしえてください。 あなたがどういうことをして、その結果コンピュータからどういうリアクションがあったのか、エラーメッセージが出力されているのか、など情報がないと回答がむずかしいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問