这里是Ubuntu14.04 Server环境。

Ubuntu可以使用mailsendmail来发送邮件,这里使用sendmail

一、安装

安装很容易,直接apt-get
sudo apt-get install sendmail
sudo apt-get install sendmail-cf

还有几个可选包:

squirrelmail  # 提供webmail
spamassassin  # 提供邮件过滤
mailman  # 提供邮件列表支持
dovecot  # 提供IMAP和POP接收邮件服务器守护进程

测试是否安装成功:
ps aux |grep sendmail

如果出现类似:

root     14264  0.0  0.5 100700  2788 ?        Ss   14:43   0:00 sendmail: MTA: accepting connections
root     14602  0.0  0.1  11740   940 pts/1    S+   15:29   0:00 grep --color=auto sendmail

sendmail安装成功。

二、配置

sendmail默认是本机用户发送给本机,所以需要修改可以发送到整个Internet:

修改sendmail配置宏文件,路径为/etc/mail/sendmail.mc

找到:

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl

Addr=127.0.0.1修改为Addr=0.0.0.0,意思是可以连接到任何服务器。

保存修改的文件,下面备份配置文件:
cd /etc/mail
mv sendmail.cf sendmail.cf~

然后生成新的配置文件:
m4 sendmail.mc > sendmail.cf

接下来修改hosts文件,路径为/etc/hosts

原内容大概为:

127.0.1.1 name name
127.0.0.1 localhost

修改为:

127.0.0.1 yourdomain.com localhost name

保存并关闭文件。

三、测试能否正常运行

输入如下命令:
telnet 127.0.0.1 25

会得到:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mysite ESMTP Sendmail 8.14.4/8.14.4/Debian-4.1ubuntu1; Sat, 9 May 2015 15:38:45 +0800; (No UCE/UBE) logging access from: yourdomain.com(OK)-yourdomain.com [127.0.0.1]

则表明工作正常。

注意在防火墙中打开25号端口!

四、测试发送邮件

输入如下命令:
sendmail -t <<EOF

会出现>符号,输入下面格式的内容(每行后面回车):

From:Mail test <test@yourdomain.com>
To:xxxx@163.com
Subject:邮件测试
测试test
EOF

收到的邮件会是这样子:
sendmail.png