如何从plone网站发送邮件

时间:2013-09-11 11:23:41

标签: python-2.7 plone

任何人都可以告诉我如何从plone网站发送邮件。我想做的是(将列出我的观点)

  1. 我有一个名为联系我们的模板页面(html页面)。用户可以在其中输入他/她的姓名,电子邮件ID,地址等。输入内容后,他必须将其提交给特定的邮件ID。< / LI>
  2. 我创建了一个.py文件,用于从联系我们html页面获取这些值。
  3. 获取值后,应将其邮寄给特定的邮件ID。
  4. 我的html页面有点像:

    <html>
    <form action="mailto" method = "post" name="mailto">
       Name :<input type="text" name="fname" />
       address :<input type="text" name="address"/>
    </form>
    </html>
    

    mailto.py

    class MailTo(BrowserView)
      def __init__(self,context,request):
         self.context = context
         self.request = request 
    
      def registerdetail(self):
          mailhost = self.context.MailHost
          form= self.request.form
          name=form.get('fname')
          address=form.get('address')
    
          mto = 'xxxx@gmail.com'
          msg="""
              Name:%s
              Address:%s
              """ %(name,address)
    
          mailhost.send(messageText=msg, mto=mto, mfrom='yyy@yahoo.com')
    
          return self.sucesspage()
    

    我通过在“mto=gsgfsf@gmail.com”中提供我自己的mailid直接测试了它,但我没有收到任何邮件。任何人都可以告诉我的事情是错的。

    提前致谢

3 个答案:

答案 0 :(得分:3)

你会发现简单地使用PloneFormGen(Plone的一个流行的附加组件)来构建你的表单要容易得多。您可以按照以下位置的说明设置表单的电子邮件目的地:http://developer.plone.org/reference_manuals/active/ploneformgen/select_mail.html

答案 1 :(得分:3)

根据您在邮件列表中的说法,您的问题是您安装了开发人员工具Products.PrintingMailHost

安装的电子邮件将打印到控制台而不是发送。这样您就可以测试发送电子邮件而无需实际发送电子邮件。

答案 2 :(得分:2)

确认您已将Plone配置为先发送邮件。在Site Setup -> Mail中,输入您的邮件服务器信息,然后点击保存并发送测试电子邮件

enter image description here

然后在Python中使用MailHost应该可以工作(除非你使用的是Products.PrintingMailHost打印电子邮件而不是发送它。)