odoo10中邮件提醒配置如下:

1.配置出向邮件服务器

  打开开发者模式,设置-->技术-->email-->出向邮件服务器

  设置如下:

  

  如果配置成功,点击’测试连接‘,会出现如下弹出框:

  

2.设置公司邮箱为刚才配置的邮件地址

  设置-->用户-->公司,修改公司邮箱地址

3.模型中使用

 from odoo import models, fields, api, tools

 class InvoiceBill(models.Model):
""" """
_name = 'esw.invoice.bill'
_inherit = ['mail.alias.mixin', 'mail.thread', 'ir.needaction_mixin']
_description = u'邮件学习测试'
_order = 'create_date desc' def _get_domain_of_invoice_manager(self):
manager = self.env['ir.model.data'].xmlid_to_object('mail_test.esw_invoice_bill_manager_group')[0]
return [('id', 'in', manager.users.ids)] name = fields.Char(u'单据说明')
invoice_manager = fields.Many2one('res.users', u'仓库主管', domain=_get_domain_of_invoice_manager)
remark = fields.Text(u'备注')
alias_id = fields.Many2one('mail.alias', string='别名', ondelete="restrict", required=True) state = fields.Selection(
[
('init', u'初始化'),
('revert', u'撤回'),
('submit', u'已提交'),
('delivered', u'已发货'),
('completed', u'完成'),
],
default='init',
track_visibility='onchange',
required=True,
) @api.multi
def _track_template(self, tracking):
"""
前提:不配置域别名[mail.catchall.domain]
此处将该参数[no_auto_thread]设置为True,可以使replay_to参数的邮件值为预期值,否则会是模板中配置的${xx.xx}
这样可以达到正常发送提醒邮件,且发送邮件中的发送人/接收人/reply_to 达到预期的值;
收件人回复后也能也能收取,会显示为消息,也就是mail.message,并且不会跟原来的邮件做关联 如果设置域别名[mail.catchall.domain]
虽然参数[no_auto_thread]不设置,邮件中replay_to参数也会是预期值,但是邮件发送失败,走了odoo中自带的email_from规则(odoo10参见mail_mail.py line-248),
如下:
bounce_alias = self.env['ir.config_parameter'].get_param("mail.bounce.alias")
catchall_domain = self.env['ir.config_parameter'].get_param("mail.catchall.domain")
if bounce_alias and catchall_domain:
if mail.model and mail.res_id:
headers['Return-Path'] = '%s+%d-%s-%d@%s' % (bounce_alias, mail.id, mail.model, mail.res_id, catchall_domain)
else:
headers['Return-Path'] = '%s+%d@%s' % (bounce_alias, mail.id, catchall_domain)
对于设置了域别名[mail.catchall.domain]的情况一直没有尝试成功
:param tracking:
:return:
"""
res = super(InvoiceBill, self)._track_template(tracking) template = self.env.ref('mail_test.esw_mail_test_template') res['template_id'] = (template, {
'composition_mode': 'mass_mail',
'no_auto_thread': True,
})
return res

说明:

  对于邮件接收的,配置起来比较麻烦,到现在整个流程没有走通,就不说了,如果仅仅是针对邮件提醒的话,上面是没有问题的。

  关于邮件接收:

  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

odoo10中的邮件提醒的更多相关文章

  1. c#之Redis队列在邮件提醒中的应用

    场景 有这样一个场景,一个邮件提醒的windows服务,获取所有开启邮件提醒的用户,循环获取这些用户的邮件,发送一条服务号消息.但问题来了,用户比较少的情况下,轮询一遍时间还能忍受,如果用户多了,那用 ...

  2. 2.jenkins配置邮件提醒

    1.前言 在Jenkins的使用中邮件提醒是一个常用功能,Jenkins默认安装了Mailer Plugin插件用于实现此功能. 2.邮件服务器配置 首先在Jenkins的"系统管理&quo ...

  3. WordPress设置固定链接和邮件提醒遇到的问题

    固定链接1.WordPress根目录下有一个.h...文件,记录文章链接类型对应的配置,要保证该文件的可写全权限:2.设置Apache2的rewrite模块启动,/etc/apache2/modle- ...

  4. Python-定时爬取指定城市天气(二)-邮件提醒

    目录 一.概述 二.模块重新划分 三.优化定时任务 四.发送邮件 五.源代码 一.概述 上一篇文章python-定时爬取指定城市天气(一)-发送给关心的微信好友中我们讲述了怎么定时爬取城市天气,并发送 ...

  5. EWS 邮件提醒

    摘要 之前做的邮件提醒的项目,最近需要优化,由于使用了队列,但即时性不是特别好,有队列,就会出现先后的问题,最近调研了exchange 流通知的模式,所以想使用流通知模式和原先的拉取邮件的方法结合,在 ...

  6. Azure虚机磁盘容量警报(邮件提醒)

    上周有个客户提出这样的需求:根据虚拟机磁盘的实际使用量,当达到某一阈值时设置邮件提醒. 在这个需求中我们只需要解决两点问题: 计算虚拟机磁盘实际使用量 发送邮件 使用VS新建一个名为Calculate ...

  7. shell脚本-监控及邮件提醒

    首先写一个邮件提醒python文件 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.m ...

  8. docker搭建gitlab,设置邮件提醒,并运行runner

    接着http://www.cnblogs.com/wsy1030/p/8431837.html 在另一台机子运行gitlab: docker run --name='gitlab' -d -p 222 ...

  9. biff - 新到邮件提醒

    总览 (SYNOPSIS) biff [ny ] 描述 (DESCRIPTION) Biff 通知系统在当前终端会话期间有新邮件是否提醒你. 支持的选项有 biff n 禁止新邮件提醒. y 开启新邮 ...

随机推荐

  1. C#LeetCode刷题-图

    图篇 # 题名 刷题 通过率 难度 133 克隆图   18.7% 中等 207 课程表   40.0% 中等 210 课程表 II   40.0% 中等 310 最小高度树   29.5% 中等 3 ...

  2. C#LeetCode刷题之#566-重塑矩阵( Reshape the Matrix)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3720 访问. 在MATLAB中,有一个非常有用的函数 resha ...

  3. golang 中的struct理解

    golang实验代码 package main import("fmt") type Stu struct{ name string age int } func (stu *St ...

  4. 史上最全且最简洁易懂的Activity启动流程解析

    Activity的启动流程是一个资深Android工程师必须掌握的内容,也是高职级面试中的高频面试知识点,无论是从事应用层开发,还是Framework开发,其重要性都无需我多言.而要真正理解它,就不可 ...

  5. Docker: docker pull, wget, curl, git clone 等如何更快?

    1) Docker 配置 1.1) daemon.json 配置镜像 路径: /etc/docker/daemon.json 文档: Config Daemon registry-mirrors 设定 ...

  6. Scala中的函数高级使用

    1.偏函数 1.基本介绍 在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择 将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范 ...

  7. Java之reflection(反射机制)——通过反射操作泛型,注解

    一.反射操作泛型(Generic) Java采用泛型擦除机制来引入泛型.Java中的泛型仅仅是给编译器Javac使用的,确保数据的安全性和免去强制类型转换的麻烦.但是编译一旦完成,所有和泛型有关的类型 ...

  8. META.表

    META.表

  9. 一文说通Jwt、Session、Cooike区别

    JWT 全称是 JSON Web Token,是目前非常流行的跨域认证解决方案,在单点登录场景中经常使用到. 有些人觉得它非常好用,用了它之后就不用在服务端借助 redis 实现认证过程了,但是,还有 ...

  10. Java中枚举的常见用法

    在JDK1.5以后引入了一种新的类型,就是枚举(enum).enum是用来声明枚举类型数据,它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外, 其他类型的如字母.特殊符号.汉 ...