У меня есть сервер amazon linux 2, работающий в облаке aws, и на нем работает yum-cron. У меня есть домен электронной почты mydomain.com
который работает на отдельном сервере в совершенно другой облачной среде (bluehost). У меня есть следующие настройки в /etc/yum/yum-cron.conf
:
email_from=myuser@mydomain.com
email_to=security@mydomain.com
email_host=localhost
Вышеупомянутая конфигурация прекрасно работает, и я спрашиваю, как именно она работает? Насколько я знаю, отправка электронного письма - довольно сложный процесс. Вы должны подключиться к SMTP-серверу, предоставить имя хоста, порт и учетные данные для входа, и когда электронное письмо будет отправлено, оно будет передано тому SMTP-серверу, который обрабатывает фактическую отправку электронной почты. Localhost (насколько мне известно) НЕ является SMTP-сервером, так как же yum-cron отправляет электронные письма? Я ожидал, что эта конфигурация не удастся.
Это довольно распространенная практика, когда почтовый сервер работает локально, принимая почту, отправляемую с localhost. Часто эти письма пересылаются на центральный сервер, который принимает письма, исходящие из локальных подсетей.
Упомянутые вами письма - это то, что сегодня знают пользователи, но это далеко не единственный способ обработки почты.
Когда вы упоминаете yum-cron, скорее всего, в вашей системе есть postfix. Подробности смотрите в /etc/postfix/main.cf и master.cf.
Я бы предположил, что ваш сервер amazon linux 2, работающий в облаке aws, запускает почтовый сервер (возможно, sendmail или postfix), прослушивающий порт 25, вероятно, только на адресе обратной связи (127.0.0.1). Yum-cron «отправляет» почту на почтовый сервер, работающий на localhost, а затем ретранслирует ее в Интернет.
Я проверил исходный код для yum-cron
и использует библиотеку Python smtplib
для подключения к указанному хосту и отправки электронной почты.