如何配置postfix邮件服务器

如何配置postfix邮件服务器,第1张

在安装邮件服务器之前先了解几个名词,以后会用到:

MUA:用户代理端,即用户使用的写信、收信客户端软件

MTA:邮件传送端,即常说的邮件服务器,用于转发、收取用户邮件。

MDA:邮件代理端,相当于MUA和MTA的中间人,可用于过滤垃圾邮件。

POP:邮局协议,用于MUA连接服务器收取用户邮件,通信端口110。

IMOP:互联网应用协议,功能较POP多,通信端口143。

SMTP:简单邮件传送协议,MUA连接MTA或MTA连接MTA发送邮件使用此协议,通信端口25。

本次配置MTA以Postfix为例,较sendmail简单、安全,且兼容于sendmail。

Postfi安装:

yum install postfix

yum remove sendmail

/etc/init.d/postfix start

Postfix主配置设定:

cat /etc/postfix/main.cf

myhostname = mail.haiyun.me #Mail服务器域名,EHLO名称。

mydomain = www.haiyun.me #

myorigin = $mydomain #发信地址,此设置显示为@www.haiyun.me。

inet_interfaces = all #如对外提供MTA服务设置为监听所有网卡,默认只监听本地。

inet_protocols = all #支持协议,可选IPV4/IPV6。

mydestination = $mydomain $myhostname #本地邮件域名,直接接收

mynetworks_style = subnet #允许转发的来源网段,可选subnet子网,class网段,host本机

mynetworks = 192.168.1.0/24,127.0.0.0/8 #允许转发的来源IP,设置后忽略mynetworks_style参数

relay_domains = $mydestination #允许转发的目标域

smtpd_banner = $myhostname ESMTP "Mail Server" #自定服务器信息

现Postfix允许接收或发送邮件的条件:

接收邮件:

目的地为$inet_interfaces的邮件;

目的地为$mydestination或$vitual_alias_maps的邮件。

转发邮件:

来源客户端符合$mynetworks的邮件;

来源或目的为$relay_domains的邮件。

配置邮件别名:

cat /etc/aliases

test:root,test@www.haiyun.me

别名:收件地址1,收件地址2

更新别名数据库:

newaliases

配置邮件转发:

cat ~/.forward

test@www.haiyun.me,test2@www.haiyun.me

设置SMTP密码验证,为防止MTA被滥用在postfix有配置信任网段,如在外网可使用smtp密码验证方式。

以系统用户密码方式认证,先启动saslauthd服务协助postfix进行系统密码验证:

/etc/init.d/saslauthd start

chkconfig saslauthd on

yum install cyrus-sasl-plain cyrus-sasl-md5 cyrus-sasl

确定SMTPD配置文件有以下内容:

cat /usr/lib/sasl2/smtpd.conf

pwcheck_method: saslauthd #saslauthd协助smtp进行密码验证

配置Postfix使用SASL验证,编辑main.cf配置文件添加:

smtpd_sasl_auth_enable = yes #开启SMTP验证

smtpd_sasl_security_options = noanonymous #不允许匿名用户

smtpd_recipient_restrictions = #接收者限制规则,按顺序执行

permit_mynetworks, #mynetworks用户通过,匹配结束

permit_sasl_authenticated, #sasl验证用户通过,匹配结束

reject_unknown_sender_domain, #拒绝无效的发送邮件域名

reject_unauth_destination #拒绝收件人非mydestination、relay_domains或virtual_alias_maps定义域邮件

测试SMTP验证是否生效:

telnet localhost 25

Trying ::1...

Connected to localhost.

Escape character is '^]'.

220 mail.domain.com ESMTP Postfix

ehlo localhost

250-mail.domain.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-AUTH LOGIN PLAIN #显示此信息代表验证正常

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

配置IMAP及POP:

yum -y install dovecot

编辑dovecot配置文件:

vim /etc/dovecot/dovecot.conf

protocols = imap pop3 #监听协议

login_trusted_networks = 127.0.0.1 #允许登录接收邮件的IP段

设置邮件目录:

cat /etc/dovecot/conf.d/10-mail.conf

mail_location = mbox:~/mail:INBOX=/var/mail/%u

新建Mail账号:

useradd -g mail -s /sbin/nologin user

启动dovecot服务:

/etc/init.d/dovecot start

  随着移动互联网的普及,邮件服务使用的场景越来越少。但是注册帐号的时候,还是需要邮箱地址。市面上免费的邮箱很多,不过一般需要绑定手机号,如果想在同一个邮箱服务商那注册多个邮箱帐号,需要准备多个手机号,这非常的烦人。接下来我们自己动手搭建邮件服务器吧。

  邮件服务器之间采用SMTP协议进行通信,如果我们的云服务器想要接受邮件,需要打开25这个端口,并允许访问25端口。

  邮件服务使用的特殊的DNS,需要进行配置。这里涉及到了两次映射,为了方便叙述,假设我的邮箱名字是: abc@example.com 。第一次映射通过添加MX记录类型,将邮箱@后面的主机映射到域名上,如下图所示,添加一个MX的记录类型。

第二次映射将上面的域名映射到我们云主机上的IP上,看过之前文章的朋友应该知道如何配置。

  我们将使用postfix作为邮件服务器,因为它的特殊设定,需要先检查云主机的hostname,将hostname设置为邮件服务器的主机名。

  安装postfix,执行下面的命令,弹窗会让你选择configuration和你的mail name

  安装完成之后,检查一下服务是否启动,如果没有启动,可以执行postfix start。

  邮件服务器搭建完毕,学习过计算机网络的同学应该知道,smtp只是邮件服务器之间的传输协议,读取邮件还需要pop3或者imap协议。所以如果还要读取邮件,还需要安装其他软件。需要说明的是:如果你的Ubuntu有user1的用户,那么邮件服务器就有 user1@example.com 的账户。

  接下来我们用qq邮箱给刚搭好的邮件服务器发送测试邮件,当在云服务器上执行mail的

时候,提示收到了新邮件,选择1就显示邮件的内容。

  细心的小伙伴可能已经发现了,邮件的内容是base64编码后的,并不能直接读取,这个时候执行以下decode,选择消息,就能进行解码啦

  postfix还能发送邮件,但是前提是云服务器25端口出的流量是开启的,可以在云服务器上自己进行测试,看端口25是不是通的。对于postfix发送邮件感兴趣的可以自行搜索资料哦~

  有了自建的邮件服务器,再也不用担心要多个手机号啦

如果你完全是内网,那就没戏,配置出来也发不出邮件。不完全的内网的意思是可以操控外网IP,需要在路由器上做一个端口转发,通常把25、110、465(SSL)、995(SSL)这些端口转发到你内网的主机IP上,当然这样内网的IP就要设成固定的。如果是ADSL通常都是采用花生壳软件来实现动态IP解析。 http://www.oray.cn,或者 http://www.3322.org比如你申请了一个 123.vicp.net 的动态域名,这样用花生壳软件实现它自动解析到你的动态IP。然后你有自己的域名如 abc.com,就需要把 abc.com的mx记录设置成 123.vicp.net,记住是abc.com的mx记录,而不是mail.abc.com的mx记录。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/114565.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-12
下一篇2023-03-12

发表评论

登录后才能评论

评论列表(0条)

    保存