2010-05-04 13:17:09 +0000 2010-05-04 13:17:09 +0000
31
31
Advertisement

Отправляет ли почту mailx, используя SMTP-реле или напрямую соединяется с целевым SMTP-сервером?

Advertisement

Предположим, я отправлю письмо, используя следующую команду:

mailx person@x.com

затем mailx сначала пытается найти SMTP-сервер моего провайдера для пересылки почты или соединяется напрямую. Зависит ли это от того, есть ли у моего ПК публичный IP-адрес или он находится за NAT. Как проверить настройки mailx на моем ПК? Как проверить это с помощью tcpdump?

Advertisement
Advertisement

Ответы (4)

31
31
31
2010-12-06 16:37:44 +0000

mailx может использовать SMTP. Его конфигурационный файл ~/.mailrc

Одним из примеров является mailx using Gmail’s SMTP .

Настройка может быть даже в одной команде:

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

Если используется обычный SMTP-сервер, то все гораздо проще (см. подробное введение здесь ):

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

Вы также можете поместить их в файл конфигурации mailx ~/.mailrc

29
29
29
2010-05-04 16:16:41 +0000

Традиционно Unix mail и производные (и многие другие инструменты Unix) используют интерфейс /usr/bin/sendmail, предоставляемый почти всеми агентами по пересылке почты (MTA - postfix, exim, курьерская и, конечно же, sendmail).

То есть программа mail не говорит ни по какому сетевому протоколу - она передает сообщение в sendmail через stdin, и позволяет ей обрабатывать фактическую доставку. (Это восходит к тем временам, когда некоторая почта использовала SMTP, некоторая использовала UUCP, некоторая использовала BITNET…).

Как только сообщение поставлено в очередь через sendmail, MTA обрабатывает фактическую передачу сообщения, будь то через SMTP или что-то еще. В зависимости от конфигурации, он может либо соединяться напрямую с MTA получателя, либо пересылать почту через другой хост (также называемый smarthost).

Прямое соединение более распространено на серверах; ретрансляция через smarthost более распространена на персональных компьютерах на домашних соединениях - ретрансляция через Gmail или ISP/рабочую учётную запись электронной почты необходима, чтобы избежать “динамических IP” анти-спам фильтров.

(Некоторые MTA, такие как esmtp или nullmailer, построены специально для домашних пользователей и всегда используют ретранслятор. Они не поддерживают получение почты и намного легче работают с ресурсами).

mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → recipient MTA → recipient inbox

Другие программы, в основном удобные графические клиенты, такие как Thunderbird или Outlook, always подключаются непосредственно к ретрансляционному/среднему SMTP-серверу (опять же, обычно Gmail или ISP/рабочему SMTP-серверу), который передает сообщение от вашего имени. Поддержка

Внутренний SMTP присутствует в heirloom-mailx, но не в традиционном bsd-mailx.

mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox

Третий метод - подключение непосредственно к серверу получателя - почти всегда не используется, и ни один MUA не поддерживает его. На персональных компьютерах его использование приведет к тому, что ваше сообщение будет отклонено (с зараженных IP-адресов домашнего пользователя отправляется большое количество спама).

app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
3
Advertisement
3
3
2010-05-04 13:27:27 +0000
Advertisement

Из раздела 0x6 и man-страницы, ОПИСАНИЕ, подраздел String Options:

smtp Normally, mailx invokes sendmail(8) directly to transfer
          messages. If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable is
          used instead.
1
1
1
2014-01-27 09:06:23 +0000

есть альтернатива без локального mta, как sendmail/postix. Пакет

debian ssmtp

информация из rpm описания:

Summary : Extremely simple MTA to get mail off the system to a Mailhub
URL : http://packages.debian.org/stable/mail/ssmtp
License : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

Стефан К.

Advertisement

Похожие вопросы

6
10
5
37
3
Advertisement
Advertisement