Нужно ли настраивать почтовый сервер, чтобы использовать команду linux mail
?
Нужно ли настраивать почтовый сервер, чтобы использовать команду linux mail
?
Ответы:
Нет, вам не требуется почтовый сервер для отправки почты. Я наиболее знаком с Sendmail, и есть 3 классификации функций, которые выполняют электронную почту как услугу. MDA (Агенты доставки почты) - 1, а MTA (Агенты передачи почты) - 2, а 3 - MUA (Агенты пользователей почты).
Терминология сбивает с толку, но вам не требуется, чтобы MTA работал постоянно. MTA будет вызываться каждый раз, когда MUA ( mail
) хочет «отправить» почту.
При запуске mail
и указать адрес для отправки почты, sam@example.com
. Почтовый клиент вызовет MTA ( /usr/bin/sendmail
), который затем запросит DNS для этого хоста / домена (example.com) и выяснит, какое значение предназначено для его записи MX. MX означает Почтовый обменник.
Вы можете использовать dig
команду, чтобы увидеть это:
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
Таким образом, клиент попытается подключиться к eggs.gnu.org через порт 25 для доставки этого письма.
@puk задал следующий вопрос:
Это DNS на моей локальной машине?
На что я ответил:
@puk - это может быть так же, как почтовый сервер, но обычно это не так. Загляните в свой /etc/resolv.conf
файл, а также при запуске dig
команды вы увидите SERVER: ...
строку внизу. Это DNS-сервер, обслуживающий ваш запрос.
Мой /etc/resolv.conf
файл содержит следующее:
nameserver 192.168.1.8
И такие запросы, как этот, используя dig
:
$ dig gnu.org mx
Результат в этом внизу:
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
И для проницательного читателя, один мой вопрос, как это настроено? Ответ /etc/nsswitch.conf
файл. Конкретно эта строка:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Тем не менее, сначала используйте файлы ( /etc/hosts
), а затем mdns4_minimal
. Это многоадресный DNS. Это в основном кеш предыдущих просмотров. Наконец, он использует dns
IP-адрес, nameserver
указанный в /etc/resolv.conf
файле.
Это действительно зависит от того, какую версию mail
вы используете.
Всем версиям требуется MTA для фактической доставки почты, но некоторые версии способны использовать SMTP для связи с удаленным MTA («умным хостом», например, почтовым сервером вашего провайдера), а некоторые могут только передавать сообщение /usr/sbin/sendmail
для отправки почты через местный MTA.
В последнем случае местный MTA может быть полноценным MTA , как Sendmail или Exim или постфикса . Или это может быть простой MTA только для отправки, такой как nullmailer или ssmtp . Или немного более сложный мини-MTA, такой как msmtp, который также поддерживает организацию очереди почты для последующей доставки.
В мире свободного программного обеспечения и открытого исходного кода есть два основных варианта mailx
пакета (который предоставляет mail
команду): bsd-mailx
и heirloom-mailx
.
bsd-mailx не говорит по SMTP и может отправлять почту только по трубопроводу/usr/sbin/sendmail
hierloom-mailx может передавать SMTP на smarthost, а также традиционный метод pipe-to-sendmail.
Итак, чтобы ответить на ваш вопрос «Вам нужен почтовый сервер?». Да вроде. Он вам нужен, но в зависимости от того, какую версию почты вы установили, вам, возможно, не придется устанавливать и настраивать ее в собственной системе.
IMO, вам лучше иметь минимальный MTA, msmtp
чем полагаться только на smarthost, heirloom-mailx
потому что вам все еще нужно ставить почту в очередь для последующей доставки, когда ваше интернет-соединение не работает или ваш smarthost недоступен. С локальной очереди, mail
а crond
и другие программы могут просто послать и забыть почту. Без локальной очереди им приходится как-то иметь дело с условием ошибки, если смарт-хост недоступен.