我对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")
它的效果差不多但不能接受重音字符(这在意大利语中很常见)。
有什么想法吗?
提前,
卢卡
答案 0 :(得分:2)
您已达到安全python脚本环境的极限,您可以在plone中使用TTW。不允许在此类脚本中导入电子邮件模块。
MailHost对象上的旧secureSend方法用于拥有cc的方法参数,该参数似乎已在最新版本中删除,该版本仅具有“发送”方法且没有cc参数。
这意味着您必须将代码移动到视图中文件系统上的产品才能使用cc部分。