Linux作为首屈一指的服务器级别的操作系统,邮件系统的使用非常简单(一行命令),虽然网上已经有很多Shell发邮件的文章帖子足够参考使用,例如这一篇写的比较翔实,http://blog.csdn.net/kevinew/article/details/9147951,本文基本上也是按其过程操作,这里自己再写一遍是为了以自己的方式总结和学习。
①安装所需软件包
RPM式系统(Redhat、CentOS):
yum install -y sendmail yum install -y sharutils wget ftp://ftp.gnu.org/gnu/mailutils/mailutils-2.2.tar.gz tar -xzf mailutils-2.2.tar.gz cd mailutils-2.2 ; ls ./configure make && make install
DEB式系统(Debian、Ubuntu):
apt-get install sendmail apt-get install mailutils apt-get install sharutils
②简单说明
DEB系统的apt提供了完整的源,可以直接简单安装;RPM系统中“mailutils”包需要手动下载源码编译安装。“sendmail”提供本地邮件配置和服务管理,“mailutils”提供各种格式和通信协议的邮件支持,“sharutils”提供附件传输。
Ubuntu安装完成后邮件服务(“sendmail”)默认已经启动了,CentOS则可能需要手动启动服务。可以通过查看进程列表确认是否需要手动启动服务。
ps aux | grep sendmail service sendmail start
“sendmail”默认配置是支持本地邮件服务,要打开外网通信,需要修改一下配置文件“/etc/mail/sendmail.mc”,找到“127.0.0.1”,修改为“0.0.0.0”。
③发件示例
Ubuntu上进行完上面的安装和配置操作以后,就可以直接发送(外部)邮件了,如下所示是一些终端发送命令示例。
普通邮件 echo 邮件正文 | mail -s 邮件主题 -t 收件人 例:echo -e "我是一棵葱\n你是一颗蒜" | mail -s Hello -t …………@…….com 邮件内容来自文件 mail -s subject -t …………@…….com < file 例:mail -s Hello -t …………@…….com < 葱与蒜.txt 附件邮件 uuencode 原文件名 文件附件名 | mail -s subject -t …………@…….com 例:uuencode 葱与蒜.txt 葱与蒜.txt | mail -s subject -t …………@…….com 一个完整例子: (echo -e "我是一棵葱\n" ; echo "你是一颗蒜" ; uuencode 葱.txt 葱.txt ; uuencode 蒜.txt 蒜.txt) | \ mail -s "Hello Gay" -t …………@163.com, …………@qq.com
④配置CentOS发送外部邮件
CentOS上面发送邮件的具体操作命令基本如上,但发送外部邮件需要进行配置第三方mail服务。以下以网易163邮箱服务为例说明。
A.编辑“ /etc/mail.rc ”文件加上一个自己的邮箱账户(替换掉大写部分):
set from=YOUR_POST@163.com
set smtp=smtp.163.com
set smtp-auth-user=YOUR_USERNAME
set smtp-auth-password=YOUR_PASSWORD
set smtp-auth-loginB.重启邮件服务
service sendmail restart
C.设置第三方邮件开启“ pop3/smtp ”服务
在客户端或者网页登录该账户,在邮件设置中找到该选项勾选开启即可。
⑤Python发邮件脚本传送门
作为脚本语言,Python也可以非常方便的进行发邮件,参考:http://blog.csdn.net/sweeper_freedoman/article/details/52780310。