如何使用模板方法在Plone中发送带附件的邮件?

时间:2011-07-04 14:17:23

标签: email plone

我一直在阅读official docs关于使用某些模板从Plone发送电子邮件的问题,到目前为止它还在运行。

我的问题是:如何使用模板方法添加附件?

3 个答案:

答案 0 :(得分:4)

MailHost.send命令同时包含python(unicode)字符串和email.Message个对象。这意味着您可以使用python email package构建带附件的正确MIME消息。

标准库包括a great page of examples;任何文本仍然可以通过模板生成,就像您链接的文档一样。

答案 1 :(得分:3)

使用Python的电子邮件模块。

示例:

http://docs.python.org/library/email-examples.html

组合的消息可以传递给context.MailHost(Zope的MTA)。

在每种情况下,都可以更好地从Python级别生成和发送电子邮件,而不是使用旧的DTML sendmail外观...不要使用它。

答案 2 :(得分:1)

这是我的解决方案,也许它不是最好的:

在portal_skin / custom中创建一个mime_file 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脚本中):

message = context.mime_file(file=a_file, text=message, nomefile='attach_name.pdf')
context.MailHost.send(message, mTo, mFrom, mSubj)

其中a_file是文件的内容。

受到启发:

http://www.zope.org/Members/visibleoffice/HowTo.2003-10-22.1455

使用Python脚本,这是一个快速而简单的解决方案。