猿问

使用 Django 发送电子邮件报告

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

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

提前致谢!


UYOU
浏览 104回答 1
1回答

阿波罗的战车

要通过 Django 发送消息,您可以使用 gmail 或您自己的 SMTP:在设置中:EMAIL_USE_TLS = TrueEMAIL_HOST = 'smtp.gmail.com'EMAIL_HOST_USER = 'foo@gmail.com'EMAIL_HOST_PASSWORD = '**************'EMAIL_PORT = 587*要让谷歌允许从该地址发送电子邮件,您必须访问您的帐户>访问和安全>选项允许访问安全性较低的应用程序:开然后你只需要去你的意见和:from django.core.mail import EmailMessageemail = EmailMessage('title', 'body', to=[email])email.send()en tu view:from django.core.mail import EmailMessageclass contacto(View):&nbsp; &nbsp; def get(self,request):&nbsp; &nbsp; &nbsp; &nbsp; form=correo()&nbsp; &nbsp; &nbsp; &nbsp; return render(request,'email.html',{'forma':form})&nbsp; &nbsp; def post(self,request):&nbsp; &nbsp; &nbsp; &nbsp; form=correo(request.POST)&nbsp; &nbsp; &nbsp; &nbsp; if form.is_valid():&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; datos=form.cleaned_data&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; email = EmailMessage('title', 'body', to=[email])&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; email.send()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return HttpResponseRedirect('/')&nbsp; &nbsp; &nbsp; &nbsp; 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 * *&nbsp; &nbsp; &nbsp; cd /path/to/project; python manage.py runscript send_mail&nbsp;
随时随地看视频慕课网APP

相关分类

Python
我要回答