odoo email 电子邮件

 
接收邮件服务器成功并作相应处理有三种方法:
1.使用服务器的创建新记录
然后写一个 model继承指写的类型。这时可以重写new_message方法达到目的。
    def message_new(self, cr, uid, msg, custom_values=None, context=None):
        """ Overrides mail_thread message_new that is called by the mailgateway
            through message_process.
            This override updates the document according to the email.
        """
        if custom_values is None:
            custom_values = {}
        street = html2plaintext(msg.get('body')) if msg.get('body') else ''
        defaults = {
            'name': msg.get('subject') or _("No Subject"),
            'street': street,
            'email_from': msg.get('from'),
            'email_cc': msg.get('cc'),
            'user_id': False,
            'partner_id': msg.get('author_id', False),
        }
        defaults.update(custom_values)
        return super(ResPartner, self).message_new(cr, uid, msg, custom_values=defaults, context=context)
 
 
2.使用服务器动作加别名
3.只使用别名
使用别名是可以指定一个model
实现这个model的update_message方法(一般指定用户,因为用户有一个portaltemplate,是用来收这个消息的)
    
def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
        for user in self.browse(cr, uid, ids, context=context):
            print user.alias_defaults
       
        street = html2plaintext(msg.get('body')) if msg.get('body') else ''
        defaults = {
            'name': msg.get('subject') or _("No Subject"),
            'street': street,
            'email_from': msg.get('from'),
            'email_cc': msg.get('cc'),
            'user_id': False,
            'partner_id': msg.get('author_id', False),
        }
        print defaults
        return True
 
 

猜你喜欢

转载自yinxvxv.iteye.com/blog/2183521