如何在虚拟机上配置邮件服务器

要在您的虚拟机 (VM) 上开放 25 端口,请前往 VPS Manager > 选择“Mail Bridge”选项卡 > 点击“Add Mail Bridge”按钮。

设置好 PTR 记录并启用 25 端口后,您可以设置自己偏好的 SMTP 服务器。下面是 PostfixEximSendmail 的示例。请使用您的 VPS Manager 中显示的 VM IP,并确保您的 PTR 记录的域名 与发件人域名匹配(例如 mail.example.com)。

安装和配置 Postfix

# 适用于 Debian/Ubuntu

sudo apt update

sudo apt install postfix mailutils -y



# 适用于 Almalinux/Rocky/Cloudlinux/EL

# 检查基于 RPM 的发行版以确认

# 如果已安装 Postfix

rpm -qa | grep postfix

# 如果尚未安装,请运行以下命令安装 Postfix

sudo dnf install postfix



安装 Postfix 后,您可以启动该服务,并确保服务器重启后它也会自动启动:

sudo systemctl start postfix

sudo systemctl enable postfix

然后,您可以配置该服务。该服务所需的所有选项都位于 /etc/postfix 目录中,主配置文件是 /etc/postfix/main.cf

运行sudo nano /etc/postfix/main.cf命令开始编辑主配置文件,并添加或更新以下行:

inet_interfaces = all

# myhostname 声明邮件服务器的主机名

myhostname = mail.example.com

# mydomain 声明实际处理电子邮件的域名

domain = example.com

# mail_spool_directory 声明邮箱文件所在的目录

mail_spool_directory = /var/mail

myorigin = /etc/mailname

mydestination = $myhostname, localhost.$mydomain, localhost

relayhost =

inet_protocols = all

smtp_banner = $myhostname ESMTP



重启 Postfix 以应用更改:

sudo systemctl restart postfix



测试发送邮件:

echo "Test message" | mail -s "Test Email" user@recipient.com

安装和配置 Exim 4

# 适用于 Ubuntu/Debian

sudo apt update

sudo apt install exim4 -y



以下命令会显示一个用于配置软件的向导用户界面。它允许用户决定 Exim 是否需要将配置拆分到多个文件中,还是存储在一个文件中:

sudo dpkg-reconfigure exim4-config

如果使用第一个选项,配置将存储在 /etc/exim4/conf.d 子目录中。如果选择一个配置文件,则该文件为 /etc/exim4/exim4.conf

完成所有配置后,运行 systemctl restart exim4使更改生效。

编辑 /etc/exim4/update-exim4.conf.conf 以确保:

# dc_local_interfaces 声明您的邮件服务 IP(例如 203.0.113.10

dc_local_interfaces='203.0.113.10'

# dc_readhost 声明您的系统邮件名称

dc_readhost='example.com'

# dc_other_hostnames 声明系统主机名

dc_other_hostnames='mail.example.com'



重启 Exim 以应用更改:

sudo systemctl restart exim4


运行以下命令测试邮件投递:

echo "Mail test" | mail -s "Exim Test" user@recipient.com

安装和配置 Sendmail

# 适用于 Ubuntu/Debian

sudo apt update

sudo apt install sendmail sendmail-bin -y

# 适用于 Almalinux/Cloudlinux/RHEL

yum install sendmail sendmail-cf mailutils


Sendmail 的主配置文件是 /etc/mail/sendmail.cf。请避免直接编辑此文件。如果需要编辑配置,请改为编辑 /etc/mail/sendmail.mc 文件,备份原始配置文件,并使用以下任一方法生成新的配置文件:

1) 使用随附的 makefile /etc/mail 创建新配置:

make all -C /etc/mail/

 

如果有需要,/etc/mail 中所有生成的文件都会重新生成。

2) 或者,您可以使用 m4 宏处理器创建新的 /etc/mail/sendmail.cf。默认情况下不会安装 m4 宏处理器。在使用它创建 /etc/mail/sendmail.cf 之前,请以 root 身份安装 m4 软件包:

# 适用于 Almalinux/Cloudlinux/RHEL

yum install m4


# 适用于 Ubuntu/Debian

apt install m4


以下 Sendmail 配置文件位于 /etc/mail/目录中:

  • access- 指定哪些系统可以使用 Sendmail 发送外发邮件

  • domaintable- 域名映射

  • local-host-names - 服务器主机的别名

  • mailertable- 覆盖特定域路由的指令

  • virtusertable- 指定特定于域的别名形式,允许在该机器上托管多个虚拟域。


下面,您可以查看如何编辑这些配置文件的示例:

# 编辑服务器主机别名:

echo "mail.example.com" > /etc/mail/local-host-names


# 通过编辑 /etc/mail/sendmail.mc 绑定到 Mail IP
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Addr=203.0.113.10')dnl


# 重新构建配置:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


# 测试:

echo "Hello from Sendmail" | mail -s "Sendmail test" user@recipient.com

上述部分配置文件必须先将其信息存储到数据库文件中,更改才能生效。要使配置文件中的任何更改生效,请以 root 身份运行 makemap hash /etc/mail/<name> < /etc/mail/<name>命令。这里,<name> 表示要更新的配置名称。

运行 systemctl restart sendmail 命令以重启 Sendmail 进程。

需要提供有效的电子邮箱