福哥发现很多网站都要通过邮箱来注册账号,去申请别人的邮箱需要提交好多资料,烦人啊!最后福哥决定自己搭建一个邮箱服务器好了。
福哥用sendmail搭建自己的电子邮箱系统,sendmail是linux操作系统的软件,所以服务器选用的是centos7。
sendmail是搭建电子邮箱系统的基础服务
yum -y install sendmail sendmail-cf m4
cyrus是用来实现smtp认证的服务
yum -y install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl-lib
yum -y install dovecot
openwebmail是perl编写的,需要安装perl环境
yum -y install perl-TextIconv perl-CGI perl-CPAN perl-suidper perl-YAML
既然是用来跑perl,那么用yum安装一个就可以了
yum install httpd
从官网下载最新版本
wget http://openwebmail.org/openwebmail/download/release/openwebmail-2.53.tar.gz
打开 /etc/mail/sendmail.mc
去掉以下内容前面的注释(“dnl ”)
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
找到以下内容,把127.0.0.1改成0.0.0.0
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
找到以下内容,去掉前面的注释(“dnl ”),将域名mydomain.com替换成自己的,例如:abc.com
dnl MASQUERADE_AS(`mydomain.com')dnl
去掉以下内容前面的注释(“dnl ”)
dnl FEATURE(masquerade_envelope)dnl
去掉以下内容前面的注释(“dnl ”)
dnl FEATURE(masquerade_entire_domain)dnl
找到以下内容,去掉前面的注释(“dnl ”),将域名localhost替换成自己的,例如:abc.com
dnl MASQUERADE_DOMAIN(localhost)dnl
在以下内容前面增加注释(“dnl ”)
EXPOSED_USER(`root')dnl
通过mc文件生成cf文件
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
打开 /etc/mail/access
在里面写上邮箱服务器的IP地址或者域名
test.tongfu.net RELAY
使用makemap生成db文件
makemap hash /etc/mail/access.db < /etc/mail/access
打开 /etc/mail/local-host-names
在里面写上邮箱服务器的域名
test.tongfu.net
重启sendmail服务
systemctl restart sendmail
打开 /etc/sysconfig/saslauthd
设置认证方式为shadow
MECH=shadow
重启saslauthd服务
systemctl restart saslauthd
打开 /etc/dovecot/conf.d/10-auth.conf
把 disable_plaintext_auth 设置为 no
disable_plaintext_auth = no
找到以下内容,设置邮箱域名,例如:abc.com
auth_realms = abc.com
找到以下内容,设置邮箱域名,例如:abc.com
auth_default_realm = abc.com
找到以下内容,设置成 %n
auth_username_format = %n
打开 /etc/dovecot/conf.d/10-ssl.conf
把 ssl 设置为 yes
ssl = yes
打开 /etc/dovecot/conf.d/10-mail.conf
修改 mail_location
mail_location = mbox:~/mail:INBOX=/var/mail/%n
重启dovecot服务
systemctl restart dovecot
dovecot需要在用户目录下创建INBOX目录,我们可以通过修改模板用户skel的.bashrc文件来做这个事情
打开 /etc/skel/.bashrc
在里面添加代码
# Create mail directory if [ ! -d ~/mail/.imap/INBOX ] ; then mkdir -p ~/mail/.imap/INBOX fi
这样新创建的用户登录的时候就会自动创建INBOX目录了
福哥发现在使用 useradd 创建用户后,即使通过客户端连接 pop3 服务器,INBOX目录也不会自动创建。需要在服务器上通过 su 登录新用户手动创建才行。
设置sendmail,saslauthd,dovecot的自动启动
systemctl enable sendmail systemctl enable saslauthd systemctl enable dovecot
通过foxmail配置一下
随便写了一封邮件,发出去吧
点击收取就可以收到刚刚发送的邮件了
今天福哥带着大家学会了如何通过sendmail在linux系统上面搭建自己的邮箱服务器。
需要注意的是想要自己的邮箱服务器可以使用需要满足如下几点要求:
我们的邮箱服务器必须有公网IP地址,一般情况下就是通过主机托管或者购买云主机方式获得
我们必须拥有一个域名,可以不是顶级域名,但是需要有管理权限
我们必须有权为域名添加MX记录,这个一般情况下是需要到域名注册商的后台去操作的