首先,得明白发送一封邮件的流程,下面一段理论摘抄自廖雪峰的官网网站https://www.liaoxuefeng.com/article/00137387674890099a71c0400504765b89a5fac65728976000
"""
我们通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。
MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA的角色。
一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。
一旦邮件到达邮箱,就原地不动了,等用户再通过MUA将其取走,就是用Outlook,Foxmail等软件收信的过程。
所以一封邮件的流程是:
发件人:MUA --发送--> MTA -> 若干个MTA... -> MTA -> MDA <--收取-- MUA:收件人
MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议,而收邮件时,MUA到MDA之间使用的协议最常用的是POP3或IMAP。
需要注意的是,专业邮件服务商都有大量的机器来为用户服务,所以通常MTA和MDA并不是同一台服务器,因此,在Outlook等软件里,我们需要分别填写SMTP发送服务器的地址和POP3接收服务器的地址。
"""
同样对发邮件流程介绍的很清楚的还有这篇博文:https://www.cnblogs.com/DLHe/p/8457393.html
由上面可知,通常我们所熟悉的Outlook、Foxmail等是邮件客户端,提供了MUA的功能;而一些Email服务提供商,如网易、QQ等,则提供了MTA的功能。
必须弄清楚的一点是,本次部署的msmtp+mutt其实是类似于Foxmail那样的MUA邮件客户端,只不过它是在linux上运行的。而如果在linux上部署的是sendmail或者postfix,那才是邮件服务器,起到的是MTA的功能。
接下来是实施步骤。
实测成功的部署环境:RHEL6.5和CentOS6.5,当然了,机器得能联网。
msmtp是一个SMTP客户端,可将邮件发送至SMTP服务端,官网地址为http://msmtp.sourceforge.net/index.html 。
1.下载msmtp文件
cd /usr/local/src
wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download
2.解压文件
tar jxvf msmtp-1.4.32.tar.bz2
3.进入到解压的文件内,然后就是典型的源码安装的3个步骤./configure,make和make install
3.1执行./configure,生成 Makefile,为下一步的编译做准备,--prefix=后面接的是想要将msmtp安装到的路径,跟当前mstmp源码所在目录无关
cd msmtp-1.4.32./configure --prefix=/usr/local/msmtp
3.2 make && make install,编译并安装,这两步也可以分开执行
4. 在安装目录/usr/local/msmtp/下新建etc目录,并在etc目录下创建msmtp文件,该文件用于配置邮件发送的一些基本信息。
mkdir p /usr/local/msmtp/etcvim /usr/local/msmtp/etc/msmtprc#添加如下内容:account default host smtp.163.com port 25from xxx@163.com //按照实际情况填写真实的163邮箱auth logintls offuser xxx //邮箱用户名,是xxx而不是xxx@163.com password xxx //需要注意的是这里的密码有可能是授权码,比如163邮箱的话这里就必须填授权码,如下图 logfile /var/log/mmlog
新闻热点
疑难解答