我在 aws 云中运行了一个 amazon linux 2 服务器,并且在其上运行了 yum-cron。我有一个电子邮件域,mydomain.com
它在完全不同的云环境 (bluehost) 中的单独服务器上运行。我在 中有以下设置/etc/yum/yum-cron.conf
:
[email protected]
[email protected]
email_host=localhost
上述配置运行良好,我想问它究竟是如何工作的?据我所知,发送电子邮件是一个相当复杂的过程。您必须连接到 SMTP 服务器,提供主机名、端口和登录凭据,当发送电子邮件时,它会被交给负责实际发送电子邮件的 SMTP 服务器。据我所知,Localhost 不是 smtp 服务器,那么 yum-cron 是如何发送电子邮件的呢?我原本以为这个配置会失败。
答案1
我推测您在 aws 云中运行的 amazon linux 2 服务器正在运行邮件服务器(可能是 sendmail 或 postfix),该服务器可能只在环回地址 (127.0.0.1) 上监听端口 25。Yum-cron 将邮件“发送”到在本地主机上运行的邮件服务器,然后将其转发到互联网。
答案2
本地运行邮件服务器并接收从本地主机发送的邮件是一种相当常见的做法。通常这些邮件会被转发到接收来自本地子网的邮件的中央服务器。
您所提到的邮件,其实也是现在用户所知道的,但绝不是处理邮件的唯一方式。
正如您提到的 yum-cron,您的系统上很可能有 postfix。有关详细信息,请查看 /etc/postfix/main.cf 和 master.cf。
答案3
我检查了源代码yum-cron
,它使用 Python 库smtplib
连接到指定的主机并发送电子邮件。