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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Django

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

Python

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

Q&A

2回答

1648閲覧

djangoでメール送信がしたいと考えております。

nakaya

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Django

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

Python

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

0グッド

0クリップ

投稿2022/01/26 06:24

編集2022/01/27 02:46

djangoでメール送信をしようとした際に出たエラーでの質問です。
WindowsのVscodeを利用してます。

python manage.py runserver後、管理者でログインし、アカウントを作る際に氏名、メールアドレス、学年などを記入後に確定ボタンを押下した後5~10秒以内に

ConnectionRefusedError: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。

このように表示されます。データベースにはアカウントとパスワードは保存されていますが、実在するGmailには送信できませんでした。

問題としてWindowsの設定の問題かsetting.pyが間違っていると考えております。
どなたか解決策教えて頂けると大変参考になります。

コマンドプロンプト上ではパスワードの自動生成をできており、ログインもできます。前前前~までは表示されております。
その為、send_mailが動いてないと考えています。()

views.py

1 2from email import message 3from django.shortcuts import render 4from django.views import generic 5from django.contrib import messages 6from django.urls import reverse_lazy,reverse 7from django.http import HttpResponseRedirect 8from accounts.models import * 9from task.models import * 10from .forms import * 11from django.http import HttpResponse 12from django.core.mail import send_mail 13 14import random,string 15 16# ユーザー登録view 17class UserCreateView(generic.CreateView): 18 model = CustomUser 19 template_name = "user_create.html" 20 form_class = UserCreateForm 21 success_url = reverse_lazy('task:user_list') 22 23 24 25 26 def send_Email(self,request): 27 """題名""" 28 subject = "題名" 29 """本文""" 30 message = "本文です\nこんにちは。メールを送信しました" 31 """送信元メールアドレス""" 32 from_email = "totoyamiti0112@gmail.com" 33 """宛先メールアドレス""" 34 recipient_list = [ 35 'totoyamiti0112@gmail.com' 36 ] 37 print("前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前") 38 send_mail(subject, message, from_email, recipient_list) 39 print("後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後") 40 return HttpResponse('<h1>email send complete</h1>') 41 42 def form_valid(self,form): 43 obj = form.save(commit=False) 44 # 作成時に紐づける 45 obj.user_school = self.request.user.user_school 46 47 # ランダム文字列生成 48 randlst = [random.choice(string.ascii_letters + string.digits) for i in range(10)] 49 random_string = ''.join(randlst) 50 print("************************") 51 print(random_string) 52 print("************************") 53 obj.set_password(random_string) 54 55 obj.save() 56 57 messages.success(self.request,'ユーザーを作成しました。') 58 self.send_Email(self.request) 59 return super().form_valid(form) 60 61 def form_invalid(self,form): 62 messages.error(self.request,'失敗しました。') 63 return super().form_invalid(form) 64

setting.py

1コード 2 3 4INSTALLED_APPS = [ 5 'django.contrib.admin', 6 'django.contrib.auth', 7 'django.contrib.contenttypes', 8 'django.contrib.sessions', 9 'django.contrib.messages', 10 'django.contrib.staticfiles', 11 12 # taskアプリケーション 13 'task.apps.TaskConfig', 14 15 # accountsアプリケーション 16 'accounts.apps.AccountsConfig', 17 18 # allauth 19 'django.contrib.sites', 20 'allauth', 21 'allauth.account', 22] 23 24DATABASES = { 25 'default': { 26 'ENGINE': 'django.db.backends.postgresql_psycopg2', 27 'NAME': 'amsg', 28 'USER': 'postgres', 29 'PASSWORD': 'postgres', 30 'HOST': 'localhost', 31 'PORT': '5432', 32 } 33} 34 35AUTH_USER_MODEL = 'accounts.CustomUser' 36 37 38# django-allauth で利用するdjango.contrib.sitesを使うためにサイト識別用IDを設定 39SITE_ID = 1 40 41AUTHENTICATION_BACKENDS = ( 42 'allauth.account.auth_backends.AuthenticationBackend', 43 # 一般ユーザー用(メールアドレス認証) 44 'django.contrib.auth.backends.ModelBackend', 45 # 管理サイト用(ユーザー名認証) 46) 47 48# メールアドレス認証に変更する設定 49ACCOUNT_AUTHENTICATION_METHOD = 'email' 50ACCOUNT_USERNAME_REQUIRED = False 51 52# サインアップにメールアドレス確認を挟むように設定 53ACCOUNT_EMAIL_VERIFICATION = 'mandatory' 54ACCOUNT_EMAIL_REQUIRED = True 55 56# ログイン/ログアウト後の遷移先を設定 57#LOGIN_REDIRECT_URL = 'diary:diary_list' 58LOGIN_REDIRECT_URL = 'task:toppage' 59ACCOUNT_LOGOUT_REDIRECT_URL = 'account_login' 60 61# ログアウトリンクのクリック一発でログアウトする設定 62ACCOUNT_LOGOUT_ON_GET = True 63 64# django-allauthが送信するメールの件名に自動付与される接頭辞をブランクにする設定 65ACCOUNT_EMAIL_SUBJECT_PREFIX = '' 66 67# デフォルトのメール送信先を設定 68DEFAULT_FROM_EMAIL = 'totoyamiti0112@gmail.com' 69 70 71STATICFILES_DIRS = ( 72 os.path.join(BASE_DIR,'static'), 73) 74 75EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 76# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 77 78EMAIL_HOST = 'localhost' 79EMAIL_PORT = 587 80EMAIL_HOST_USER = 'totoyamiti0112@gmail.com' 81EMAIL_HOST_PASSWORD = 'bpwjwocxyyjgvjta' 82EMAIL_USE_TLS = True`

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

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

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

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

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

AbeTakashi

2022/01/26 07:28

ソースコードが画像で投稿しても文字が小さくて読みにくいので、きちんと文字を使って投稿した方が良いです(これだとたぶん誰もソースコードを読む気にならないかと)。 参考) https://teratail.com/help/question-tips の「3. 正しく伝わる質問の仕方」を上から下までしっかり読んでください。 メール送信に関しては環境にも左右されるので、Pythonの動作環境もしっかり記載されるといいと思います。それも質問の仕方のページに書いてあります。
nakaya

2022/01/27 02:33

承知致しました。 ご指摘ありがとうございます。 修正後、再度質問をしてみます! 他の方々にもお手数をおかけして申し訳ございません。
guest

回答2

0

AbeTakashiさんのおっしゃる通り、画像だと写真が見れなかったため、参考サイトを紹介させていただきます。
ソースコードをそのまま記載すると、著作権法違反になるため、リンクのみとさせていただきます。
Djangoで、メールを送信 /Narito Blog様

投稿2022/01/26 09:25

ROGPURS

総合スコア78

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

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

0

EMAIL_HOST = 'localhost'

が原因じゃないですかね。Gmailを使うならGmailのSMTPサーバを指定するべきでしょう(smtp.gmail.comかな?)。Gmail側の設定(「安全性の低いアプリの許可」)も必要になった気がします。

投稿2022/01/27 03:10

編集2022/01/27 03:11
AbeTakashi

総合スコア4519

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

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

nakaya

2022/01/27 07:09

コメントありがとうございます。 一応、smtp.gmail.comで最初は実行してみましたが。エラー名が変わり、タイムアウトエラーとなっていました。 Gmail側の設定はいじっていなかったので少し頑張ってみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問