Email 如何使用模板方法在Plone中发送带有附件的邮件?
我一直在读关于使用一些模板从Plone发送电子邮件的文章,到目前为止,它一直在工作Email 如何使用模板方法在Plone中发送带有附件的邮件?,email,plone,Email,Plone,我一直在读关于使用一些模板从Plone发送电子邮件的文章,到目前为止,它一直在工作 我的问题是:如何使用模板方法添加附件?这是我的解决方案,可能不是最好的: 在portal\u skin/custom中创建mime\u文件DTML方法: <dtml-mime type="text/text; charset=utf-8" encode="7bit"> <dtml-var "text"> <dtml-boundary type="application
我的问题是:如何使用模板方法添加附件?这是我的解决方案,可能不是最好的: 在portal\u skin/custom中创建mime\u文件DTML方法:
<dtml-mime type="text/text; charset=utf-8" encode="7bit">
<dtml-var "text">
<dtml-boundary type="application/octet-stream" disposition="attachment"
filename_expr="nomefile"><dtml-var "file"></dtml-mime>
其中,_文件是文件的内容
灵感来自:
这是一个使用Python脚本的快速解决方案。使用Python的电子邮件模块 示例: 合成的消息可以传递到context.MailHost(Zope的MTA)
在任何情况下,从Python级别生成和发送电子邮件都比使用旧的DTML sendmail facade更好……不要使用它。MailHost.send命令同时使用Python(unicode)字符串和
email.Message
对象。这意味着您可以使用构造带有附件的适当MIME消息
标准库包括:;任何文本仍然可以通过模板生成,就像您链接的文档一样。现代方法需要使用python库来构建邮件正文,以处理mime并使用attach创建正文。Pieters:我知道可以使用python电子邮件包,但我喜欢模板(*.pt)方法,因为我正在发送一些带有html标记的电子邮件,并且我想将电子邮件逻辑与演示分离:问题是我在pt文件上手动创建了所有标题。既然我在pt上设置了标题,我怎么能使用标准的电子邮件包和pt方法呢?您仍然可以使用message_from_string方法来创建电子邮件对象,以便在多部分邮件构造中使用。嗯,您认为我可以拥有message.pt和attachment.pt吗?对于每个附件,我将attachment.pt连接到呈现的邮件.pt?当我执行
mail\u template=portal.mail\u template\u id mail\u text=mail\u template
时,我收到一个unicode对象。什么定义了编码、我的系统和属性?我在发送非ascii电子邮件时遇到问题。。。
message = context.mime_file(file=a_file, text=message, nomefile='attach_name.pdf')
context.MailHost.send(message, mTo, mFrom, mSubj)