如何配置Ubuntu Apache2邮件服务,轻松实现高效邮件管理?
- 内容介绍
- 文章标签
- 相关推荐
教你如何在Ubuntu上配置Apache邮件服务,比较容易做到高效邮件管理. 在网站上线后经常遇到的需求是发送注册验证、密码找回等验证邮件. 我尝试了多种方法:付费云服务如mailgun、sendcloud虽然功能比较全面但月度免费额度有限且需要花钱;免费SMTP账号也受限于每分钟/每天的发送次数和间隔。这些痛点让很多开发者和运维人员在实际项目中难以平稳使用外部服务。
二、准备工作:确保环境可用并了解基本概念
痛点提醒:旧版包更新慢、默认端口被运营商屏蔽导致无法收到外部SMTP连接。
-
sudo apt update && sudo apt upgrade -y - 主机名必须能解析到本机 IP**,否则 Postfix 和 Dovecot 的日志会报 “unableto qualify m...”。 按理说,解决办法的观点是。修改 /etc/hosts 或使用 hostname 命令重新设定主机名。
三、安装并初始化 Postfix
$ sudo postconf -e 'myhostname = yourdomain.com'
$ sudo postconf -e 'mydestination = $myhostname,$mydomain。$myorigin'
$ sudo postconf -e 'relayhost =' # 若不需要中继可留空
$ sudo postconf -e 'inet_interfaces = all'
再看检查是否监听,
$ telnet localhost 25
# 预期输出:
# 220 ESMTP Postfix
如果出现 “Connection refused”,请检查防火墙或 SELinux/AppArmor 是否阻止了端口 25。不过,
关键点提示· SMTP 認證與埠號問題·
-
$ sudo nano /etc/postfix/main.cf
ssl = yes
smtpsaslauthenable = yes
smtpsaslpasswordmaps = hash:/etc/postfix/saslpasswd
smtptlssecuritylevel = encrypt
smtpusetls = yes
mynetworks = $myhostname,$mydomain,$privatemappings,$mynetworksinternet,$mynetworkslocalhost $network"
-
SMTP 主機 和 埠號填入 sasl
passwd。然後執行以下指令生成 map 檔:
$ sudo nano /etc/postfix/main.cf
ssl = yes
smtpsaslauthenable = yes
smtpsaslpasswordmaps = hash:/etc/postfix/saslpasswd
smtptlssecuritylevel = encrypt
smtpusetls = yes
mynetworks = $myhostname,$mydomain,$privatemappings,$mynetworksinternet,$mynetworkslocalhost $network"
-
SMTP 主機 和 埠號填入 sasl
passwd。然後執行以下指令生成 map 檔:
$ sudo postmap /etc/postfix/sasl_passwd
$ sudo systemctl restart postfix
$ sudo ufw allow 465/tcp # 個人郵箱常用埠號
$ sudo ufw allow 995/tcp # IMAPS
$ sudo ufw allow 997/tcp # POPBS
$ sudo ufw reload
教你如何在Ubuntu上配置Apache邮件服务,比较容易做到高效邮件管理. 在网站上线后经常遇到的需求是发送注册验证、密码找回等验证邮件. 我尝试了多种方法:付费云服务如mailgun、sendcloud虽然功能比较全面但月度免费额度有限且需要花钱;免费SMTP账号也受限于每分钟/每天的发送次数和间隔。这些痛点让很多开发者和运维人员在实际项目中难以平稳使用外部服务。
二、准备工作:确保环境可用并了解基本概念
痛点提醒:旧版包更新慢、默认端口被运营商屏蔽导致无法收到外部SMTP连接。
-
sudo apt update && sudo apt upgrade -y - 主机名必须能解析到本机 IP**,否则 Postfix 和 Dovecot 的日志会报 “unableto qualify m...”。 按理说,解决办法的观点是。修改 /etc/hosts 或使用 hostname 命令重新设定主机名。
三、安装并初始化 Postfix
$ sudo postconf -e 'myhostname = yourdomain.com'
$ sudo postconf -e 'mydestination = $myhostname,$mydomain。$myorigin'
$ sudo postconf -e 'relayhost =' # 若不需要中继可留空
$ sudo postconf -e 'inet_interfaces = all'
再看检查是否监听,
$ telnet localhost 25
# 预期输出:
# 220 ESMTP Postfix
如果出现 “Connection refused”,请检查防火墙或 SELinux/AppArmor 是否阻止了端口 25。不过,
关键点提示· SMTP 認證與埠號問題·
-
$ sudo nano /etc/postfix/main.cf
ssl = yes
smtpsaslauthenable = yes
smtpsaslpasswordmaps = hash:/etc/postfix/saslpasswd
smtptlssecuritylevel = encrypt
smtpusetls = yes
mynetworks = $myhostname,$mydomain,$privatemappings,$mynetworksinternet,$mynetworkslocalhost $network"
-
SMTP 主機 和 埠號填入 sasl
passwd。然後執行以下指令生成 map 檔:
$ sudo nano /etc/postfix/main.cf
ssl = yes
smtpsaslauthenable = yes
smtpsaslpasswordmaps = hash:/etc/postfix/saslpasswd
smtptlssecuritylevel = encrypt
smtpusetls = yes
mynetworks = $myhostname,$mydomain,$privatemappings,$mynetworksinternet,$mynetworkslocalhost $network"
-
SMTP 主機 和 埠號填入 sasl
passwd。然後執行以下指令生成 map 檔:
$ sudo postmap /etc/postfix/sasl_passwd
$ sudo systemctl restart postfix
$ sudo ufw allow 465/tcp # 個人郵箱常用埠號
$ sudo ufw allow 995/tcp # IMAPS
$ sudo ufw allow 997/tcp # POPBS
$ sudo ufw reload

