❗️你有0条未读消息

使用sendEmail在命令行下自动发送邮件

偷懒是优秀程序员的美好品德。

背景

作为一个码农,我们的原则是尽量把能自动化完成的任务交给机器。工作上一些流程性的邮件完全可以通过自动化实现。前端获取邮件信息,后端将信息组装发送出去。本篇博文将如何使用sendEmail发送邮件做一记录。

安装

点击此处,从官网下载sendEmail二进制文件。

使用

官网的说明已经很完善,或者直接运行sendEmail命令,会打出详尽的命令参数。

主要的参数有:

1
2
3
4
5
6
7
8
9
-t 收件人
-f 发件人
-u 邮件主题
-m 邮件内容 (也可以通过读取文件方式)
-s 发送邮件服务器
-a 发送附件
-cc 抄送人
-xu 发件人验证
-xp 发件人密码

脚本封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash

function USAGE(){
echo "sh $0 <-t toEmail> <-u subject> <-m message> <-C ccEmail> <-a appendFile>"
}

if [ $# -lt 1 ];then
USAGE
exit 1
fi

while getopts t:u:m:C:a:h OPTION
do
case $OPTION in
t) to="${OPTARG}"
;;
u) subject="${OPTARG}"
;;
m) message="${OPTARG}"
;;
C) cc="${OPTARG}"
;;
a) append="${OPTARG}"
;;
h) USAGE
;;
esac
done

params=" -t ${to} -u ${subject} -f ${from} -s xxxx(绿色围墙) -xu xxxx(绿色围墙) -xp xxxx(绿色围墙)"

if [ "${cc}" != "" ];then
params="${params} -cc ${cc}"
fi

if [ "${append}" != "" ];then
params="${params} -a ${append}"
fi

echo ${params}

cat txt | sendEmail ${params}
赞 赏

如果你觉得本文还不错的话也可以赞赏一点~