【问题标题】:How to add CC recipients to an e-mail in Plone 4?如何在 Plone 4 中将抄送收件人添加到电子邮件中?
【发布时间】:2011-11-12 02:23:45
【问题描述】:

我对 Plone 很陌生,正如您在标题行中看到的那样,我正在使用 Plone 4。

尽管我对 plone 和 Python 都是新手,但我还是设法获得了一个完整的页面,可以将富文本邮件消息发送给我网站的用户选择的成员。 我所做的基本上是克隆(即复制和重命名)sendto、sendto_form 和 sendto_template 并编辑它们以获得我需要的东西。

正如我所说,它工作得很好,但我需要添加一个 CC 收件人,但 MailHost.send() 方法不允许 CC 标头(虽然 secureSend 方法允许它,但它已被弃用Plone 4 中的方法)。 我还使用了一个模板让用户添加附件,该模板位于How to send mail with attachments in Plone using a template approach?

我知道 python email.Header 函数完全符合我的需要,但是当我尝试导入库时出现权限不足错误(我以管理员身份登录)。

我也尝试使用以下方法解决它:

       templ="""Subject: %(subject)s
From: "%(send_from_name)s" <%(envelope_from)s>
To: %(send_to_address)s
CC: %(send_cc_address)s
Content-Type: text/html; charset=UTF-8
Reply-To: %(send_from_address)s

%(comment)s
--
%(signature)s
"""

       message=templ % variables
       context.MailHost.send(message.encode("utf-8"),encode="quoted-printable")

它几乎可以正常工作,但不能接受重音字符(这在意大利语中很常见)。

有什么想法吗?

提前谢谢,

卢卡

【问题讨论】:

    标签: plone


    【解决方案1】:

    您已经达到了可以在 plone 中使用 TTW 的安全 Python 脚本环境的限制。此类脚本中不允许导入email模块。

    MailHost 对象上的旧 secureSend 方法曾经有一个用于 cc 的方法参数,该方法似乎已在最新版本中被删除,它只有一个“send”方法而没有 cc 参数。

    这意味着您必须将代码移动到视图中文件系统上的产品才能使用 cc 部分。

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 2011-07-24
      • 1970-01-01
      • 2015-07-17
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2019-01-01
      相关资源
      最近更新 更多