_# jeffery # focus on Odoo and other open source IT solutions # IT基础架构资深专家,开源解决方案专家,odoo资深专家__Q:913547235 讨论群397750860

openERP邮件(发信、收信)

openERP里的邮件处理主要有个2个模块处理

mail -核心

fetchmail -接收邮件

   

Alias domainalias name

   

配置domain alias.

Settings/ configuration / general settings / email/ alias

   

注意,alias domain 最好和邮件的domain相同,这样免得需要另外配置DNS系统

   

配置user alias.

配置了alias domain之后,用户alias会自动生成

Alias name 默认为 login 也可以进行修改

默认是 alias name @ alias domain --- 如果设置了alias. mail_from就用alias

   

可以修改alias为你所需要的,点击 alias值,,,

显示alias.

编辑它, alias改成你所需要的,然后保存

   

   

   

发信

只要配置SMTP服务器即可

Settings/ configuration / general settings / email/ configure the outgoing email servers

   

   

按键create

输入SMTP服务器信息

Note

重要信息

  • Description
  • SMTP server
  • SMTP port
  • Connection Security…. Important…

   

   

收信

   

  1. 收信可以用fetchmail模块处理 POP IMAP邮箱
  2. 也可以用 openerp_mailgate.py 脚本处理发送到 主机上的邮件

   

fetchmail模块收信

  1. 配置收信服务器
  2. 配置创建model record.

   

配置收信服务器

Settings/ configuration / general settings / email/ configure the outgoing email servers

   

按键create

   

   

fetchmail支持3种server type

  1. POP
  2. IMAP
  3. LOCAL SERVER ----即openerp_mailgate.py

   

   

POP类型 POP会删除服务器上的邮件,慎用 !!!

第二部分,输入服务器信息和账号信息

第三部分,选择恰当的 new record. /或者 server action --具体见 '配置创建model record 和 server Action'

   

   

IMAP类型 pop类型差不多

第二部分,输入服务器信息和账号信息

第三部分,选择恰当的 new record. /或者 server action --具体见 '配置创建model record 和 server Action'

   

LOCAL SERVER类型

------如果需要使用create New Record AND/OR server action时,才会用到此类型

   

选择本地类型时,使用MTAalias转发机制接收邮件

   

   

具体做法

  1. 搭一个SMTP服务器,例如postfix
  2. SMTP服务发布出去
  3. 配置alias domain
  4. 修改DNS,为youdomain设置MX记录
  5. 配置 alias转发,使用 openerp_mailgate.py脚本将邮件插入到mail模块里

       

    修改mail.cfg 增加

    virtual_alias_maps = hash:/etc/postfix/virtual_aliases

     

    修改/etc/postfix/virtual_aliases增加

    @youdomain allow

    @youdomain openerp_mailgate@localhost

    将发送到@youdomain的邮件转发给 openerp_mailgate@localhost处理

       

    修改/etc/aliases增加

    openerp_mailgate: "|/path/to/openerp-mailgate.py --host=localhost -u 1 -p PASSWORD -d bioinformatics"

    使用openerp_mailgate.py脚本将邮件交给mail.thread处理

       

    制作hash文件

    postmap /etc/postfix/virtual_aliases

    newalias

   

Bug,,,,,,,

   

Jul 26 16:33:05 ubuntu postfix/local[2652]: 48DB746CF1: to=<openerp_mailgate@localhost>, orig_to=<admin@oe.bioerp.com>, relay=local, delay=0.95, delays=0.69/0/0/0.27, dsn=5.3.0, status=bounced (Command died with status 1: "/usr/bin/python /usr/lib/pymodules/python2.7/openerp/addons/mail/static/scripts/openerp_mailgate.py --host=127.0.0.1 -u 7 -p 4321 -d CRM_PLUS". Command output: Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/openerp/addons/mail/static/scripts/openerp_mailgate.py", line 201, in <module> main() File "/usr/lib/pymodules/python2.7/openerp/addons/mail/static/scripts/openerp_mailgate.py", line 189, in main '%s' % (cgitb.text(sys.exc_info())), File "/usr/lib/python2.7/cgitb.py", line 245, in text exception = ['%s: %s' % (str(etype), str(evalue))] File "/usr/lib/python2.7/xmlrpclib.py", line 225, in __str__ return repr(self) UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-22: ordinal not in range(128) )

,,,,,,,,,,,,,,,

 

Fixed code

import sys

reload(sys)

sys.setdefaultencoding('utf8')

   

   

   

进阶部分

任何一种邮件接收方式,都可以设置特定的转发规则 AND/OR 服务器动作 ---服务器动作,参考另外一篇文章

   

配置创建model record server Action

   

可以为接收进来的邮件指定模型 或者 触发服务器动作

如代码

   

   

   

高级选项

  • Keep original是否保留原始邮件, 非保留服务器副本的含义
  • Keep attachments是否保留附件

   

   

   

   

注意事项;

  • 注意邮件loop

    比如收到邮件时创建message. 但是在 partner上启用了 notification_email_send : comment

    这样OE会向用户信箱(mail)发送邮件, 而该邮箱又设置了pop3下载; 造成loop.

       

       

  • 如果需要在服务器保留邮件,选择IMAP访问
  • POP访问会删除服务器上的邮件

posted on 2015-07-30 19:56  odoouse  阅读(2153)  评论(0编辑  收藏  举报

导航

_# jeffery # focus on Odoo and other open source IT solutions # IT基础架构资深专家,开源解决方案专家,odoo资深专家