目标
直接在服务器上使用Postfix收发信(并非使用Foxmail等客户端)。
环境
域名一个(假设为yourdomain.com
)
服务器一台
CentOS 7.9
Postfix 2.10.1
配置域名解析
添加A记录,主机记录为mail,记录值为服务器的公网IP(此处假设为12.34.56.78
)。
添加MX记录,主机记录为@,记录值为mail.yourdomain.com
。
配置服务器
使用以下命令修改hostname。
hostnamectl set-hostname mail.yourdomain.com
配置Postfix
CentOS 7.9自带Postfix,使用以下命令查看版本。
postconf mail_version
使用以下命令启动Postfix。
systemctl start postfix
使用以下命令使Postfix开机自启。
systemctl enable postfix
使用以下命令查看Postfix的状态。
systemctl status postfix
看到enabled和active即可。
使用以下命令配置Postfix,具体意义自行查询。
postconf -e "inet_interfaces = all"
postconf -e "myhostname = mail.yourdomain.com"
postconf -e "myorigin = yourdomain.com"
postconf -e "mydestination = yourdomain.com, \$myhostname, localhost.\$mydomain, localhost"
使用以下命令重启Postfix。
systemctl restart postfix
使用以下命令打开25端口(TCP)。
firewall-cmd --permanent --add-port=25/tcp
运行后输出FirewallD is not running
,因为本来防火墙就没开(此处不讨论这个问题)。
可以使用网上的TCP Port Scanner来检测上述25端口是否打开,非必须。
使用以下命令安装Telnet。
yum install -y telnet
使用以下命令测试上述25端口是否能向外导通。
telnet gmail-smtp-in.l.google.com 25
输出应该与如下内容相似。
Trying 55.66.77.88...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP d9685215c04436cbebdsi42-1fed7f1a733ad.514 - gsmtp
如果失败会显示Connection timed out等。某些云服务器的25端口不能向外导通。HW云可以。
输入quit然后回车进行退出。
测试
使用以下命令测试发信功能。
echo "test email" | sendmail xxoo@qq.com
使用以下命令测试收信功能(输入之后按数字键来打开对应的邮件)。
mail
原文链接
https://www.linuxbabe.com/redhat/run-your-own-email-server-centos-postfix-smtp-server