如何使用sendEmail发送邮件

简介:

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash、perl和web站点使用。
以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.

下载安装sendEmail

1
2
3
4
5
# sendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本
tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了
cp sendEmail-v1.56/sendEmail /usr/local/bin/
chmod +x /usr/local/bin/sendEmail

安装组件

1
yum install perl-Net-SSLeay perl-IO-Socket-SSL


发送测试邮件

1
2
3
#  sendEmail -f a@domain.com -t test@qq.com \
     -s smtp.163.com -u "我是邮件主题" -o message-content-type=html \
     -o message-charset=utf8 -xu ttlsafrom@163.com -xp 123456 -m "我是邮件内容"

发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!


命令说明:

1
2
3
4
5
6
7
8
9
10
/usr/local/bin/sendEmail 命令主程序
-f ttlsafrom@163.com  发件人邮箱
-t test@qq.com        收件人邮箱
-s smtp.163.com       发件人邮箱的smtp服务器
-u "我是邮件主题"     邮件的标题
-o message-content-type=html   邮件内容的格式,html表示它是html格式
-o message-charset=utf8        邮件内容编码
-xu ttlsafrom@163.com          发件人邮箱的用户名
-xp 123456               发件人邮箱密码
-m "我是邮件内容"        邮件的具体内容


编写脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 进入zabbix自定义的指定目录
# 可以查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。
cd /usr/local/zabbix/share/zabbix/alertscripts/
-------------------------------
编辑脚本
vim sendEmail.sh
内容如下:
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail  -f a@domain.com -t "$to" -s smtp.exmail.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xua@domain.com -xppassword -m "$body"
  
说明:
上面有4个地方我用紫色加粗字体表示了
a@domain.com 表示发件人邮箱
smtp.exmail.qq.com 表示邮箱的smtp服务器,因为我是用的腾讯企业邮箱。如果是其他邮箱,需要修改
password 表示发件人邮箱
 
编辑完成后,给脚本权限
chmod +x  zabbix_sendEmail.sh
chown  -R zabbix.zabbix zabbix_sendEmail.sh


sendEmail使用命令帮助


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
43
44
[root@li229-122 scripts]# sendEmail --help
  
sendEmail-1.56 by Brandon Zehm < caspian @dotconf.net>
  
Synopsis:  sendEmail -f ADDRESS [options]
  
Required:
-f ADDRESS                from (sender) email address
* At least one recipient required via -t, -cc, or -bcc
* Message body required via -m, STDIN, or -o message-file=FILE
  
Common:
-t ADDRESS [ADDR ...]     to email address(es)
-u SUBJECT                message subject
-m MESSAGE                message body
-s SERVER[:PORT]          smtp mail relay, default is localhost:25
  
Optional:
-a   FILE [FILE ...]      file attachment(s)
-cc  ADDRESS [ADDR ...]   cc  email address(es)
-bcc ADDRESS [ADDR ...]   bcc email address(es)
-xu  USERNAME             username for SMTP authentication
-xp  PASSWORD             password for SMTP authentication
  
Paranormal:
-b BINDADDR[:PORT]        local host bind address
-l LOGFILE                log to the specified file
-v                        verbosity, use multiple times for greater effect
-q                        be quiet (i.e. no STDOUT output)
-o NAME=VALUE             advanced options, for details try: --help misc
-o message-content-type=< auto |text|html>
-o message-file=FILE         -o message-format=raw
-o message-header=HEADER     -o message-charset=CHARSET
-o reply-to=ADDRESS          -o timeout=SECONDS
-o username=USERNAME         -o password=PASSWORD
-o tls=< auto |yes|no>         -o fqdn=FQDN
  
Help:
--help                    the helpful overview you're reading now
--help addressing         explain addressing and related options
--help message            explain message body input and related options
--help networking         explain -s, -b, etc
--help output             explain logging and other output options
--help misc               explain -o options, TLS, SMTP auth, and more

在使用腾讯企业邮箱过程中,经常出现邮件发不出去的情况,返回以下报错:

Bash

Nov 03 14:39:58 localhost sendEmail[26222]: WARNING => The recipient <xxx@xxx.com> was rejected by the mail server, error follows:
Nov 03 14:39:58 localhost sendEmail[26222]: WARNING => smtp.exmail.qq.com:25 returned a zero byte response to our query.
Nov 03 14:39:58 localhost sendEmail[26222]: ERROR => Exiting. No recipients were accepted for delivery by the mail server.

网上还找不到具体原因,猜想可能是腾讯的安全认证级别太高,不加密的smtp转发被判定为垃圾邮件的原因吧。查看企业邮箱的帮助说明,smtp配置都是使用的465端口ssl加密。所以,我们使用sendEmail时候,需要使用tls加密,即再加上一个“ -o tls=yes ”的参数。而要使用tls,要先给系统安装相应的依赖组件:

Bash

# yum install -y perl perl-IO-Socket-SSL perl-Net-SSLeay

装完先发送一个测试邮件试试,OK了再更新到nagios command。


微信报警实现:https://www.abcdocker.com/abcdocker/2573

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1954419如需转载请自行联系原作者


qianghong000

相关文章
|
Linux 开发工具
Kali Linux配置阿里源
在配置Linux系统源前,建议先备份源列表。打开`/etc/apt/sources.list`,将原有官方源注释或删除,然后可以选择添加国内镜像源,如中科大、阿里云、清华大学、浙大或东软等源。确保每个源格式正确,以`deb`开头,`main non-free contrib`结尾。保存并退出(使用`:wq`或`:wq!`),之后运行`apt-get update`来下载新配置的源并验证是否成功。如果下载速度慢,可中断(`Ctrl+C`)后更换网络重试。
2353 0
|
5月前
|
存储 人工智能 JSON
传统OCR集体阵亡!Versatile-OCR-Program:开源多语言OCR工具,精准解析表格和数学公式等复杂结构
本文解析开源OCR工具Versatile-OCR-Program的技术实现,其基于多模态融合架构实现90%以上识别准确率,支持数学公式与图表的结构化输出,为教育资料数字化提供高效解决方案。
642 5
传统OCR集体阵亡!Versatile-OCR-Program:开源多语言OCR工具,精准解析表格和数学公式等复杂结构
|
7月前
|
人工智能 物联网 API
又又又上新啦!魔搭免费模型推理API支持DeepSeek-R1,Qwen2.5-VL,Flux.1 dev及Lora等
通过API接口进行标准化,能让开源模型以更加轻量和迅速的方式被开发者使用起来,并集成到不同的AI应用中。魔搭通过API-Inference,支持广大开发者无需本地的GPU和环境设置,就能轻松的依托不同开源模型的能力,展开富有创造力的尝试,与工具结合调用,来构建多种多样的AI应用原型。
702 7
|
6月前
|
PHP
WordPress微信公众号同步助手插件
该内容介绍了网站与微信公众号之间的文章同步功能,支持自动和手动两种方式。功能包括设置作者、封面、评论等,可将多篇文章合并同步或批量操作。特别提示:需确保微信公众号已认证以使用群发接口,且注意接口限制和资源文件格式要求。同时说明了从公众号同步至网站的限制及注意事项,如无法同步已群发文章等。更新记录显示新增了封面图片获取顺序设置。
476 0
|
8月前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
234 15
|
存储 安全 算法
Linux命令sha256sum详解
`sha256sum`是Linux中用于计算文件SHA-256哈希的命令,确保数据完整性。它基于安全哈希算法,产生不可逆的64字符哈希值,用于验证文件未被篡改。主要参数包括`-b`(二进制模式)、`-c`(检查校验和)、`-t`(文本模式)。应用示例包括计算单个文件哈希、校验文件哈希及批量处理多个文件。最佳实践包括定期验证文件、保存校验和文件和结合其他安全工具使用。
|
11月前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
运维 监控 安全
在Linux中,如何进行系统故障恢复?
在Linux中,如何进行系统故障恢复?
|
缓存 安全 Linux
本地YUM源大揭秘:搭建您自己的Linux软件宝库,从此告别网络依赖!一文掌握服务器自给自足的终极技能!
【8月更文挑战第13天】在Linux中,YUM是一款强大的软件包管理工具,可自动处理依赖关系。为适应离线或特定安全需求,本指南教你搭建本地YUM源。首先创建存放软件包的`localrepo`目录,复制`.rpm`文件至其中。接着,安装并运用`createrepo`生成仓库元数据。随后配置新的`.repo`文件指向该目录,并禁用GPG检查。最后,清理并重建YUM缓存,即可启用本地YUM源进行软件搜索与安装,适用于网络受限环境。
724 3