用Django发送电子邮件报告

时间:2020-05-16 18:03:40

标签: python django python-3.x

我正在使用Python 3.8.2处理Django项目,我每天需要发送电子邮件(它们包含带有一些数据的简单csv文件)。我想使用Celery,但它不支持我的python版本,目前还无法真正降级。还有其他可行的方法吗?

让我知道我是否不够具体,或者问题表达得不好。

谢谢!

1 个答案:

答案 0 :(得分:1)

要通过Django发送邮件,可以使用gmail或自己的SMTP:

在设置中:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'foo@gmail.com'
EMAIL_HOST_PASSWORD = '**************'
EMAIL_PORT = 587

*要让Google允许从该地址发送电子邮件,您将必须访问您的帐户>访问和安全性>选项允许访问安全性较低的应用程序:打开

然后,您只需要查看视图即可:

from django.core.mail import EmailMessage

email = EmailMessage('title', 'body', to=[email])
email.send()

en tu view:

from django.core.mail import EmailMessage
class contacto(View):
    def get(self,request):
        form=correo()
        return render(request,'email.html',{'forma':form})
    def post(self,request):
        form=correo(request.POST)
        if form.is_valid():
            datos=form.cleaned_data

            email = EmailMessage('title', 'body', to=[email])
            email.send()

            return HttpResponseRedirect('/')
        return render(request,'email.html',{'forma':form})

要使用Django编程任务,请使用cron。

安装runscript并创建适合您需求的脚本。现在,您可以通过以下方式启动它:

python manage.py runscript <<script_name>> --script-args <<args>>

然后只需将脚本添加到您的cron中:

#Every day at 22h
* * 22 * *      cd /path/to/project; python manage.py runscript send_mail 
相关问题