我正在使用Python 3.8.2处理Django项目,我每天需要发送电子邮件(它们包含带有一些数据的简单csv文件)。我想使用Celery,但它不支持我的python版本,目前还无法真正降级。还有其他可行的方法吗?
让我知道我是否不够具体,或者问题表达得不好。
谢谢!
答案 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