直接从 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 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Access 2016 定时发送自动电子邮件

通过 php 脚本定期发送电子邮件

Mime 和 Office365

我可以使用 javax.mail 进行后台电子邮件发送吗? [复制]

电子邮件传输的协议是啥?

对于从 java 程序发送的电子邮件,html 内容中的 png 图像未显示在 gmail 客户端上