it-swarm-ru.tech

Облегченный исходящий SMTP-сервер

Что вы используете в качестве облегченного SMTP только для исходящей электронной почты?

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

Правка: Я более чем счастлив использовать что-то вроде postfix (и делать), если это лучший выбор. Я думал, что может быть что-то гораздо проще, что выходит за рамки.

49
FlappySocks

Существует несколько вариантов минимальных агентов пересылки почты только для ретрансляции (MTA или "почтовые серверы"), некоторые из которых были упомянуты в других ответах:

Чтобы любой из них работал, вам нужен где-то полноценный MTA, который будет далее ретранслировать ваши сообщения (известный как "почтовый концентратор"), и настоятельно рекомендуется контролировать этот почтовый концентратор. Плохие вещи ™ могут случиться иначе.

24
user601

ИМХО, самый простой способ сделать это с постфиксом. Вы можете настроить его как легкое исходящее реле с помощью следующих команд:

postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com

Пока SMTP-сервер, указанный в relayhost, не требует аутентификации, позволяет ретранслировать или является допустимым местом назначения для адреса получателя, это будет работать.

Параметр myorigin будет именем домена по умолчанию. Поэтому, если вы отправите письмо на foo, оно будет отправлено на адрес [email protected] Письмо, отправленное пользователем bar, будет отправлено с [email protected]

Если вам нужно пройти аутентификацию и вы хотите поддерживать TLS, также выполните следующие команды:

postconf -e smtp_tls_security_level=may
postconf -e smtp_sasl_auth_enable=yes
postconf -e smtp_sasl_password_maps=pcre:/etc/postfix/sasl_password_maps

Затем в /etc/postfix/sasl_password_maps имеют это содержание:

/./ username:password

Вся почта будет отправлена ​​на ваш relayhost с указанным именем пользователя и паролем.

11
bahamat

Предполагая, что вам нужна программа, которую вы можете запустить из командной консоли, например sendmail (8), возможно MSMTP подойдет вам? Он может подключаться к удаленному SMTP-серверу и отправлять почту, которую получает, как стандартный ввод, как sendmail.

9
Michael Ratanapintha

ESMTP это сервер пересылки почты только для ретрансляции, который может работать для вашего приложения.

4
moberley

Вы можете найти sSMTP подходящим для ваших нужд. Прочитайте это статья об этом и его ограничениях.

Честно говоря, я бы не стал слишком беспокоиться об установке postfix или exim, даже если он предназначен только для отправки электронных писем.

2
Evan

Если вы используете docker, https://hub.docker.com/r/zixia/simple-mail-forwarder/ - это хороший выбор для простого развертывания и размером всего 10 МБ с полным smtp (tls ) служба поддержки.

2
Huan

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

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

Обычно с PHP или Python) есть файл конфигурации с приложением для указания сервера "SMTP" (который может находиться на вашем хосте или в другом месте вашей сети.) Если у вас уже есть почта сервер в сети, затем просто укажите конфигурацию на этот сервер.

Если других вариантов не существует, приложение может сгенерировать сообщение электронной почты для стандартного вывода, которое вы можете обработать с помощью чего-то вроде:

listoftargets = "[email protected] [email protected]" echo "Тестовое содержимое" | mail -s "Test Subject" $ listoftargets

В некоторых системах уже существует минимальный почтовый сервер только для отправки.

Сэм Т.

1
samt