PostfixAdmin 安装部署
邮件发送
- 用户登录[email protected],在本地邮件客户端(MUA,如Thunderbird)中编写邮件,通过SMTP协议发送到邮件服务器(MTA,如Postfix)a.com
- 发件人邮件服务器DNS解析目标邮件服务器地址,通过SMTP协议发送邮件到b.com
- 目标目标邮件服务器接收邮件后,投递到目标本地邮件投递代理(MDA,如Dovecot)
- 目标客户端通过主动轮询或服务器推送,与目标本地邮件投递代理通过IMAP/POP3协议传递邮件
所以在这个过程中,涉及到Postfix与Dovecot两个之间的配置,比较麻烦,可以取巧只部署SMTP服务,邮件的接收通过cloudflare的电子邮件路由转寄到其他信箱。
域名解析
- 添加DNS解析记录,将mail子域名解析到ip
下载软件并解压到相关目录,例如mail:
wget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixadmin-3.3.15.zip -P /apache/htdocs #下载软件包 unzip /apache/htdocs/postfixadmin-3.3.15.zip -d /apache/htdocs #解压 mv /apache/htdocs/postfixadmin-postfixadmin-3.3.15 /apache/htdocs/mail #修改目录名称 chown -R apache:apache /usr/local/apache && chmod 777 -R /usr/local/apache #修改权限
- 修改apache的vhost与ssl配置文件,配置虚拟主机指向mail目录下的public目录,访问网站出现向导,访问页面中的install.txt,根据说明进行安装:
创建数据库
可以使用ssh连接数据库,使用语句建表,也可以使用phpMyAdmin进行创建
配置文件
复制一份目录下的cp config.inc.php config.inc.php.bak
,直接在config.inc.php进行修改。
$CONF['configured'] = false;
改为$CONF['configured'] = true;
$CONF['database_name'] = '';
为上步中创建的数据库名称$CONF['database_user'] = '';
为上步中授权时创建的用户名$CONF['database_password'] = '';
为上步中授权时使用的密码$CONF['encrypt'] = 'md5crypt';
改为$CONF['encrypt'] = 'dovecot:SHA512';
安装部署
配置完成后,访问网站下的setup.php,该网页会对部署环境进行检测,并更新数据库
报错解决
检测过程中会提示Password Hashing - attempted to use configured encrypt backend (dovecot:SHA512) triggered an error: /usr/bin/doveadm pw failed, see error log for details
,解决该问题需要安装dovecot并修改ssl配置
- 安装软件:在终端中执行
yum install -y dovecot dovecot-mysql
配置SSL:修改
/etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = <...your_domain.crt
,配置apache使用的SSL的证书ssl_key = <...your_domain.key
,配置apache使用的SSL的密钥
- 设置权限:在终端中执行
usermod -aG dovecot apache
,这里的apache是web配置文件中配置的用户,根据情况修改 - 完成后刷新页面,进入下一步
设置管理员
进入页面后显示如下界面
- 输入任意符合要求的密码,点击按键生成哈希值
- 替换配置文件config.inc.php中的
$CONF['setup_password'] = 'changeme';
,用以验证管理员权限,再次刷新 - 创建超级管理员用户:第一行为第一步中输入的密码,第二行为完整邮箱
- 在PostfixAdmin 根目录下创建 templates_c 目录,完成后刷新页面登录,登录后即可进行相关的用户操作