linux系统下如何发送邮件

在使用linux服务器的过程中,我希望某个任务完成后,系统会自动发邮件告诉我。这就需要用到发送邮件的功能。

网络上搜索了一下,一般的linux系统都已经安装了邮件服务程序sendmail(但不一定是开启的状态),但这个程序很麻烦。我觉得它至少有两个问题:

  • 配置比较复杂,至少我觉得很头大;
  • 似乎是需要root权限的,而我只是一般用户。
所以,我就希望能够有更加简单的方式能够发送邮件。终于被我找到了,那就是使用sendEmail。注意啦,这里跟sendmail是不同的!

1. sendEmail简介

sendEmail是由网友发布的Brandon Zehm <caspian@dotconf.net> 一个轻量级的邮件发送程序。由于这个程序是基于perl语言开发的,因此也就省去了很多配置安装的麻烦。几乎说只要下载下来,就可以使用了。

了解更多,可以访问源地址:http://caspian.dotconf.net/menu/Software/SendEmail/

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也有些问题。

标签: linux

相关文章推荐

添加新评论 (无需注册,可直接评论)