如何在Plone 4中将CC收件人添加到电子邮件中?

我对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")

它工作得很好,但不能接受重音字符(在意大利语中很常见).

有任何想法吗?

Thx提前,

卢卡

最佳答案 您已达到安全python脚本环境的极限,您可以在plone中使用TTW.不允许在此类脚本中导入电子邮件模块.

MailHost对象上的旧secureSend方法用于拥有cc的方法参数,该参数似乎已在最新版本中删除,该版本仅具有“发送”方法且没有cc参数.

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

点赞