个人邮件服务搭建详解

在网络上我们经常看到一些网站使用自己的域名邮箱,方案一:使用企业邮箱,但企业邮箱有诸多限制,例如:磁盘大小限制,用户账号限制,发送内容限制,发送频率限制等等.因此我们使用自己的域名和服务器搭建邮件服务

本文包括四个方面内容,其一,邮件系统扫盲;其二,介绍centos上通用邮件服务器搭建流程,从最基础组件postfix、dovecot入手;其三,使用iRedMail软件快速搭建一个支持SMTP、POP3、IMAP等协议,提供WebMail和Web管理界面的邮件系统;其四,使用宝塔系统里的宝塔邮局超快速搭建邮箱服务

从实用角度来说,使用宝塔最省心。其实都是一层套一层的,本质上基础组件都是一样的

一顿操作猛如虎,云服务器全部都封禁了25端口,所以,我们是发不成邮件了.阿里给出了两种方案,第一个阿里企业邮箱;第二个阿里云邮件推送服务。

邮件系统介绍

角色

MUA:邮件用户代理,一般被称为邮件客户端软件,负责为用户提供发送、接收和管理电子邮件的界面。例如Outlook、Outlook Express、Foxmail等

MTA:邮件传输代理,一般被称为邮件服务器软件,负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分。例如Exchange、 Postfix都属于MTA类软件

MDA:邮件分发代理,负责在服务器中将邮件分发到用户的邮箱目录(默认情况下是/var/spool/mail/user),它并不直接面向邮件用户,而是在后台默默的工作。有时候MDA的功能可以直接集成在MTA软件中,因此经常被忽略。

20220428003132

协议

协议就是定义规则,这里是邮件协议,定义邮件收发的规则,了解规则有助于理解软件的配置文件。 邮件发送协议 SMTP(Simple Mail Transfer Protocol),打开端口 25。 邮件收取协议 POP,打开端口 110;还有个常用邮件收取协议 IMOP,打开端口 143。 如果你地服务器25端口出不去,那么你发送不了邮件。你可以收邮件 之所以这么说,是因为云服务商,默认把你服务器25端口出口封掉了!你要申请解封

服务

邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。此外还需要提供登录验证服务

Postfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器。上面说的邮件客户端将邮件扔给它,由它对邮件进行转发,至于怎么转发,SMTP 协议制定了规则,而 Postfix 负责具体事情,我们只需要修改 Postfix 配置文件要求它按照我们的想法去做。

Dovecot 实现了 POP 和 IMOP 协议,也叫做邮件收取服务器。如果只搭建了 Postfix 而没有它,不好意思,你是收不到邮件的。

Sasl 登陆验证服务,Postfix 作为邮件发送服务器,不能无限制的转发任意邮件,应当只转发它信任的发件人发送的邮件,这一点体现在 Postfix 的配置文件要配置它认为安全的主机(mynetworks 参数)。但这样会显得很麻烦,Sasl 通过其它方式也可以帮助 Postfix 完成信任邮件的认证。

域名解析设置

要使用邮件服务必须要有一个自己的域名,还需要通过备案审核,可以去阿里云-万网购买 最便宜的域名一年只需要几十块钱。还可以有免费的SSL证书

购买后 需要增加两个解析 一个@ 一个mail 分别解析到自己的服务器上

使用以下命令为您的服务器设置一个完全限定的域名 (FQDN)

该处domain就是第二步购买的域名

hostnamectl set-hostname mail.domain.com

同时需要调整hosts文件/etc/hosts,增加内容127.0.0.1 mail.domain.com localhost

基础组件搭建

软件安装

yum -y install postfix dovecot  cyrus-sasl #安装服务端软件
yum -y install telnet-server telnet #安装telnet客户端

postfix系统提供了 postconf 工具可以用来辅助配置 执行 postconf ,查看当前的有效配置,如 postconf "inet_interfaces" 执行 postconf -n ,查看非默认配置 执行 postconf -d ,查看默认配置 执行postconf -e ,修改自定义设置,如 postconf -e "inet_interfaces = all"

软件配置

postfix:/etc/postfix/main.cf

生成一份全新的配置

cd /etc/postfix
postconf -n > main2.cf
mv main.cf main.cf.bak
mv main2.cf main.cf

自定义配置如下

#设置postfix服务监听的IP地址,设置为all表示监听所有IP
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man

#设置postfix服务器使用的邮件域名
mydomain = mail.domain.top
#设置postfix服务器使用的主机名
myhostname = mail.domain.top
#外发邮件时发件人地址中的邮件域名, 指明发件人所在的域名
myorigin = $myhostname
#允许投递到本地的邮件域名,可接收邮件的主机名或域名
mydestination = $myhostname, $mydomain
#允许不验证的网段,根据情况添加 局域网段,环回段
#这些地址和网络可以通过此MTA转发邮件至任何地方,无需进一步身份验证
mynetworks = 192.168.0.0/24,127.0.0.0/8
#设置邮件存储格式
home_mailbox = Maildir/

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

dovecot:/etc/dovecot/dovecot.conf

#修改以下配置
protocols = imap pop3 lmtp
#指定允许登录的网段地址
#login_trusted_networks = 192.168.0.0/24
listen = *, ::
!include conf.d/10-auth.conf
#ssl = no/yes
disable_plaintext_auth = no
mail_location = maildir:~/Maildir

cyrus-sasl:/etc/sasl2/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
log_level:3

sysconfig:/etc/sysconfig/saslauthd

MECH=shadow #本地用户认证

启动和测试

yum -y install postfix dovecot  cyrus-sasl #安装服务端软件
yum -y install telnet-server telnet #安装telnet客户端

postfix check #修改保存后检查配置文件是否有错

systemctl start postfix #开启postfix服务,CentOS6用service postfix start
systemctl enable postfix #设置postfix服务开机启动,CentOS6用chkconfig postfix on

systemctl start dovecot #CentOS6用service dovecot start
systemctl enable dovecot #CentOS6用chkconfig dovecot on

systemctl start saslauthd #CentOS6用service saslauthd start
systemctl enable saslauthd #CentOS6用chkconfig saslauthd on

telnet localhost 25 #测试发送
telnet localhost 110 #登录邮箱 测试收信

iredmail 搭建

iRedMail 不支持SELinux,所以需要在/etc/selinux/config文件里禁用它,将其参数改为disabled即可

找到一个合适的文件夹 然后远程下载服务包,这里使用1.5.2版本

wget https://github.com/iredmail/iRedMail/archive/iRedMail-1.5.2.tar.gz
tar -zxvf iRedMail-1.5.2.tar.gz
cd iRedMail-1.4.0/
chmod +x iRedMail.sh
./iRedMail.sh

然后一路安装确认,然后输入一个邮件域名。在此处输入刚买的域名 domain.com 不带子域。不要在域名后按空格键,有可能会导致安装失败。然后这里需要输入管理员账号密码,同样找个不太简单的就行了

宝塔邮局搭建

打开selinux配置文件/etc/selinux/config,将内容里面的SELINUX=enforcing改为SELINUX=disabled

再宝塔的软件商店里搜索邮局,有提示你怎么做

同样需要你的服务器支持25端口