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
  • Найдите Безопасность -> Разрешения аккаунта -> Доступ для менее безопасных приложений
  • .
  • Включите опцию "Разрешить менее безопасным приложениям входить в систему".

https://support.google.com/accounts/answer/6010255

Вернуться на верх