为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Django 发送电子邮件报告

使用 Django 发送电子邮件报告

UYOU 2022-11-24 14:17:20

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

如果我不够具体或问题表述不当,请告诉我。

提前致谢!


查看完整描述

1 回答

?
阿波罗的战车

TA贡献1572条经验 获得超6个赞

要通过 Django 发送消息,您可以使用 gmail 或您自己的 SMTP:


在设置中:


EMAIL_USE_TLS = True

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'foo@gmail.com'

EMAIL_HOST_PASSWORD = '**************'

EMAIL_PORT = 587

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


然后你只需要去你的意见和:


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 


查看完整回答
反对 回复 6天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信