Почему OS X может отправлять электронную почту без предварительной настройки SMTP?


9

Когда я пытаюсь выполнить команду в терминале, отправляется электронное письмо. Я проверил, что локальный SMTP не работает, так какой механизм Apple использует за кулисами?

echo "Hello" | mail -s "Test" foo@bar.com

Ответы:


4

mail на OS X действительно, кажется, порождает Postfix достаточно долго, чтобы иметь дело с почтой, а затем разрушает ее через некоторое время.

Чтобы увидеть это в действии, попробуйте telnet localhost 25перед командой mail, затем сразу после, затем подождите 5 минут и повторите попытку.

Я не уверен, что это действительно правильный ответ на вопрос, потому что он не объясняет, как Postfix порождается и разрушается, но, надеюсь, это поможет ответить на вопрос.


7

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 - это отличный инструмент для отладки


Пока ваш ответ получил наибольшее количество голосов, но это неверно. Mac создаст Postfix для получения электронной почты и автоматически отключится, как предложено выше @zigg. В любом случае, спасибо за ваши усилия.
Йога

Не то чтобы это неверно как таковое, все детали верны, но это не обязательно отвечает на ваш вопрос в его нынешнем виде. Отредактировано для этого.
Stuff

@stuffe сказал: «Демоны или серверы SMTP должны получать почту, а не отправлять ее». Я должен просить, чтобы отличаться. Поскольку это комментарий, я процитирую его только из Википедии: «Клиентские почтовые приложения пользовательского уровня обычно используют SMTP только для отправки сообщений»
Симус

1

Я думаю, что 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).


Из заголовка я нашел ... Получено: по 10.194.242.101 с SMTP-идентификатором xxx; ... X-Получено: по 10.68.92.196 с SMTP-идентификатором yyy; ... но мой внутренний IP-адрес 192.168.xx
Yoga
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.