这次的歌是《春待ちクローバー》,《One Room》里的花坂结衣角色曲。
严格说起来这已经不算从零开始了,毕竟之前有建站的基础。不过架设邮件服务器对我来说,还是全新的尝试。
首先,我需要设置合法的DNS解析。假设域名为liver.cf,服务器地址为8.7.198.45,希望邮箱地址是[email protected],一般就要首先指定一台邮件服务器,添加以下记录:
mail A 8.7.198.45
@ MX mail.liver.cf
mail TXT v=spf1 IP4:8.7.198.45 ~all
这几条记录的作用如下:
MX 记录
这是为邮件服务器专门设计的,用于指定负责处理发往收件人域名的邮件服务器,简单邮件传输协议(SMTP)会根据 MX 记录的值来决定邮件的路由过程。
比如用 Gmail 往 163 发邮件,因为不是一个域的,在“转发”的过程中需要根据收信人地址(@163.com)查找 DNS 以确定对方域的 IP ,这样才能正确的投递
A 记录
这个是为了免登陆的,正常情况下,我们发邮件需要登陆自己的账户,那么 Gmail 往 163 进行“转发”也是在发邮件,这个过程显然不可能也要进行登陆,这就用到了 A 记录
Gmail 转发邮件时通过 ehlo 打招呼的时候表明自己的邮件服务器域,也就是类似 mail.gmail.com 这样的,就是指向发邮件的服务器;
对方(163)收到后进行确认,拿着这个地址查 DNS,找出对应的 IP,然后核对发送人是不是这个 IP,这样就可以确认发送人是服务器而不是个人用户,就不需要登陆了
TXT 记录
这是为了防范垃圾邮件而提出来的DNS记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址按照SPF的格式在DNS记录中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。
接着要了解有关邮件服务的几个关键词:
MUA:用户代理端,即用户使用的写信、收信客户端软件
MTA:邮件传送端,即常说的邮件服务器,用于转发、收取用户邮件。
MDA:邮件代理端,相当于MUA和MTA的中间人,可用于过滤垃圾邮件。
POP:邮局协议,用于MUA连接服务器收取用户邮件,通信端口110。
IMOP:互联网应用协议,功能较POP多,通信端口143。
SMTP:简单邮件传送协议,MUA连接MTA或MTA连接MTA发送邮件使用此协议,通信端口25。
接下来是选择邮件服务软件,centos默认自带的sendmail配置太难了,我选择使用常用的postfix+dovecot组合。
然后就开始架设。环境为CentOS 6 x64 768MB RAM 15GB HDD的小VPS。
首先删除sendmail
#yum remove sendmail
安装postfix
#yum install postfix
# 75行: 取消注释,设置mail主机名,此项需要添加A记录并指向postfix所在主机公网I
myhostname = mail.liver.cf
# 83行: 取消注释,设置域名
mydomain = liver.cf
# 99行: 设置postfix邮箱的域名后缀为$mydomain(@liver.cf)
myorigin = $mydomain
# 116行: 默认值为all 即监听所有网络接口,若注释或填入公网ip,服务器的25端口将对公网开放。换句话说,填什么IP,postfix就会在那个IP上监听。如果指定localhost,本机postfix就只能发邮件不能接收邮件
inet_interfaces = all
# 119行: 指定网络协议,推荐ipv4,如果支持ipv6,则可以为all
inet_protocols = all
# 164行: 指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。此项配置中$myhostname表示postfix接受@$myhostname为后缀的邮箱的邮件 逗号分割支持指多项,此项默认值使用myhostname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 264行: 取消注释,指定内网和本地的IP地址(范围)
mynetworks = 127.0.0.01,8.7.198.45
# 419行: 取消注释,邮件保存目录
home_mailbox = Maildir/
# 571行: 指定MUA通过smtp连接postfix时返回的header头信息,原始配置附带有postfix版本号 去掉即可,此项酌情处理
smtpd_banner = $myhostname ESMTP
# 添加到最后
# 规定邮件最大尺寸为10M
message_size_limit = 10485760
# 规定收件箱最大容量为1G
mailbox_size_limit = 1073741824
# SMTP认证
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
之后就可以启动postfix了
#/etc/rc.d/init.d/postfix start
还可以设置postfix开机自启
#chkconfig postfix on
然后编辑dovecot.conf
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
#端口143:imap客户端用来接收邮件的。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
#端口465:smtp的加密端口用来发送邮件的(SSL/TLS协议)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
#端口587:smtp的加密端口用来发送邮件的(STARTTLS协议)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT
#端口993:imap的加密端口用来接收邮件的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
Comments NOTHING