怎样在 Ubuntu 22.04 LTS 上安装 Sendmail

在本教程中,我们将向您展示怎样在 Ubuntu 22.04 LTS 上安装 Sendmail。 对于那些不知道的人,Sendmail 是一个开源邮件传输代理 (MTA),用于使用服务器或使用 shell 命令路由电子邮件。 它包括用于邮件传输和电子邮件传递的 SMTP(简单邮件传输协议)。 大多数系统管理员更喜欢将 Sendmail 服务器用作 MTA 而不是其他 MTA。 您还可以使用 Sendmail 服务器通过外部 SMTP 服务器(如 Gmail、Amazon SES、MailChimp 等)发送电子邮件。

本文假设您至少具备 Linux 的基本知识,知道怎样使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 22.04 (Jammy Jellyfish) 上逐步安装 Sendmail。 对于 Ubuntu 22.04 和任何其他基于 Debian 的发行版,如 Linux Mint、Elementary OS、Pop!_OS 等,您可以按照相同的说明进行操作。

先决条件

  • 运行以下操作系统之一的服务器:Ubuntu 22.04、20.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一个 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 Sendmail

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt 终端中的命令。

sudo apt update
sudo apt upgrade
sudo apt install wget apt-transport-https gnupg2 software-properties-common

步骤 2. 在 Ubuntu 22.04 上安装 Sendmail。

默认情况下,Sendmail 在 Ubuntu 22.04 基础存储库中可用。 现在运行以下命令将最新版本的 Sendmail 安装到您的 Ubuntu 系统:

sudo apt install sendmail

步骤 3. 配置主机名。

使用以下命令查找您的主机名:

hostname

接下来,使用您喜欢的文本编辑器打开文件:

nano /etc/hosts

以开头的那一行 127.0.0.1添加 hostname 到最后,如下所示。 这应该在一行:

127.0.0.1 localhost your-hostname

步骤 4. 配置 SMTP。

现在我们在里面创建一个新目录 /etc/mail SMTP 配置目录:

sudo mkdir /etc/mail/authinfo

为文件设置正确的权限:

sudo chmod -R 700 /etc/mail/authinfo

然后,在新创建的目录中为您的 SMTP 身份验证创建一个新文件:

cd /etc/mail/authinfo
nano smtp-auth

添加以下行并将电子邮件地址替换为您的登录电子邮件,将密码替换为您的密码:

AuthInfo: "U:root" "I:your-email-address" "P:your-strong-password"

Save 然后退出文件,为上面创建的身份验证创建一个哈希数据库映射:

sudo makemap hash smtp-auth < smtp-auth

步骤 5. 配置 SMTP。

现在我们切换到 Sendmail 配置目录并编辑 sendmail.mc 文件:

cd /etc/mail
nano sendmail.mc

在后面添加以下配置 MAILER _DEFINITIONS 行并替换 smtp-host 使用您的 SMTP 主机名:

define(`SMART_HOST',`[smtp-host]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/smtp-auth.db')dnl

步骤 6. 重建 Sendmail 配置。

现在使用以下命令重建 Sendmail 配置:

cd /etc/mail
sudo make

完成后,现在我们重新启动 Sendmail 服务:

sudo systemctl restart sendmail

第 7 步。用于发送电子邮件的简单 PHP 脚本。

现在我们创建一个 PHP 文件 send-email.php 在您的 Web 文档根目录中包含以下内容。 更改 $to_email 使用您的收件人电子邮件地址, $subject, 和 $body 根据您的需要,保持原样用于测试目的, $from_email 带有发件人电子邮件地址:

nano send-email.php

添加以下用于发送电子邮件的示例 PHP 代码:

<?php  $to_email = "[email protected]";  $subject = "Simple Email Test via PHP";  $body = "Hi,n This is test email send by PHP Script";  $headers = "From: [email protected]";  if ( mail($to_email, $subject, $body, $headers)) {      echo("Email successfully sent to $to_email...");  } else {      echo("Email sending failed...");  }?>

Save 和 close 该文件,然后通过在 Web 浏览器中访问来测试它,或者简单地从命令行执行它,如下所示:

php send-email.php

输出:

Email successfully sent to [email protected]

恭喜! 您已成功安装 Sendmail。 感谢您使用本教程在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上安装 Sendmail。 如需更多帮助或有用信息,我们建议您查看 Sendmail 官方网站.