每当新用户加入门户网站时,我都希望收到门户电子邮件地址的电子邮件通知。
我的猜测是,我应该为新产品编写代码。
这种产品是否已经存在(对于Plone 4)?
我检查了内容规则,但AFAICT只有当我让用户满足于像膜/记忆这样的东西时才有用,但是对于我的要求来说是过度的。
答案 0 :(得分:5)
我不认为这样的产品已经存在。
创建一个添加内容规则条件的包应该是微不足道的,这可以让您为Products.PluggableAuthService.interfaces.events.IPrincipalCreatedEvent
事件编写内容规则。
Plone知识库文档how to create such a package。
答案 1 :(得分:1)
您可以轻松自定义registered.pt模板,添加对通过MailHost api发送电子邮件的PythonScript的简单调用。
正确定制plone.app.users.browser.register.py要复杂得多。
答案 2 :(得分:1)
你也可以让login_next遍历到一个控制器Python脚本(你会在你写的发送电子邮件的核心Plone产品的/ plone_login区域中以扩展名'.cpy'结尾的其他类似的那些) (也许是notifyMangersUponLogin)而不是它默认遍历login_success。
然后,让您的CPT脚本遍历login_success以继续Plone附带的sript / page MVC流程,如果这就是您想要的。
要利用控制器页面模板(.cpt文件)/脚本(.cpy文件),不仅要将自定义版本的login_next.cpy复制到自定义产品的外观路径,还要将login.cpy.metadata文件复制到指定MVC页面/脚本逻辑流程的成功/失败操作。
使用Plone 4.0.2,您将在以下路径下找到Plone登录相关的脚本/模板: /buildout-cache/eggs/plone-4.0.2-py2.6.egg/Products/CMFPlone/skins/plone_login 相对于你的扩建结构。
答案 3 :(得分:0)
如果您想以正确的方式进行,请按照上面的Martijn说明进行操作。如果您需要其他脏解决方案,请执行以下操作:
插入以下代码:
context.MailHost.send('Content-Type:text / plain \ n \ n'+'用户已注册:'+ str(用户名),
mfrom='me@gmail.com”,
mto='you@gmail.com”,
subject ='用户注册',
)