【发布时间】: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