•  

【工具】Sendmail学习笔记

发表于 2019-04-22,阅读 51

介绍

介绍

福哥发现很多外国网站都要邮箱,去申请别人的邮箱需要提交好多资料,烦人啊!

最后决定自己搭建一个好了。

我用sendmail搭建我们自己的电子邮箱系统,用openwebmail搭建web管理界面。

安装

安装sendmail

sendmail是搭建电子邮箱系统的基础服务

yum -y install sendmail sendmail-cf m4

安装cyrus

cyrus是用来实现smtp认证的服务

yum -y install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl-lib

安装dovecot

yum -y install dovecot

安装perl环境

openwebmail是perl编写的,需要安装perl环境

yum -y install perl-TextIconv perl-CGI perl-CPAN perl-suidper perl-YAML

安装apache

既然是用来跑perl,那么用yum安装一个就可以了

yum install httpd

安装openwebmail

从官网下载最新版本

wget http://openwebmail.org/openwebmail/download/release/openwebmail-2.53.tar.gz

配置

配置sendmail

sendmail.mc

打开 /etc/mail/sendmail.mc

去掉以下内容前面的注释

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')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=0.0.0.0, Name=MTA')dnl

找到以下内容,替换成自己的域名,例如:abc.com

MASQUERADE_AS(`abc.com')dnl

去掉以下内容前面的注释

FEATURE(masquerade_envelope)dnl

去掉以下内容前面的注释

FEATURE(masquerade_entire_domain)dnl

找到以下内容,替换成自己的域名,例如:abc.com

MASQUERADE_DOMAIN(abc.com)dnl

在以下内容前面增加注释

dnl EXPOSED_USER(`root')dnl

通过mc文件生成cf文件

m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

access

打开 /etc/mail/access

在里面写上邮箱服务器的IP地址或者域名

test.tongfu.net                    RELAY

使用makemap生成db文件

makemap hash /etc/mail/access.db < /etc/mail/access

local-host-names

打开 /etc/mail/local-host-names

在里面写上邮箱服务器的域名

test.tongfu.net

重启sendmail

重启sendmail服务

systemctl restart sendmail

配置saslauthd

设置认证方式

打开 /etc/sysconfig/saslauthd

设置认证方式为shadow

MECH=shadow

重启saslauthd

重启saslauthd服务

systemctl restart saslauthd

配置dovecot

10-auth.conf

打开 /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

10-ssl.conf

打开 /etc/dovecot/conf.d/10-ssl.conf

把 ssl 设置为 yes

ssl = yes

10-mail.conf

打开 /etc/dovecot/conf.d/10-mail.conf

修改 mail_location

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

重启dovecot

重启dovecot服务

systemctl restart dovecot

自动创建INBOX目录

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 登录一下新用户才行。

配置openwebmail

建立web目录

福哥建立了一个openwebmail目录

mkdir -p /tongfu.net/web/openwebmail

复制openwebmail

把压缩包里的文件解压缩到openwebmail目录下

tar -xzvf  openwebmail-2.53.tar.gz -C /tongfu.net/web/openwebmail/

设置apache目录

设置/etc/httpd/conf/httpd.conf文件的Directory的路径

#
# Relax access to content within /var/www.
#
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>


自动启动

设置sendmail,saslauthd,dovecot的自动启动

systemctl enable sendmail
systemctl enable saslauthd
systemctl enable dovecot


鬼谷子叔叔
  • 日志:212
  • 回复:13

进入ta的主页