如何在Ubuntu 18.04&16.04 LTS上安装Sendmail

时间:2019-05-19 01:26:23  来源:igfitidea点击:

Sendmail是一种通用的电子邮件路由工具,用于通过Internet传输电子邮件。它包括用于邮件传输和电子邮件传递的SMTP(简单邮件传输协议)。大多数系统管理员宁愿使用Sendmail服务器作为MTA,而不是其他MTA。我们也可以使用Sendmail服务器通过外部的SMTP服务器发送电子邮件,如Gmail、Amazon SES、MailChimp等。

1。卸载Postfix

Postfix是Ubuntu操作系统上预先安装的默认SMTP服务。并且我们愿意在系统上使用Sendmail服务器。

首先,删除Ubuntu上现有的postfix安装。

sudo systemctl stop postfix
sudo apt remove postfix && apt purge postfix

2。安装Sendmail

如果尚未使用以下命令安装Sendmail,请使用yum包管理器安装Sendmail和其他必需包。

sudo apt install sendmail

3。配置Sendmail服务器

执行sendmailconfig命令以完成基本配置。

sudo sendmailconfig

选择“Y”的所有选项并按回车键。等待命令完成。

服务器已准备好发送电子邮件。我们可以使用Linux命令行或PHP脚本发送电子邮件。

4。接收输入电子邮件

编辑/etc/mail/sendmail.mc ,注释掉下面的行。允许从任何地方接收电子邮件。
注释sendmail.mc中的行,只需将 dnl关键字放在行首。

dnl   DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl   DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl

然后将域名添加到/etc/mail/local-host-names文件中。

cat /etc/mail/local-host-names

theitroad.com
mail.theitroad.com
localhost
localhost.localdomain

现在使用 m4宏处理器来编译Sendmail配置文件。m4是基于流的。

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

重新启动Sendmail服务

sudo systemctl restart sendmail

系统已准备好接收电子邮件。

5。配置基于域的电子邮件路由

如上所述,virtusertable文件用于别名,允许多个虚拟域托管在一台计算机上。

  1. 所有@example.com域电子邮件地址传递到Hyman@theitroad
@example.com Hyman@theitroad

  1. 所有电子邮件地址Hyman@theitroad将转发给本地用户Hyman。
Hyman@theitroad  Hyman

  1. 所有电子邮件地址@mydomain.com网站将转发到域@otherdomain.com网站以及相应的用户名。
@mydomain.com    %Hyman@theitroad

  1. 所有电子邮件地址@otherdomain.com网站将被拒绝我的邮件服务器,并用邮件确认发件人
@otherdomain.com 	 error:nouser User unknown

在virtusertable中进行所有更改后,执行以下命令创建更新的virtusertable.db软件包含新配置的文件。

sudo makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

现在重新启动Sendmail服务

sudo /etc/init.d/sendmail restart