从学校拿毕业证回来就是连续的出差,在海南一个月,上午回北京,下午就又去呼市出差,不过这次来呼市收获还是不小的。
好了闲话不多说了,开始部署一个基本的postfix(注明是不带smtp验证的,因为只是作为发送服务器,而且在内网)
我用的是 postfix-2.6.5。
1:安装postfix,若是欲向外网发送邮件,例如163 sina等,必要前提是所在服务器的dns可以正确的解析公网的域名,所以需要在/etc/resolv.conf 中增加:nameserver IP地址(dns服务器地址),配置完后测试一下是否能解析公网域名,ping 百度之类的域名。
2:在temp 下解压postfix-2.6.5.tar.gz 对应命令:tar zxvf postfix-2.6.5.tar.gz
3:进入解压文件夹的目录 对应命令:cd postfix-2.6.5/
4:将解压的文件编译 对应命令:make
5:添加一个用户,设定该用户不可登录 命令如下:useradd -s /sbin/nologin -d /dev/null postfix
6:用户组添加 命令如下:groupadd postdrop
7:开始安装 命令如下:make install
8:安装的 最后一步选择postdrop
好了,现在一个基本的postfix已经安装完成了,在这个服务器下测试一下看看是否安装成功呢?
用mail 命令发送一个邮件吧:
1:输入mail 回车
2:在&后面输入一个m+空格 发送的目标地址email 然后回车
3:输入subject 回车 输入正文
4:输入完成,输入. 回车输入q
好了邮件发送了,起看一下你得邮件队列 mailq 看看是否发送呢,若没有发送成功,可以在/var/log/maillog 查看日志。
但是部署时候因为不熟悉,所以遇到好多问题,现在一一列出
1:nslookup 一直无法解析 用nslookup 回车 server dns 回车 域名 不同,最后发现一个网络端口没开通,记得似乎53端口,telnet都没办法,开通后就可以了。
2:部署完成之后在服务器上可以发送邮件,但我是在其他的服务器上来调用这个内网,开始时候一直调用不通,在邮件服务器上 telnet 127.0.0.1 25 没问题,但是telnet ip 25 就不行,最后发现网友也有这个问题,在/etc/postfix下找到main.cf,打开,找到inet_interfaces = all,把前面的注释去掉,默认是inet_interfaces = localhost,然后保存,重启postfix,就可以了。
3:开始时用postfix reload重启还不管用,后来用service postfix restart重启就OK 不知道为何。
4:在邮件服务器上 telnet ip 25 OK了,但是在其他服务器上来调用邮件服务器还是telnet 不通,解决办法有两个,第一个是将25端口对外开放,在一个就是关闭邮件服务器的防火墙,关闭命令如下
service iptables status 查看iptables状态
service iptables restart iptables服务重启
service iptables stop iptables服务禁用
service iptables restart iptables服务重启
service iptables stop iptables服务禁用
5:现在在别的服务器可以telnet 25端口了,那么现在这个服务器来用smtp命令发送一封邮件吧:命令如下
telnet ip 25
helo 邮件域名(163.com。。。)
ehlo 邮件域名(163.com。。。)
若是需要smtp验证 则输入 auth login 然后输入base64编码的 用户名 然后是编码后的密码
若是不需要验证 则直接mail from:<邮箱>
rcpt to:<邮箱>
初始化数据 data
输入主题和内容输入.结束
发送完成
6:若是看maillog 某个ip一直拒绝,在你了解这个ip的前提下 可以把他加到main.cf 中的mynetwork 下面。
完了,就是这个。javamail要调用直接调用就可以了不需要密码什么东西的,smtp server写成 ip 25就OK了。
虽然只是短短几百的字,但是由于我对linux和网络环境的不熟悉,导致部署遇到很多问题,但最终都一一解决了,我很欣慰,希望这篇文章对想我一样的新手有所帮助。