【零散技术】详解Odoo17邮件发送(一)
序言:时间是我们最宝贵的财富,珍惜手上的每个时分
Odoo的邮件功能十分强大,在非常多的场景中可以看见其应用,例如原生的用户邀请,报价单发送,询价单发送等等....
那么抛开原生自带的功能,我们如何巧妙的通过代码进行自定义邮件的发送呢?
目录
目录
1.准备工作
1.1开启POP3/SMTP
1.2 Odoo内设置发件服务器
2.邮件发送
2.1简单邮件发送
2.1.1 XML代码
2.1.2 python代码
2.1.3 其他注意事项
3.总结
1.准备工作
1.1开启POP3/SMTP
首先我们需要进行邮件服务器的设置:我们依旧以qq邮箱为例:
开启POP3/SMTP服务
发送短信验证码
验证完成后获取授权码,记住此授权码,之后将会被当作密码使用。
1.2 Odoo内设置发件服务器
激活【开发者模式】,通过【技术】菜单 选择 【邮件发送服务器】进行设置
新建一条记录,输入如下数据
序号 | 字段 | 输入 |
1 | 名称 | 任意字段 |
2 | 用户名 | 邮箱 |
3 | 密码 | POP3授权码 |
4 | 链接加密 | SSL/TLS |
5 | SMTP服务器 | smtp.qq.com |
6 | SMTP端口 | 465 |
填写完如上内容后,点击【测试链接】按钮,右上角应当出现 【链接测试成功】字样
注意:请点击右上角【个人信息】->【偏好】选项,将电子邮件设为 当前服务器电子邮件
2.邮件发送
2.1简单邮件发送
我们以最简单的邮件发送为例:我们发送一个内容型文字
2.1.1 XML代码
短短十行xml,我们便可定义一个基础的邮件模版,供后台使用。
<odoo><data><record id="ro_order" model="mail.template"><field name="name">随便写</field><field name="model_id" ref="model_ro_order"/><field name="auto_delete" eval="True"/></record></data>
</odoo>
2.1.2 python代码
依旧是短短十行,即可得到一个发送邮件功能
def send_mail(self,email_to):mail_template = self.env.ref('ro_base.ro_order')mail_template.subject = '【XXXX】-%s'%self.namemail_template.lang = 'zh_CN'mail_template.email_to =email_tomail_template.email_from ='543127346@qq.com'mail_template.body_html = '您的报告查询成功:<a href="%s">点击下载</a>'%self.line_ids[0].contentmail_template.report_template_ids = False
2.1.3 其他注意事项
一定记得把 xml在 __manifest.py中进行引用,否则将找不到这个邮件模版。
3.总结
通过配置邮件服务器、编写代码,我们可以发送任意想要的内容给指定的邮箱,但是如上的例子仅仅只是一个demo,我们如何美化发送的邮件内容,例如 添加附件,美化格式....
且听下回分解。