【问题标题】:Django causes error when I'm trying to send email. Error message: [Errno 61] Connection refused当我尝试发送电子邮件时,Django 会导致错误。错误消息:[Errno 61] 连接被拒绝
【发布时间】:2022-01-03 07:12:31
【问题描述】:

我正在尝试从 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 或直接从视图发送电子邮件时,它显示 “[Errno 61] Connection denied”

注意:我正在使用 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')

Celery 任务计划代码:

@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'

【问题讨论】:

    标签: django django-celery django-email


    【解决方案1】:

    这可能是由于您在 Google 中的安全偏好。

    请尝试更改您的 Google 帐户设置,如下所示:

    • 转到您的 Google 帐户设置
    • 查找安全性 -> 帐户权限 -> 访问不太安全的应用程序
    • 启用让不太安全的应用登录选项。

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

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多