odoo10中郵件提醒配置以下:api
1.配置出向郵件服務器服務器
打開開發者模式,設置-->技術-->email-->出向郵件服務器dom
設置以下:學習
若是配置成功,點擊’測試鏈接‘,會出現以下彈出框:測試
2.設置公司郵箱爲剛纔配置的郵件地址ui
設置-->用戶-->公司,修改公司郵箱地址spa
3.模型中使用設計
1 from odoo import models, fields, api, tools 2 3 4 class InvoiceBill(models.Model): 5 """ 6 7 """ 8 _name = 'esw.invoice.bill' 9 _inherit = ['mail.alias.mixin', 'mail.thread', 'ir.needaction_mixin'] 10 _description = u'郵件學習測試' 11 _order = 'create_date desc' 12 13 def _get_domain_of_invoice_manager(self): 14 manager = self.env['ir.model.data'].xmlid_to_object('mail_test.esw_invoice_bill_manager_group')[0] 15 return [('id', 'in', manager.users.ids)] 16 17 name = fields.Char(u'單聽說明') 18 invoice_manager = fields.Many2one('res.users', u'倉庫主管', domain=_get_domain_of_invoice_manager) 19 remark = fields.Text(u'備註') 20 alias_id = fields.Many2one('mail.alias', string='別名', ondelete="restrict", required=True) 21 22 state = fields.Selection( 23 [ 24 ('init', u'初始化'), 25 ('revert', u'撤回'), 26 ('submit', u'已提交'), 27 ('delivered', u'已發貨'), 28 ('completed', u'完成'), 29 ], 30 default='init', 31 track_visibility='onchange', 32 required=True, 33 ) 34 35 @api.multi 36 def _track_template(self, tracking): 37 """ 38 前提:不配置域別名[mail.catchall.domain] 39 此處將該參數[no_auto_thread]設置爲True,能夠使replay_to參數的郵件值爲預期值,不然會是模板中配置的${xx.xx} 40 這樣能夠達到正常發送提醒郵件,且發送郵件中的發送人/接收人/reply_to 達到預期的值; 41 收件人回覆後也能也能收取,會顯示爲消息,也就是mail.message,而且不會跟原來的郵件作關聯 42 43 若是設置域別名[mail.catchall.domain] 44 雖然參數[no_auto_thread]不設置,郵件中replay_to參數也會是預期值,可是郵件發送失敗,走了odoo中自帶的email_from規則(odoo10參見mail_mail.py line-248), 45 以下: 46 bounce_alias = self.env['ir.config_parameter'].get_param("mail.bounce.alias") 47 catchall_domain = self.env['ir.config_parameter'].get_param("mail.catchall.domain") 48 if bounce_alias and catchall_domain: 49 if mail.model and mail.res_id: 50 headers['Return-Path'] = '%s+%d-%s-%d@%s' % (bounce_alias, mail.id, mail.model, mail.res_id, catchall_domain) 51 else: 52 headers['Return-Path'] = '%s+%d@%s' % (bounce_alias, mail.id, catchall_domain) 53 對於設置了域別名[mail.catchall.domain]的狀況一直沒有嘗試成功 54 :param tracking: 55 :return: 56 """ 57 res = super(InvoiceBill, self)._track_template(tracking) 58 59 template = self.env.ref('mail_test.esw_mail_test_template') 60 61 res['template_id'] = (template, { 62 'composition_mode': 'mass_mail', 63 'no_auto_thread': True, 64 }) 65 return res
說明:rest
對於郵件接收的,配置起來比較麻煩,到如今整個流程沒有走通,就不說了,若是僅僅是針對郵件提醒的話,上面是沒有問題的。code
關於郵件接收:
1.須要配置收件郵件服務器;
2.須要配置參數,設置-->技術-->參數-->系統參數,設置以下:
mail.bounce.alias是你發送郵箱@前面的字符串,mail.catchall.alias是接收別名,不用接收不須要配置;
還有個系統收取郵件須要配置的 [域別名]--mail.catchall.domain
3.若是須要跟mail.message關聯,好像還須要配置 別名 (我如今就是郵件發出去,當對方回覆的時候,系統中關聯不起來,不會以郵件的形式存在,而是消息)
接收到消息後,在設置-->技術-->email-->消息中能夠查看,
4.收取郵件地址的別名,設置-->技術-->email-->別名,而後須要在模型中重寫mail.thread的message_new方法
設計到的模型,mail模塊下mail.thread, mail.mail, mail.message, 郵件服務器模型base/ir/ir_mail_server.py