OE Email 配置指南
-
oe的邮件处理,我前几个月对这方面稍微学习了一阵,由于没实际在项目里做过,都是纸上谈兵,因此只是留了个笔记放在 qq 空间给自己备忘的。
<br / http://user.qzone.qq.com/1431494/blog/1372402113 br />
这几天 群里对邮件的讨论多了起来,因此 斗胆贴出来,抛砖引玉,请大家一起补充完善。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:单雷平 ,盈通软件 ([email protected])
企业邮箱的选择
1. OE 中公司使用到相关的地址, 最好 统一使用 本公司的企业邮箱, 统一 域名, 即 email 地址@后面的地址部分 是一致的, 这在 OE 中成为 alias domain
2. 如果 确实有 不同的 域名存在, 必须确保 这些email 地址中, @ 前面部分没有重复的, 因为 OE 是把@前面的部分作为 alias 标识, 而 alias 必须唯一
3. 如果 有选择的余地 , 建议选则 支持 下列功能的 企业邮箱
(1) 支持catchall , 就是 一个邮箱能接收到 所有的该域名下 所有为邮件 而 无需事先创建对应的账户, 因为 OE 对收到的邮件, 根据邮件中 发送对象(如下面的 'Delivered-To','To',''Cc ) 自动分拣, 并 route 到不同的对象.
rcpt_tos = <br /> ','.join([decode_header(message, 'Delivered-To'),
decode_header(message, 'To'),
decode_header(message, 'Cc'),
decode_header(message, 'Resent-To'),
decode_header(message, 'Resent-Cc')])
而并不是 根据收件的 邮箱账户 分发, 这是 OE 对邮件的处理 跟 其它 邮件客户端 处理的 最大不同出, 必须理解这一点
(2) smtp 支持代发, 就是说, 应到允许 一封邮件的 发件人字段 "smtp_from" 可以和 登录跟 smtp 的 认证用户不一致. 因为OE 是默认情况下, 是只用 优先级 最高的 smtp 服务器发送, 此时smtp_from几乎不可能跟 smtp的认证用户一致
这是一个很严重的问题, 对于的现在多数邮箱服务器提供者, 处于防范垃圾邮件的考虑, 是要求 发送者跟 认证者 必须一直的,否则会报出 551 等 错误信息. 只有很少的企业邮箱 服务商是可以的.
不过, 好在OE 有强大的二次开发能力, 已经开发了一个模块解决此问题. 可以自动选择相应的 发送服务器
请见: https://github.com/ccdos/into-openerp-addons br />
OE中 Email 地址分为 几类:
1. 每个 user 私用的邮箱, 收到的邮件 出现在mail
图片[attachimg=1]
2 公司对外的 营销邮箱sales, 招聘 邮箱job , 公告 等等 , 根据 alias 的设置, OE 会进行相应的 转发, 并自动在对应的 model 中生成一个新文档,直接进入后续的 流程处理
[attachimg=2]
需注意, alias + @ + alias domain 就是 对应一个 Email地址 这个地址 在 incoming Mail Servers 中设置相应的记录
补充: Discussion group 这个 model 对应的 alias 中, 比如, group+best-sales-practices 这里加号 + 后面的部分对应一个 group 的名称 才能正确分发.
不同的model 对 alias 的处理有所不同, 需 具体分析 . 一般都是 创建一条记录, 并把 邮件内容附在 这个单据后面的 message 中
3. 公司邮箱. 设置在 Companies 的Email 中, 它的主要用处是作为 系统发送邮件时的 发送人,最好能 user中的 admin的邮箱分开
图片[attachimg=3]
配置 alias domain
要想配置 OE的邮件功能,必须 先输入 alias domain, alias domain 就是企业邮箱的域名
图片[attachimg=4]
创建用户
1. 创建 邮箱账户
如果 企业邮箱支持 catchall 功能,则 无需进行每个邮箱账户的创建, 直接使用所需的 邮箱地址即可, 邮件都会被 catchall 指定的邮箱捕获, 否则
就要为 每个用户创建一个邮箱账户,:
建议: 邮箱账户的名称跟 OE 用户的 登录名称一致. 缘由, OE 在创建用户时, 会自动在 aliases 中以该用户的登录名称 创建一个记录 , 后面收取到 邮件后自动分发. 如果不一致也是可以的, 但是容易混淆. 可能的话建议保持一致
2. 创建 OE 用户
如前述,OE 登录名要跟邮箱的名称一致. 如果创建帐号的时候, 同时输入了Email 地址, 系统会自动向 这个邮箱发送 一封邀请信邮件.
收信人 点击 红圈的链接后 进入 OE 登录界面, 自行输入 密码后, 帐号创建完成.
管理员 也可以在 用户界面 的 more 按钮中 选择 change password 菜单, 直接指定一个密码 完成帐号的创建
图片[attachimg=5]
3. 关于 用户 users 界面中的 email 地址, 这地址, 跟 该用户能收取的邮件没有关系( 可收取的邮件, 只跟 alias 相关), 在注册时, 该地址 将 接收 前述 邀请函. 另外, 当以 个人名义发送邮件时 ,这里 设置的 email 将作为发件人.
[attachimg=6]
总结一下: 用户创建完成后
其中 的 Email 是作为 发件人 的, 而 收取邮件, 对应的是 alias . 必须理解这一点
创建 和修改aliases
默认情况下, 用户无需对 aliases 进行修改, 系统自动创建的 aliaes 已经够用了. 特别是针对 user 的别名, 不可删除,否则会同步删除掉 相应的用户
如果修改了该用户对应的aliaes , 意味着 这个用户对应的 收取邮件的 邮箱名也发生了相应的变化
收取和分发邮件
在 Incoming Mail Servers 中, 要为系统中, 所有需要接收邮件的邮箱账户 创建一个记录.
如果 使用了catchall 功能, 只需为 接收 catchall 的邮箱创建一个记录即可, 如开头(企业邮箱的选择 第3条)所述, OE 会根据实际的接收人 进行 分发.
否则, 要为 每个邮箱账户逐一创建记录
OE 会定时收取 所有的邮箱. 收到邮件后, 根据 aliases 的设定进行分发.(实际分发过程 比较复杂,带以后进一步展开).
首先 检查是否 回复给已有的讨论线索(就是每个表单下面的讨论 message), 是就 追加到后面
# 1. Verify if this is a reply to an existing thread
检查是否回复给 私人邮件
# Verify whether this is a reply to a private message
检查是否匹配 某个 alias 项目
# 2. Look for a matching mail.alias entry
# Delivered-To is a safe bet in most modern MTAs, but we have to fallback on To + Cc values
# for all the odd MTAs out there, as there is no standard header for the envelope'srcpt_to
value.
根据 Incoming Mail Servers 记录中 提供的参数, 直接匹配相应的model ,看看是否有相应的处理函数和方法, 如果这个model 可以接受 消息, 则直接传送给这个model 处理,
甚至 直接 触发调用 server action
# 3. Fallback to the provided parameters, if they work
这也是初次设置OE 邮箱的难点, 因为明明收到了邮件, 确不知道去哪里看这个邮件
发出邮件
发出邮件, OE 处理不尽合理 . 按默认的设置, 要求smtp 必须允许 邮件代发.
我们开发的模块, 已经可以让OE 自动选择正确的smtp服务器账户 发送邮件.(请见: [检测到链接无效,已移除] br />只需在 Outgoing Mail Servers 中, 设置好所有 需要发送邮件的账户, 确保 Description(name) 字段的值 为对应的 邮件发送账户(完整的eamil地址) 即可.
关注某个用户、客户的 发送的消息
类似微博的 关注, 关注方式是在 sales - customes 菜单中 找到 对应的 合作伙伴(此处包括了 系统用户、往来客户、联系人 等信息, 是个非常广义的合作伙伴),然后在 下面 点击 follow 。
===========================================================
作者:单雷平 ,盈通软件 ([email protected])
2013-06-19 初稿,谢绝转载 -
感谢分享。。。
Mark -
mark 非常感谢
-
好贴,配置可以进行收邮件了