Django вызывает ошибку, когда я пытаюсь отправить электронную почту. Сообщение об ошибке: [Errno 61] Connection refused
Я пытаюсь отправить электронное письмо из Django. Мои настройки Django следующие:
# SMTP Settings
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "my_email@gmail.com" # my email address goes here.
EMAIL_HOST_PASSWORD = "my_generated_password" # generated password
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = "fmk@gmail.com"
Однако, когда я пытаюсь отправить электронную почту из него либо с помощью celery, либо напрямую из views, он говорит "[Errno 61] Connection refused".
N.B:Я использую mac matchine для разработки. Есть ли какие-либо причины безопасности для отправки электронной почты с помощью Mac.
Пример кода:
def send_mail_to_all(request):
send_mail('Celery Test Mail Subject',
"Test Mail Body",
from_email='sender@gmail.com',
recipient_list=['repientsemail@gmail.com'],
fail_silently=False
)
# send_mail_func.delay()
return HttpResponse('Sent')
Код расписания задач Целери:
@shared_task(bind=True)
def send_mail_func(self):
users = get_user_model().objects.all()
for user in users:
mail_subject = "Celery Testing"
message = f"This is the celery testing message at {datetime.now()}"
to_email = user.email
send_mail(mail_subject,
message,
from_email=settings.EMAIL_HOST_USER,
recipient_list=[to_email,],
fail_silently=False
)
return 'Done'
Это может быть связано с вашими настройками безопасности в Google.
Попробуйте изменить настройки аккаунта Google следующим образом:
- Зайдите в настройки аккаунта Google
- Найдите Безопасность -> Разрешения аккаунта -> Доступ для менее безопасных приложений .
- Включите опцию "Разрешить менее безопасным приложениям входить в систему".