Sendmail 是基于 Unix 的系统上最古老且最流行的邮件传输代理 (MTA) 之一。它具有高度可定制性,这使其成为许多专业人士的首选,但这种灵活性也让它看起来令人畏惧。 Sendmail 的一个关键功能是它能够通过远程 SMTP 服务器中继电子邮件,我们将在此处深入研究。
中继电子邮件是一个过程,其中电子邮件传递通过不同的服务器而不是直接从发件人传递到收件人。这种做法可以帮助优化电子邮件传送流程并克服传送能力问题。
先决条件
在我们开始之前,请确保您具备以下条件:
- 访问安装了 Sendmail 的基于 Unix 的系统。
- Sudo 或 root 权限修改 Sendmail 配置。
- 访问远程 SMTP 服务器凭据,包括主机名、端口和身份验证详细信息。
分步指南
步骤 1:备份您现有的 Sendmail 配置
在对 Sendmail 配置进行任何更改之前,最好先进行备份。这可确保您在出现任何问题时可以恢复设置。为此,请使用以下命令:
sudo cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak
步骤2:修改Sendmail配置文件
使用您选择的文本编辑器打开 Sendmail 配置文件 sendmail.mc。在这里,我们使用 Nano:
sudo nano /etc/mail/sendmail.mc
向下滚动并查找以以下内容开头的行dnl #。紧接着该行之后,插入以下配置,替换smtp.yourprovider.com, user, and password分别使用您的 SMTP 服务器的主机名、您的用户名和密码:
|
define(`智能主机',`[smtp.yourprovider.com]')dnl
define(`confAUTH_MECHANISMS', `外部 GSSAPI DiGEST-MD5 CRAM-MD5 登录明文')dnl
FEATURE(`authinfo',`哈希-o /etc/mail/authinfo.db')dnl
|
保存并退出编辑器。
第 3 步:创建 Authinfo 文件
接下来,创建包含 SMTP 服务器身份验证信息的 authinfo 文件:
sudo nano /etc/mail/authinfo
将以下行添加到authinfo文件,将占位符替换为您的 SMTP 服务器的hostname, username, and password:
|
AuthInfo:smtp.您的提供商.com "U:user" “P:密码”
|
保存并退出文件。
第 4 步:更新 Authinfo 数据库
保存后authinfo文件,通过运行以下命令更新 authinfo.db 文件:
sudo makemap hash /etc/mail/authinfo < /etc/mail/authinfo
步骤 5:更新 Sendmail 配置
现在,使用 m4 宏处理器更新 Sendmail 配置:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
第 6 步:重新启动 Sendmail
最后,通过重新启动 Sendmail 服务来应用更改:
sudo service sendmail restart
测试您的配置
要确认 Sendmail 是否正确配置为中继电子邮件,您可以发送测试电子邮件。操作方法如下:
echo "Subject: Test Mail" | sendmail -v your-email@example.com
Replace your-email@example.com与您的电子邮件地址。您应该很快就会收到该电子邮件。检查电子邮件标头以验证它是通过您的 SMTP 服务器中继的。
结论
就是这样!您已成功将 Sendmail 配置为通过远程 SMTP 服务器中继电子邮件。请记住,此过程可能会略有不同,具体取决于您的系统和您使用的特定 SMTP 服务器。如果您遇到任何问题,请检查 SMTP 服务器的文档和 Sendmail 日志以获取更多信息。