写在前面
在部署完一个服务器之后,我们希望它如果有什么情况出现能向我们及时报告。比如磁盘空间满了,或者从一个固定的IP有太多次的无效登录请求导致这个IP被禁。
这个时候,我们就需要一个像是Sendmail或者个Postfix的MTA(Mail Transfer Agent) 邮件传输代理。这些都是真正的邮件服务器,它们的配置也还算简单。但是同样的,个人使用的时候还需要SSL证书。没有这些的话,还是很容易被滥用的。所以,很多的“官方”邮件服务器像是gmail或者outlook,会把这些邮件归到垃圾邮件里。而且这些像是postfix这样的MTA,功能很齐全。相比之下,有没有那种只管发送的邮件服务器呢?
比较简单的解决方案:sSMTP
其实sSMTP不是一个真正的MTA。它只是一个能把邮件从系统中取出来,并向配置好的邮件服务器转发的程序。所以这个程序的配置就比较简单。
我用的是gmail帐号,当然其他的帐号也可以。但是有一个前提,这个邮箱服务器得能用smtp访问,那个老的POP3这里不能用。
还是得注意一下,要是想用这个从服务器发邮件的话,最好重新申请一个,这样可以让你常用的邮件和这个通知邮件分开。而且,在后续的操作中我们会把这个邮箱的密码用明文保存在配置文件里。
安装和配置sSMTP
首先还是更新一下ubuntu的软件源还有升级已经安装的软件
&& apt-get upgrade
然后安装需要的程序。这里简单说一下ssmtp和mailutils的关系,
ssmtp相当于是一个邮件协议,mailutils是使用这个协议用来发邮件的程序。
apt-get install ssmtp mailutils
安装结束之后,打开下面的配置文件
nano /etc/ssmtp/ssmtp.conf
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=USER@gmail.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
# Where will the mail seem to come from?
rewriteDomain=gmail.com
# The full hostname
hostname=USER
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
AuthUser=MYUSER
AuthPass=MYPASSWORD
UseSTARTTLS=YES
这里出现的大写字母的地方,都需要填写你自己的邮件地址和密码。需要
SSL链接到smtp服务器的话,也要把UseSTARTTLS后面加上YES(大多数情况)。
那个hostname你可以在命令行里直接输入
hostname
就可以直接显示出来。
再修改另一个配置文件,就是你服务器的哪个用户可以发邮件。
# sSMTP aliases
发邮件试试看
echo "MAIL-CONTENT" | mail -s "SUBJECT" meine-mail-adresse@gmail.com
最后
这篇文章梳理了,如何在Ubuntu的服务器上安装邮件服务器并配置的方法。
按照上述方法是可以成功通过gmail发送邮件的。其他的邮箱服务器只要是支持smtp协议,都可以通过这种方法配置。
万一有什么错误的话,可以进入ubuntu的log文件下,查看mail.log来看究竟是什么原因没成功。
nano /var/log/mail.log
下面那张图是通过crontab定时发送邮件,每隔1分钟发一次邮件。但是出错了。。。还没搞懂怎么回事。。。