直接从 django-template 发送电子邮件
Posted
技术标签:
【中文标题】直接从 django-template 发送电子邮件【英文标题】:Send email right from django-template 【发布时间】:2014-10-26 19:16:15 【问题描述】:我有一个 django 项目。 它的 index.html 页面包含一个带有提交按钮的表单。我想在此 index.html 页面中包含 django-template 以发送包含此表单数据的电子邮件。没有任何python代码可以吗?就像:
% send_mail( request.GET.to , request.GET.subject , request.GET.message %
附:我是 Django 新手。
【问题讨论】:
【参考方案1】:这行不通。 Django 模板并非旨在直接调用 python 模块/方法。 您可以创建模板标签,也可以在点击时触发发送电子邮件的 url/视图。
来自philosophy of django template language
如果您有编程背景,或者如果您习惯于将编程代码直接混合到 HTML 中的语言,那么您需要记住,Django 模板系统不仅仅是将 Python 嵌入到 HTML 中。这是设计使然:模板系统旨在表达演示,而不是程序逻辑。
关于如何创建template tags的文档
这里有一个关于email sending functionality through views.py 的很好的教程
【讨论】:
【参考方案2】:不,这是不可能的。为了填充这些值 request.GET.to
,您必须单击提交按钮 - 它必须位于某个地方。
现在,如果您真的必须 - 您可以使用 javascript 和像 mailgun 这样在 HTTP 上工作的库严格地从浏览器中执行此操作。
只需像创建任何 AJAX 请求一样创建请求,阅读表单字段的内容,您的电子邮件就会被发送 - 无需接触您的服务器端代码。
【讨论】:
以上是关于直接从 django-template 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章