如何用建木CI发送邮件
2022-02-14 早春的树
如何用建木CI发送邮件
作者:早春的树 发布时间:2022-02-14 10:30:00

不知道大家在工作中,是不是也和我一样需要经常发送邮件呢,邮件可以事前清晰传达,事后有据可查,同时还有利于保密,一般用于比较正式的交流。

最近发现建木CI官方已经提供了发送邮件的节点,真是太懂我了!

这里给大家介绍一下如何使用建木CI发送邮件!

1.查看节点文档

节点文档里面详细描述了每一个参数的信息,可以参考节点文档填写对应的参数

节点文档:https://jianmuhub.com/_/email

2.发送邮件

大家可以选择自己的邮箱服务器,我这里使用的163邮箱,SMTP服务器地址为:smtp.163.com

auth_code参数为发件人邮箱授权码,在邮箱设置中获取,先开启SMTP服务,再获取授权码,如163邮箱:

2.1 发送文本邮件

type参数表示邮件内容的类型,默认为plain,表示普通文本。可选值:plain,html

DSL示例:

1
2
3
4
5
6
7
8
9
10
11
name: 发送文本邮件
pipeline:
send_email:
type: email:1.0.0
param:
host: smtp.163.com
sender: xxx@163.com
auth_code: ((email.authcode))
receivers: '["xxx@qq.com"]'
subject: 文本邮件
text: 这是一个文本邮件

邮件示例:

2.2 发送html标签邮件

type参数为html,会将邮件内容当成html标签

我们可以在text参数中输入自己需要的html标签内容

DSL示例:

1
2
3
4
5
6
7
8
9
10
11
12
name: 发送html邮件
pipeline:
send_email:
type: email:1.0.0
param:
host: smtp.163.com
sender: xxx@163.com
auth_code: ((email.authcode))
type: html
receivers: '["xxx@qq.com"]'
subject: html邮件
text: <p>这是html邮件</p><img src="https://scpic.chinaz.net/files/pic/pic9/202109/apic35394.jpg" />

邮件示例:

2.3 发送带附件的邮件

attach_path参数为附件路径,默认为空,表示不发送附件

注意:当路径为文件时,直接发送;当路径为目录时,会压缩为zip文件后再发送

附件路径一般为上游节点处理、输出的文件(夹)路径,我这里直接使用git_clone节点克隆gitee仓库,将仓库中的文件夹作为附件路径输入

DSL示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: 发送附件邮件
pipeline:
git_clone:
type: git_clone:1.2.0
param:
remote_url: https://gitee.com/xxx/xxx.git
send_email:
type: email:1.0.0
param:
host: smtp.163.com
sender: xxx@163.com
auth_code: ((email.authcode))
type: html
receivers: '["xxx@qq.com"]'
subject: 附件邮件
text: <p>这是附件邮件</p><img src="https://scpic.chinaz.net/files/pic/pic9/202112/bpic25075.jpg" />
attach_path: ${git_clone.git_path}/data # git仓库中的文件路径

邮件示例:

2.4 抄送、密送邮件

通过参数cc_receivers设置抄件人邮箱

通过参数bcc_receivers设置密送人邮箱

DSL示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: 发送抄送、密送邮件
pipeline:
send_email:
type: email:1.0.0
param:
host: smtp.163.com
sender: xxx@163.com
auth_code: ((email.authcode))
type: html
receivers: '["xxx@qq.com"]'
cc_receivers: '["xxx@qq.com"]'
bcc_receivers: '["xxx@qq.com"]'
subject: 附件邮件
text: <p>这是附件邮件</p><img src="https://scpic.chinaz.net/files/pic/pic9/202112/bpic25075.jpg" />

邮件示例:

2.5 分别发送邮件

分别发送:会将邮件单独发送给每一个人(包括收件人、抄送人和密送人)

将参数separate_delivery设为true,表示分别发送邮件;默认为false,表示群发给多个人

DSL示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
name: 分别发送邮件
pipeline:
send_email:
type: email:1.0.0
param:
host: smtp.163.com
sender: xxx@163.com
auth_code: ((email.authcode))
type: html
receivers: '["xxx@qq.com"]'
cc_receivers: '["xxx@qq.com"]'
bcc_receivers: '["xxx@qq.com"]'
subject: 附件邮件
text: <p>这是附件邮件</p><img src="https://scpic.chinaz.net/files/pic/pic9/202112/bpic25075.jpg" />
separate_delivery: true

邮件示例: