在使用linux服务器的过程中,我希望某个任务完成后,系统会自动发邮件告诉我。这就需要用到发送邮件的功能。
网络上搜索了一下,一般的linux系统都已经安装了邮件服务程序sendmail(但不一定是开启的状态),但这个程序很麻烦。我觉得它至少有两个问题:
配置比较复杂,至少我觉得很头大;
似乎是需要root权限的,而我只是一般用户。
所以,我就希望能够有更加简单的方式能够发送邮件。终于被我找到了,那就是使用sendEmail。注意啦,这里跟sendmail是不同的!
1. sendEmail简介
sendEmail是由网友发布的Brandon Zehm 一个轻量级的邮件发送程序。由于这个程序是基于perl语言开发的,因此也就省去了很多配置安装的麻烦。几乎说只要下载下来,就可以使用了。
2. sendEmail下载安装
在线下载:
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
$ tar -zxvf sendEmail-v1.56.tar.gz
$ cd sendEmail-v1.56
$ chmod +x sendEmail
可以看到其实并没有安装,只是解压后给程序设置了可执行的权限而已。
如果你希望在任何目录下都能够使用sendEmail程序,那么只需要添加到你的bin目录下就可以了。
$ cd ~/bin
$ ln -s ~/src/sendEmail-v1.56/sendEmail ./
3. sendEmail参数
直接运行sendEmail就会显示帮助信息,下面简单介绍几个可能用到的参数。
-f 表示from,发件人地址
-t 表示to,收件人地址
-s mail服务器域名
-u 主题
-xu 用户名(@之前的部分)
-xp 用户密码
-m 纯文本信息
-l 写入日志文件
-o message-file=/root/.. 发送文件中的内容
-a 发送附件 (-m,-o,-a可以同时使用)
4. sendEmail举例
我要以163作为发送邮箱,qq作为接收邮箱,具体使用如下。
sendEmail -f "FROM_MAIL@163.com" -t "TO_MAIL@qq.com" -s "smtp.163.com" -xu "FROM_MAIL" -xp "YOUR_CODE" -u "YOUR_TITLE" -m "YOUR_MESSAGE" -a "YOUR_ATTACH"
你只需要将上面的邮箱、账号、密码啥的换成你自己的就可以了。发送成功后,就会显示类似如下的信息:
Apr 10 10:09:16 blog sendEmail[8861]: Email was sent successfully!
邮件发送出去几乎是即时的,命令刚执行,邮箱就收到邮件通知了。
最后,52souji.net网建议你发送邮箱选择163,因为我个人在使用qq时未能成功。看网上上说gmail也有些问题。