Когда я пытаюсь выполнить команду в терминале, отправляется электронное письмо. Я проверил, что локальный SMTP не работает, так какой механизм Apple использует за кулисами?
echo "Hello" | mail -s "Test" foo@bar.com
mail
на OS X действительно, кажется, порождает Postfix достаточно долго, чтобы иметь дело с почтой, а затем разрушает ее через некоторое время.
Чтобы увидеть это в действии, попробуйте telnet localhost 25
перед командой mail, затем сразу после, затем подождите 5 минут и повторите попытку.
Я не уверен, что это действительно правильный ответ на вопрос, потому что он не объясняет, как Postfix порождается и разрушается, но, надеюсь, это поможет ответить на вопрос.
SMTP-демоны или серверы должны принимать почту, а не отправлять ее. В вашем примере mail
это чисто почтовый клиент, который подключается к любому серверу, определенному соответствующей DNS-записью MX bar.com
, и для этого не требуется запуск локального сервера.
Однако, в зависимости от настроек вашей почты, вам может потребоваться войти на исходящий почтовый сервер для аутентификации или, если ничего другого, просто указать адреса отправителя и возврата и т. Д. Теперь вы можете сделать все это в командной строке, передав соответствующие параметров на терминале, но пока вы настроили свое почтовое приложение, эта конфигурация уже сохранена, и, просто временно запустив почтовую подсистему, команды терминала могут получить эту информацию и теперь имеют один или несколько почтовых SMTP-серверов, которые они могут выбрать для отправки исходящих сообщений. Затем он завершит процессы после завершения.
Вы можете проверить все это в командной строке и отправить почту, не используя почтовый клиент. Я не на Mac, поэтому эти команды могут нуждаться в редактировании кем-то, кто есть, но вы можете сделать это:
nslookup
set type=mx
bar.com
exit
telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)
Прочтите это для получения дополнительной информации о работе с электронной почтой через telnet - это отличный инструмент для отладки
Я думаю, что
mail
всегда использует локальный sendmail для отправки почты. У OSX sendmail есть постфикс. И это определенно используется.Вы можете проверить заголовки почты
Received: by [Your-Mac] (Postfix, from userid ...
.Тем не менее, это не очень хорошая идея использовать
mail
(или лучшеpostfix
), как это. Рекомендуется использовать Smart Host для локального Postfix, чтобы избежать часто используемых ограничений брандмауэра.Вы можете найти решение в SMTP Smart Host Setup для Postfix в Snow Leopard, которое работает для меня (также на Lion, Mountain Lion).
источник