小编bar*_*aso的帖子

Django send_mail()可以从shell运行,但不能在nginx生产中运行

我想从django视图发送电子邮件.我使用django开发服务器在我的本地机器上使用以下设置:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'user@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
Run Code Online (Sandbox Code Playgroud)

我的观点有

from django.core.mail import send_mail

def my_view(request):
  send_mail('subject','body','user@gmail.com',['recipient@gmail.com'],fail_silently=False)
  return render(request, 'index.html')
Run Code Online (Sandbox Code Playgroud)

当我从生产服务器上的manage.py shell运行send_mail()时,电子邮件已成功发送.但是,在生产中调用视图(nginx + uwsgi + django)时,即使视图无错误地运行并返回预期的响应,也不会发送电子邮件.我在error.log中看不到任何错误.

请帮我为nginx设置正确的权限和配置,以便这样做.

注意:这个问题类似于Django中的Send_mail,在shell中工作,在本地工作,不在视图中,从未解决过.

编辑:当我这样做

sudo -u www-data python manage.py shell
Run Code Online (Sandbox Code Playgroud)

作为nginx用户运行,我仍然可以成功发送邮件,这让我更加困惑.

email django nginx uwsgi

12
推荐指数
1
解决办法
1447
查看次数

标签 统计

django ×1

email ×1

nginx ×1

uwsgi ×1