Назад | Перейти на главную страницу

Какую стратегию мне следует использовать для установки smtp-сервера в Linux? для многопоточной службы

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

Установка очень зависит от дистрибутива, поскольку существуют рекомендуемые для дистрибутива способы установки программного обеспечения. В наши дни я очень редко рекомендую кому-либо устанавливать Postfix по исходным текстам в любом дистрибутиве Linux.

В ubuntu используйте apt-get.

$ sudo apt-get install postfix

Это установит postfix на ваш сервер Ubuntu, после чего конфигурация останется на ваше усмотрение. Мой совет - направлять почту в двоичный файл sendmail (обычно в / usr / sbin / sendmail), который будет хранить почту в очереди, если система Postfix не работает. Если вы используете SMTP и подключаетесь к порту 25, если ваш почтовый сервер когда-либо будет отключен для обслуживания, вашему приложению потребуется хранить свою собственную очередь почты, иначе почта не будет доставлена.

Установите Postfix, следуя инструкциям на Postfix.org

Вы также можете установить exim4, который, хотя и является более сложным для сложных настроек (из-за взлома debian), гораздо проще настроить для пересылки почты. просто apt-get install exim4, а затем, если необходимо, dpkg-reconfigure exim4-config.

Лично я бы посоветовал хорошенько подумать о том, к чему вы это видите. Если он просто рассылает лишнюю почту от имени веб-сервера - используйте Sendmail / Postfix. Если он будет иметь дело с входящей электронной почтой и пользователями, и со всеми вытекающими отсюда сложностями - я бы рассмотрел exim4. Последний дает вам целый набор гибкости, параметры базы данных по умолчанию и сканирование на вирусы / спам перед завершением транзакции SMTP. Ах да - и его сложно настроить - но после сортировки - сладко.

Postfix не так уж и сложен, если вы когда-либо собирали / компилировали код из исходного кода.

Мы используем mailx для отправки исходящих писем, а mailx разговаривает с постфиксным SMTP-сервером для фактической точки ретрансляции.

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

Мы используем процесс сборки по сценарию для сборки Postfix в нашем дистрибутиве Linux (Pozix Linux).

Вот команда, которую мы используем для создания файлов make Postfix:

make makefiles 'CCARGS = -DHAS_PGSQL -DUSE_TLS -I / usr / local / pgsql-8.2.13 / include -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I / usr / include / sasl -I / usr / local / BerkeleyDB / include' - A L / usr / local / lib -L / usr / local / pgsql-8.2.13 / lib -L / usr / local / BerkeleyDB / lib -lpq -lsasl2 -lz -lm -lssl -lcrypto -lpthread '

Вы можете настроить это под свои нужды. Поскольку мы используем PostgreSQL, у нас есть: -L / usr / local / pgsql-8.2.13 / lib -lpq

Вы можете устранить их, если вам не нужна поддержка PostgreSQL; как и для SASL и TLS.

После выполнения этой команды

make install (для новой установки) make upgrade (для обновления предыдущей версии)

Чтобы mailx работал, у нас обычно есть задание CRON, которое вызывает сценарий как root.

Скрипт, в свою очередь, вызывает mailx.

MAILX использует файл .rc для чтения переменных среды, и, поскольку мы вызываем mailx как пользователь root, нам нужно поместить файл с именем .mailrc в домашний каталог root.

Содержимое .mailrc выглядит следующим образом:

установить from=alerts@mydomain.com установить smtp = mail.mydomain.com установить smtp-auth-user=alerts@mydomain.com установить smtp-auth-password = alertpassword установить smtp-auth = войти

Затем в наших скриптах мы вызываем mailx следующим образом:

echo "Тестовое сообщение" | mailx "something1@mydomain.com something2@mydomain.com" -s "Тема письма" "Тело письма"

или вы могли бы сделать это:

mailx -s "тема" -a / путь / к / некоторому / файлу me@mydomain.com

где -a позволяет прикрепить файл, а test.msg - внешний файл для чтения в теле письма.

или другой способ, аналогичный первому с вложением файла, заключается в следующем:

echo "Тело сообщения" | mailx -s "тема" -a / путь / к / некоторому / файлу me@mydomain.com