djangoでメール送信をしようとした際に出たエラーでの質問です。
WindowsのVscodeを利用してます。
python manage.py runserver後、管理者でログインし、アカウントを作る際に氏名、メールアドレス、学年などを記入後に確定ボタンを押下した後5~10秒以内に
ConnectionRefusedError: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。
このように表示されます。データベースにはアカウントとパスワードは保存されていますが、実在するGmailには送信できませんでした。
問題としてWindowsの設定の問題かsetting.pyが間違っていると考えております。
どなたか解決策教えて頂けると大変参考になります。
コマンドプロンプト上ではパスワードの自動生成をできており、ログインもできます。前前前~までは表示されております。
その為、send_mailが動いてないと考えています。()
views.py
from email import message from django.shortcuts import render from django.views import generic from django.contrib import messages from django.urls import reverse_lazy,reverse from django.http import HttpResponseRedirect from accounts.models import * from task.models import * from .forms import * from django.http import HttpResponse from django.core.mail import send_mail import random,string # ユーザー登録view class UserCreateView(generic.CreateView): model = CustomUser template_name = "user_create.html" form_class = UserCreateForm success_url = reverse_lazy('task:user_list') def send_Email(self,request): """題名""" subject = "題名" """本文""" message = "本文です\nこんにちは。メールを送信しました" """送信元メールアドレス""" from_email = "totoyamiti0112@gmail.com" """宛先メールアドレス""" recipient_list = [ 'totoyamiti0112@gmail.com' ] print("前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前前") send_mail(subject, message, from_email, recipient_list) print("後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後後") return HttpResponse('<h1>email send complete</h1>') def form_valid(self,form): obj = form.save(commit=False) # 作成時に紐づける obj.user_school = self.request.user.user_school # ランダム文字列生成 randlst = [random.choice(string.ascii_letters + string.digits) for i in range(10)] random_string = ''.join(randlst) print("************************") print(random_string) print("************************") obj.set_password(random_string) obj.save() messages.success(self.request,'ユーザーを作成しました。') self.send_Email(self.request) return super().form_valid(form) def form_invalid(self,form): messages.error(self.request,'失敗しました。') return super().form_invalid(form)
setting.py
コード INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # taskアプリケーション 'task.apps.TaskConfig', # accountsアプリケーション 'accounts.apps.AccountsConfig', # allauth 'django.contrib.sites', 'allauth', 'allauth.account', ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'amsg', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'localhost', 'PORT': '5432', } } AUTH_USER_MODEL = 'accounts.CustomUser' # django-allauth で利用するdjango.contrib.sitesを使うためにサイト識別用IDを設定 SITE_ID = 1 AUTHENTICATION_BACKENDS = ( 'allauth.account.auth_backends.AuthenticationBackend', # 一般ユーザー用(メールアドレス認証) 'django.contrib.auth.backends.ModelBackend', # 管理サイト用(ユーザー名認証) ) # メールアドレス認証に変更する設定 ACCOUNT_AUTHENTICATION_METHOD = 'email' ACCOUNT_USERNAME_REQUIRED = False # サインアップにメールアドレス確認を挟むように設定 ACCOUNT_EMAIL_VERIFICATION = 'mandatory' ACCOUNT_EMAIL_REQUIRED = True # ログイン/ログアウト後の遷移先を設定 #LOGIN_REDIRECT_URL = 'diary:diary_list' LOGIN_REDIRECT_URL = 'task:toppage' ACCOUNT_LOGOUT_REDIRECT_URL = 'account_login' # ログアウトリンクのクリック一発でログアウトする設定 ACCOUNT_LOGOUT_ON_GET = True # django-allauthが送信するメールの件名に自動付与される接頭辞をブランクにする設定 ACCOUNT_EMAIL_SUBJECT_PREFIX = '' # デフォルトのメール送信先を設定 DEFAULT_FROM_EMAIL = 'totoyamiti0112@gmail.com' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'localhost' EMAIL_PORT = 587 EMAIL_HOST_USER = 'totoyamiti0112@gmail.com' EMAIL_HOST_PASSWORD = 'bpwjwocxyyjgvjta' EMAIL_USE_TLS = True`
まだ回答がついていません
会員登録して回答してみよう