前言:
最近写一个管理系统需要用到发送邮件的功能,曾经在javamail中使用过163的smtp服务,但是邮件要么被当成垃圾邮件,要么就是无法在一天之内发送超过20封,四天前我再次使用javamail时,发现我的163账号被冻结,允许我在厕所哭一会儿。然后换了qq的smtp服务,开启服务还需收短信费用,以为花了钱可以弄好,结果又发现,javamail和腾讯的smtp握手失败,已哭晕在厕所。最后忍无可忍只好自己搭一个邮件服务器。
牢骚发完了,开始进入主题,我使用的是centos6.5系统,以及和postfix邮件服务器,postfix邮件服务器的搭建需要使用到cyrus-sasl、postfix、dovecot,具体他们的功能我不在这里阐述,毕竟网上一大堆。
一、cyrus-sasl安装与配置
yum -y install cyrus-sasl
与jdk安装一样最好查看他的版本,如果有版本提示则就证明安装成功。
/usr/sbin/saslauthd -v
之后需要修改saslauthd文件,选择使用shadow方式认证。(温馨提示:可以在Linux中使用/word去查找单词,如下面的MECH=shadow可以输入/MECH=查找)
vim /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
MECH=shadow
FLAGS=
修改smtpd.conf
vim /etc/sasl2/smtpd.conf
添加如下代码
pwcheck_method: saslauthd
mech_list: plain login
log_level: 3
saslauthd_path:/var/run/saslauthd/mux
测试cyrus-sasl
创建系统用户root,并修改其密码,测试cyrus-sasl,如下:
useradd root &&echo 'rootmail'| passwd --stdin root
su - root
mkdir -p ~/mail/.imap/INBOX
启动cyrus-sasl
/etc/init.d/saslauthd start
chkconfig saslauthd on
现在来使用刚刚创建的用户进行认证测试,如下:
testsaslauthd -u root-p 'rootmail'
如果出现OK "Success"代表启动成功,否则请严格检查配置文件。
二、postfix安装与基本配置
yum -y install postfix
查看他的版本与配置
postconf -d | grep mail_version
修改main.cf文件
vim /etc/postfix/main.cf
并添加如下代码
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.XXX.com(这里是写你的服务器的域名前加上一个前缀,一般我们都喜欢用mail,域名必须可访问)
mydomain = XXX.com(这里是写你的服务器的域名,域名必须可访问)
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, local