Установка и настройка Sendmail в среде Ubuntu

Шаг 1 — Установка Postfix

Postfix включен в репозиторий Ubuntu по умолчанию, так что вы можете установить его с помощью APT.

Для начала обновите локальный кэш пакетов :

Затем установите пакет с помощью следующей команды

Обратите внимание, что мы передаем переменную среды в эту команду установки. В связи с этим, процедура установки предложит вам настроить некоторые дополнительные опции:. Процедура установки откроет серию интерактивных диалогов

Для целей данного обучающего модуля введите в диалогах следующие данные:

Процедура установки откроет серию интерактивных диалогов. Для целей данного обучающего модуля введите в диалогах следующие данные:

  • General type of mail configuration?: Для данного параметра выберем пункт Internet Site, соответствующий потребностям нашей инфраструктуры.
  • System mail name: это базовый домен, используемый для построения корректного адреса электронной почты, когда имеется только часть адреса с именем учетной записи. Допустим, имя хоста вашего сервера . Возможно вы захотите задать для системной почты имя . В этом случае для имени пользователя Postfix будет использовать адрес .
  • Root and postmaster mail recipient: это учетная запись Linux, на которую будет перенаправляться почта, адресованная и . Используйте для этой цели свою основную учетную запись. В данном примере это имя пользователя sammy.
  • Other destinations to accept mail for: определение получателей почты, которых будет принимать этот экземпляр Postfix. Если вам потребуется добавить любые другие домены, для которых этот сервер будет получать почту, добавьте их здесь. В противном случае значений по умолчанию будет достаточно.
  • Force synchronous updates on mail queue?: поскольку вы вероятно используете журнальную файловую систему, выберите No.
  • Local networks: это перечень локальных сетей, для которых ваш почтовый сервер настроен как реле пересылки сообщений. Значение по умолчанию подойдет для большинства случаев. Если вы пожелаете изменить его, постарайтесь максимально ограничить диапазон сетей.
  • Mailbox size limit: используется для ограничения размера сообщений. Значение «» отключает любые ограничения размера.
  • Local address extension character: символ, используемый для отделения обычной части адреса от расширения (используется для создания динамических псевдонимов). Для этого обучающего модуля подойдет значение по умолчанию «».
  • Internet protocols to use: укажите, нужно ли ограничивать версии протокола IP, поддерживаемые Postfix. Для целей данного обучающего модуля выберите вариант «all».

Приведем настройки, использованные в этом руководстве:

  • General type of mail configuration?: Internet Site
  • System mail name: (не )
  • Root and postmaster mail recipient: имя пользователя основной учетной записи Linux (в наших примерах sammy)
  • Other destinations to accept mail for:
  • Force synchronous updates on mail queue?: No
  • Local networks:
  • Mailbox size limit:
  • Local address extension character:
  • Internet protocols to use: all

Примечание. Если впоследствии вам потребуется изменить эти настройки, введите команду:

Для параметров будут указаны заданные ранее значения.

После завершения процедуры установки можно внести некоторые изменения в конфигурацию Postfix.

вторник, 13 декабря 2011 г.

Настройка sendmail для использования gmail в качестве хоста передачи (smarthost)

Люблю я сендмейл. Ну нравится он мне. И в данной заметке я опишу, как настроить сендмейл для использования gmail в качестве смартхоста.

Рассматриваемая ОС Ubuntu 11.04. Но и в любой другой ОС настройка будет скорее всего примерно такой.

Итак, устанавливаем сендмейл и дополнительные утилиты:

Обратите внимание, что в Ubuntu сендмейл уже поставляются с фейковыми сертификатами для соединений TLS, поэтому мы их генерировать не будем, а воспользуемся существующими, в других дистрибутивах сертификаты возможно вам придется генерировать вручную. Проверим, что у нас получилось:

Проверим, что у нас получилось:

$ sudo /usr/sbin/sendmail -d0.1 -bv root Version 8.14.4 Compiled with: DNSMAP LDAPMAP LDAP_REFERRALS LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS NISPLUS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS TCPWRAPPERS USERDB USE_LDAP_INIT XDEBUG

============ SYSTEM > (short domain name) $w = chelny (canonical domain name) $j = chelny.buteo.ru (subdomain name) $m = buteo.ru (node name) $k = chelny ========================================================

root. deliverable: mailer local, user root

Обратите внимание, на наличие опций SASLv2 и STARTTLS. Переместитесь в каталог /etc/mail

Переместитесь в каталог /etc/mail

Создайте файл authinfo со следующим содержимым:

AuthInfo:smtp.gmail.com “U:username” “I:username@gmail.com” “P:password” “M:PLAIN” AuthInfo:smtp.gmail.com:587 “U:username” “I:username@gmail.com” “P:password” “M:PLAIN”

# makemap -r hash authinfo.db # make

Отредактируйте sendmail.mc как показано ниже (добавлены строки выделенные жирным):

dnl # include(`/etc/mail/m4/dialup.m4′)dnl include(`/etc/mail/m4/provider.m4′)dnl include(`/etc/mail/tls/starttls.m4′)dnl include(`/etc/mail/sasl/sasl.m4′)dnl FEATURE(`authinfo’, `hash /etc/mail/authinfo.db’)dnl define(`SMART_HOST’,`smtp.gmail.com’)dnl define(`RELAY_MAILER_ARGS’, `TCP $h 587′)dnl define(`ESMTP_MAILER_ARGS’, `TCP $h 587′)dnl dnl # dnl # Default Mailer setup MAILER_DEFINITIONS MAILER(`local’)dnl MAILER(`smtp’)dnl

# make && /etc/init.d/sendmail reload

Если все получилось без ошибок, то релей через gmail настроен. Проверяем!

Отправляем сообщение с локального хоста на mail.ru:

250 2.0.0 pBDA7MDj024641 Message accepted for delivery asa***@mail.ru. Sent (pBDA7MDj024641 Message accepted for delivery) Closing connection to >>> QUIT

Вуаля! Наше письмо было успешно доставлено!

11 комментариев:

Спасибо добрый человек =) Возможно стоит добавить, что есть такой баг, что php.mail() выполняется слишком долго, подвисая на минуту где-то. Решается добавлением в /etc/hosts строчки:127.0.0.1 localhost localhost.localdomain YourServer

Вообще заметка не совсем про php ) но в любом случае рад, что заметка принесла пользу )

А для других серверов, не gmail.com это подходит? Я пытаюсь сделать так как написано, но мне все равно удаленный сервер пишет “User unknown”. Посоветуйте что-нибудь, пожалуйста.

Если сервер, который вы хотите использовать в качестве смартхоста использует smtp, то вероятно нет никаких причин не настроить его таковым.

Для себя ответьте на вопросы: нужна ли авторизация для отправки сообщения? нужен ли tls? разрешен ли relay для вас этим сервером?

Когда узнаете ответы на эти вопросы, то сможете настроить релеем тот хост, который захотите.

нужна ли авторизация для отправки сообщения? – данужен ли tls? – даразрешен ли relay для вас этим сервером? – без авторизации нет.То есть единственный способ отправить письмо – притвориться, что мы клиент, у которого на этом хосте есть почтовый ящик. Но не получается. Вот логи:

Пора добавить DNS-записи

Для начала нам потребуется просмотреть содержимое файла ключа:

cat /etc/opendkim/keys/ваш_домен_ру/mail.txt

В итоге увидим что-то в духе:

default._domainkey IN TXT ( «v=DKIM1; k=rsa; “

«p=MIGfMA0000qGSIb3DQEBAQUAA4GNADCxxxxBgQCgmHiX7BojGFoggggXa25Xs444WRhLmNpnv7777TY7FU4mG/WxtgrpV////Tzt3EZQ1/BpyICjlJZXIhgggguePnyd/iNFh4xKF3pi8yoqWB0eyq6KI/fXUbUWdd+NiU4ffffv89St92g24UFaElEl54XXCa6GlllldHFMetkBXwID/QAB» ) ; —— DKIM key default for droidnews.ru

Теперь в панели хостера необходимо добавить TXT-Запись «mail._domainkey» (здесь «mail» снова выбранный нами ранее селектор). В качестве значения указываем всё, что прописано в кавычках, включая кавычки.

20.3.1 /etc/mail/access

База данных доступа определяет список хостов или IP адресов, имеющих доступ к локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть перечислены как OK , REJECT , RELAY или просто переданы процедуре обработки ошибок sendmail с заданным сообщением об ошибке. Хостам, перечисленным с параметром по умолчанию OK , разрешено отправлять почты на этот хост, если адрес назначения почты принадлежит локальной машине. Все почтовые соединения от хостов, перечисленных с параметром REJECT , отбрасываются. Для хостов, перечисленных с параметром RELAY , разрешена передача через этот сервер почты с любым адресом назначения.

Example 20-1. Настройка базы данных доступа sendmail

В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи в левой части таблицы, применяется правило записанное в правой части таблицы. В первых двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного хоста, another.source.of.spam. В четвертом примере разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно совпадает с этой записью, чем с cyberspammer.com в примере выше. При более точном совпадении правила перезаписываются. В последнем примере разрешается пересылка почты от хостов с IP адресами, начинающимися с 128.32. Эти хосты смогут отправлять почту через этот почтовый сервер для других почтовых серверов.

После обновления этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/.

Установка программы

Устанавливать Сендмейл нужно на базе локального сервера или web-сервера. Во втором случае почтовый агент будет более функционален. Чтобы получить все компоненты веб-сервера, вам потребуется стек компонентов LAMP . Его можно найти в репозитории.

ВАЖНО.
Перед установкой нового ПО не забудьте обновить списки пакетов в локальном репозитории с помощью команды

Инсталляция Сендмейл начинается с помощью команды «sudo apt install sendmail», которая выполнит загрузку пакетов почтового агента.

После этого требуется перезапустить службы самой программы, а также web-сервера Apache:

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

где «ваша_почта» – это актуальный почтовый адрес.

И, наконец, проверим log-файл. Это файл почтового сервиса, где будут отображаться ошибки установки:

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

Для начала небольшое отступление

POP – Post Office Protocol –
используется для получения почты с сервера. Порт по умолчанию – 110
(для протокола POP3)

Сейчас я попробую объяснить, как
настроить небольшой почтовый сервер, использующий POP3 и SMTP

Для начала установим необходимый
софт. Нам понадобятся sendmail и imap. Если вы используете
RH-совместимую версию Linux, вам потребуется установить
соответствующие пакеты. Я использую sendmail-8.11.0
imap-4.7c2

Прежде, чем приступить к настройке
sendmail, вам необходимо правильно настроить DNS , иначе эта программа буде работать
некорректно (хотя можно настроить sendmail для работы без
использования dns).

Произведем базовую настройку
sendmail. Для этого нужно запустить утилиту netconf
. Она
работает как из-под Х, так и из-под консоли. Утилита netconf
есть в RH, Mandrake – насчет других версий я точно не знаю. (ее нет
в KSI Linux). Естественно, вы должны быть зарегистрированы в системе
под root”ом

Этой информации уже вполне
достаточно, чтобы ваш sendmail функционировал. Вы можете
установить дополнительные опции программы sendmail с помощью
netconf. Если у вас нет программы sendmail, вы получите
незабываемое удовольствие от ручного редактирования файла
/etc/sendmail.cf – в нем хранятся настройки) 🙂

Теперь сделаем так, чтобы sendmail
принимал почту только с разрешенных адресов. Для этого даже не
нужно настраивать сам sendmail – нужно только подправить файлы
/etc/hosts.allow и /etc/hosts.deny В первом из них содержится
список хостов, которым разрешен доступ к этой машине, а во
втором – запрещен

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

Пример. Для запрещения доступа всем
хостам, кроме компьютеров вашей сети в файл /etc/hosts.allow
добавьте строку “192.168.1. Здесь имеется в виду, что сеть
имеет адрес 192.168.1.0 и маску 255.255.255.0 Более подробно о
формате файлов hosts.allow и hosts.deny вы можете прочитать,
введя команду man /etc/hosts.allow

Для того, чтобы принимать почту
только со “своих” доменов, нужно добавить в mc-файл (обычно
/etc/mail/sendmail.mc) следующие строки (используйте табуляцию,
а не пробелы) LOCAL_CONFIG FR-o /etc/sendmail.cR

# anything else is bogus
R$*
$#error $: “550 Relaying Denied”

Теперь создайте файл
/etc/sendmail.cR и введите в него имена “своих” доменов – по
одному в каждой строчке. Только на эти домены почтовик сможет
получать почту – все остальные получат сообщение 550 Relaying
Denied

Теперь настала очередь POP3. После
установки пакета imap у вас практически все настроено, т.е. я
хочу сказать, что уже можно проверять конфигурацию.

Для начала перезапустите демон inetd
После его перезапуска сервисы sendmail и popd будут активированы
(точнее один sendmail, а popd вызывается по мере необходимости)

Попробуйте сделать следующее:
введите telnet 25 Вы
должны увидеть примерно следующее: Trying 192.168.1.1 …
Connected to 192.168.1.1 Escape character is “^]” 220
de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun 2001
10:54:22 +300

Это означает, что sendmail работает,
осталось проверить насколько правильно:)

Sendmail сообщит, что сообщение
отправлено (точнее помещено в очередь на отправление)

Теперь нужно запустить какой-нибудь
почтовый клиент например kmail и забрать почту. Настройки
сети в kmail Сеть -> Отправка почты установите SMTP, 25-ый
порт, имя сервера – имя вашего почтовика, у меня –
den.dhsilabs.com

Затем добавьте аккуант для POP3
Логи – den Пароль – пароль который используется для входа в
систему Сервер – den.dhsilabs.com Порт – 110

Вы должны получить то, сообщение,
которое ввели после data.

Как задать дополнительные параметры поиска через Свойства панели задач

Многие пользователи спрашивают, как открыть поиск в ОС Виндовс 7, если он не работает? Необходимо указать дополнительные параметры в свойствах панели задач:

  1. Требуется переместить курсов мышки на панель задач. На панели задач находятся иконки приложений быстрого запуска, кнопка стартового меню и системный трей.
  2. После этого, нужно ПКМ, чтобы вызвать диалоговое окно и нажать «Свойства».
  3. Затем требуется выбрать раздел с наименованием «Стартовое меню».
  4. Далее необходимо нажать по кнопке «Параметры».
  5. В пункте «Осуществлять поиск в других расположениях» поставить отметку «Использовать для поиска общие файлы и папки».
  6. Далее нужно выделить чекбокс «Производить поиск в панели управления и интернете».
  7. Нажать на кнопку «Применить».

Запуск и тестирование

Теперь, когда почти все сделано, нам надо пересобрать заново файл конфигурации sendmail и обновить базы данных. Делается это следующим набором команд:

cd /etc/mail
rm *.db
rm freebsd.cf
make all
make install

Результатом будет нечто вроде этого:

/usr/bin/m4 -D_CF_DIR_=/usr/local/share/sendmail/cf/ /usr/local/share/sendmail/cf/m4/cf.m4 genius.mc > genius.cf /usr/sbin/makemap hash virtusertable.db < virtusertable chmod 0640 virtusertable.db /usr/sbin/makemap hash access.db < access chmod 0640 access.db /usr/sbin/sendmail -bi /etc/mail/aliases: 26 aliases, longest 18 bytes, 276 bytes total chmod 0640 /etc/mail/aliases.db install -m 444 freebsd.cf /etc/mail/sendmail.cf install -m 444 freebsd.submit.cf /etc/mail/submit.cf

Теперь перезапускаем sendmail

/usr/local/etc/rc.d/030.sendmail.sh stop
/usr/local/etc/rc.d/030.sendmail.sh start

и тестируем:

telnet localhost 25

Trying ::1… Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. 220 localhost.my.domain ESMTP Sendmail 8.12.6/8.12.6; Mon, 30 Dec 2002 13:31:56 +0300 (MSK) EHLO localhost 250-localhost.my.domain Hello localhost , pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN 250-DELIVERBY 250 HELP QUIT 221 2.0.0 localhost.my.domain closing connection

Наличие строчки “250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN” говорит нам о том, что sendmail может аутентифицировать пользователя. Добавляем пользователя:

saslpasswd2 admin-perldoc.ru

Password:
Again (for verification):

Вводим пароль пользователя и проверяем:

sasldblistusers2

 admin-perldoc.ru@genius: userPassword 

Собственно говоря, на этом настройка sendmail закончена. Теперь настраиваем The Bat! для того, чтобы можно было отправлять почту с аутентификацией:

Заходим в Ящик -> Свойства почтового ящика -> Транспорт -> Аутентификация

Выделяем чекбокс “Аутентификация SMTP (RFC-2554)”.
Переключаем кнопку “Использовать параметры, указанные ниже.”
Вводим имя пользователя и пароль, которые создали при помощи saslpasswd2.
Пользователь: admin-perldoc.ru@genius.
Пароль: *********(!) Обратите внимание на то, что имя пользователя указано вместе с именем машины.
Выделяем чекбокс “Требовать безопасную (MD5) аутентификацию”.
 

В том случае, если используется MS Outlook или другой почтовый клиент, в котором нет безопасной аутентификации (DIGEST-MD5, CRAM-MD5), необходимо использовать аутентификацию по методам PLAIN или LOGIN. При этом в качестве имени пользователя надо использовать имя пользователя БЕЗ добавленного имени машины. В нашем случае имя пользователя будет выглядеть так: admin-perldoc.ru.

После отправки письма в лог-файле /var/log/maillog должны быть примерно такие записи:

Dec 30 13:54:41 genius sm-mta: AUTH=server, relay=xxx.yyy.zzz.kkk ,
	authid=admin-perldoc.ru@genius, mech=CRAM-MD5, bits=0
Поддерживается http://stellar.df.ru

Авторизуйтесь для добавления комментариев!

Настройка Dovecot

Установка Postfix Dovecot в связке используется чаще всего для веб-сайтов. Dovecot — это IMAP/POP3 сервер, который позволяет пользователям работать с почтой через такие клиенты, как Thunderbird. Для начала нам нужно создать группу и пользователя для обработки электронных адресов, поскольку наши ящики не привязаны к системе:

Настройки Dovecot распределены по нескольким файлам. Сначала приведите файл /etc/dovecot/dovecot.conf к такому виду:

Затем разрешим аутентификацию пользователей через базу данных MySQL в файле /etc/dovecot/conf.d/10-auth.conf:

В следующем файле укажем параметры доступа к базе данных:

Мы будем сохранять почту в папке /home/vmail/домен/имя/Maildir. Вам нужно создать папку для домена, если она не существует:

Дальше, скажем программе, что для каждого пользователя нужно создавать отдельные почтовые ящики:

И наконец, приведите базовые настройки в 10-master.conf к такому виду:

Для шифрования будем использовать самоподписанный сертификат:

Сертификаты вам придется создать отдельно, для этого выполните команду:

Директории /etc/pki/dovecot/certs и private должны существовать, вы можете использовать другое расположение, но тогда вам нужно будет изменить адреса сертификатов в файлах настройки Postfix и Dovecot. Осталось указать пароль и другие параметры доступа к базе данных mysql:

Еще нам может понадобиться информация из логов, поэтому:

После изменения конфигурации перезапустите dovecot:

Тестирование отправки почты

Для начала запустим клиент, для этого используем команду:

s-nail

Чтобы отправить сообщение, передадим содержимое текстового файла в процесс s-nail. Откроем для этого текстовый редактор:

nano ~/test_message

Пропишем туда сообщение, например:

Привет! Это тестовое сообщение.

Сохраняемся и закрываем редактор. Для передачи сообщения в s-nail, используем команду cat. Она может принимать следующие значения:

  • -s – задает строку темы сообщения;
  • -r – изменяет поле «From», в котором по умолчанию указан текущий пользователь Linux. Данный параметр необходим для того, что заменить его на необходимый адрес, например, на excontact@example2.com.

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

cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example2.com exuser@example2.com

После этого на указанную электронную почту должно прийти письмо. Чтобы проверить отправленные сообщения через s-nail, нужно прописать file +sent, где file – ваше уникальное название.

Установка sendmail

Сначала устанавливаем итз портов sendmail c поддержкой cyrus sasl (система аутентификации).

cd /usr/ports/mail/sendmail-sasl
make install

После установки sendmail мы должны изменить файл /etc/make.conf. Добавляем в него строчку

SENDMAIL_CF_DIR=	/usr/local/share/sendmail/cf

Если до этого стоял более старый sendmail, устанавливаем файл submit.cf

make submit.cf

Для запуска sendmail будем использовать следующий сценарий (переименуем его в удобоваримый формат):

mv /usr/local/etc/rc.d/sendmail.sh.sample /usr/local/etc/rc.d/030.sendmail.sh

Для нормального запуска обновленной версии мы должны указать путь к ней (файл /etc/mail/mailer.conf). Это можно сделать либо при помощи команды

make mailer.conf

либо вручную, изменив файл mailer.conf:

sendmail	/usr/local/sbin/sendmail
send-mail	/usr/local/sbin/sendmail
mailq		/usr/local/sbin/sendmail
newaliases	/usr/local/sbin/sendmail
hoststat	/usr/local/sbin/sendmail
purgestat	/usr/local/sbin/sendmail

На этом установка sendmail окончена. Осталоь столько запустить его командой

/usr/local/etc/rc.d/030.sendmail.sh start

sendmail sm-msp-queue

Сообщения sendmail sm-msp-queue говорят о том, что все прошло нормально.

Удалите Постфикс

Postfix – это служба SMTP по умолчанию, предварительно установленная в операционных системах Ubuntu.

И если вы готовы использовать сервер Sendmail в вашей системе, прежде всего, удалите существующую установку postfix в Ubuntu.

sudo systemctl stop postfix
sudo apt remove postfix && apt purge postfix

2. Установите Sendmail

Если вы не установили Sendmail, используя следующую команду, чтобы установить Sendmail с другими необходимыми пакетами, используя менеджер пакетов yum.

sudo apt install sendmail

Sendmail хранит все свои файлы конфигурации в каталоге /etc/mail.

Ниже вы найдете подробную информацию о файлах конфигурации Sendmail.

  • access – разрешить / запретить другим системам использовать Sendmail для исходящих писем.
  • domaintable – используется для сопоставления доменного имени для Sendmail.
  • local-host-names – используется для определения псевдонимов для хоста.
  • mailertable – Определяет инструкции, которые переопределяют маршрутизацию для определенных доменов.
  • virtusertable – определяет специфичную для домена форму псевдонимов, позволяющую разместить несколько виртуальных доменов на одном компьютере.

2.1 Закомментируйте строку ниже в /etc/mail/sendmail.mc, чтобы разрешить получение электронной почты из любой точки мира.

Чтобы закомментировать строку в sendmail.mc, просто поставьте dnl в начале строки.

dnl DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl

2.2 Добавьте эту строку также в sendmail.mc над опцией «MAILER»

FEATURE(`relay_hosts_only')dnl

2.3 Добавьте полное имя хоста вашего ПК в этот файл.

hostname >> /etc/mail/relay-domains

4. Перекомпилируйте конфигурацию Sendmail

m4 – макропроцессор для компиляции файлов конфигурации Sendmail. m4 основывается на потоке, то есть не разбирается в строках.

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Перезапустите сервис Sendmail

sudo /etc/init.d/sendmail restart

4. Настройка доменной маршрутизации электронной почты

Как вы прочитали выше, этот виртуальный файл используется для создания псевдонимов, позволяя размещать несколько виртуальных доменов на одном компьютере.

1. Все электронные письма, адресованные домену @example.com, доставляются по адресу support@mydomain.com

@example.com support@mydomain.com

2. Все электронные письма, адресованные support@mydomain.com, будут перенаправлены на локального пользователя jack

support@mydomain.com  jack

3. Все электронные письма, адресованные @mydomain.com, будут пересылаться на домен @otherdomain.com с соответствующими именами пользователей.

@mydomain.com    %1@otherdomain.com

4. Все письма, адресованные @otherdomain.com, будут отклонены моим почтовым сервером с подтверждением отправителя с сообщением

@otherdomain.com 	 error:nouser User unknown

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

sudo makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

Теперь перезапустите сервис Sendmail

sudo /etc/init.d/sendmail restart

Управление sendmail

Посмотреть всю очередь сообщений:

Sudo mailq

Посмотреть очередь сообщений по определенному адресу:

Очистить всю очередь сообщений sendmail:

Sudo rm -r /var/spool/mqueue-client/*

Очистить очередь сообщений sendmail по адресату:

#sendmail, #LAMP, #MTA

P.S.
Если вы хотите изучить консоль Linux на достаточно хорошем уровне – рекомендую к прочтению свежую книгу Дениса Колисниченко «Командная строка Linux и автоматизация рутинных задач
».

Вряд ли вам нужен web-сервер
, который не может отправить почту с вашего сайта. Ниже простой способ быстро развернуть sendmail
в качестве MTA (Mail Transfer Agent), отправляющего почту для сайта.

Для начала установка

Sudo apt-get install sendmail

Второе и самое главное — правильная настройка самого хоста. Почтовику требуется чётко знать какое DNS FQDN имя у хоста и что оно существует на просторах мировой сети.

Предположим, что сервер, на котором работает sendmail
имеет IP адрес 123.123.123.123

Также у нас есть доменное имя domainame.com, которое правильно делегировано на IP адрес сервера.

Редактируем файл /etc/hosts
, чтобы сервер сам знал своё DNS имя (естественно, что оно должно быть правильным и реальным)

Sudo nano -w /etc/hosts

Вторая строка, которую стоит дописать и есть описание доменного имени сервера, его сопоставление с реальным IP адресом хоста и внутренним системным названием:

127.0.0.1 localhost
123.123.123.123 box1.domainname.com your-web-server

После чего нужно внести изменение в файл /etc/hostname

Sudo nano -w /etc/hostname

И вписать туда правильное имя сервера, которое было вписано в /etc/hosts
в нашем примере — это your-web-server.

Содержимое файла /etc/hostname после редактирования:

Your-web-server

После этих действий нужно перезагрузить сервер или выполнить:

/etc/init.d/hostname restart
И выполнить 2 команды:
hostname
hostname -f

Если всё правильно, система должна выдать одинаковые имена в обоих случаях: your-web-server

Советую проверить отправку письма
таким образом

Настройка php.ini

Находим и редактируем следующую строчку

Проверка функции mail()

Настройка завершена я надеюсь у вас получилось настроить Sendmail на Ubuntu

Она появилась ещё в 1983 году, но активно используется и по сей день. Среди ключевых особенностей – поддержка многими платформами, которые существуют сегодня, а также бесплатность. Приложение поставляется вместе с открытым исходным кодом. Это значит, что каждый желающий может добавить в него свою функциональность, или же изменить по желанию. В операционной системе Ubuntu, Sendmail, настройка которой выполняется благодаря командной строке Linux, прижилась благодаря хорошей поддержке и богатым возможностям.

Процессор сообщение – Sendmail – получил широкое распространение в бизнес сфере.

На сегодня достаточно распространён «процессор сообщений» Сендмейл Sentrion, который был создан с учётом нужд крупных компаний. Его отличительные черты – высокая производительность и хорошая интегрируемость со всеми бизнес-процессами. Sentrion предлагает наряду с новыми технологиями использовать и устаревшие приложения, которые хорошо прижились. Также приложение достаточно дружелюбно, чтобы подходить домашним пользователям .

Установка сертификата

Вместе с iRedMail создается самоподписный сертификат, которому по умолчанию, не доверяют другие системы. Если мы хотим, чтобы пользователи не видели предупреждений об использовании потенциально не безопасного сертификата, можно установить последний, выданный акредитованным центром сертификации. Мы же рассмотрим, как получить для iRedMail бесплатный сертификат от Let’s Encrypt (подробнее в статье получение сертификата от Let’s Encrypt).

Откроем на редактирование файл:

vi /etc/nginx/sites-enabled/00-default-ssl.conf

… и добавим в секцию server (отмечено желтым):

server {
    …
    root /var/www/html;
    index index.php index.html;    location ~ /.well-known {        root /usr/share/nginx/html;        allow all;    }
    include …    …
}

Перечитаем конфиг nginx

systemctl reload nginx

Устанавливаем утилиту для получения сертификата:

apt-get install certbot

Для нашего удобства, создаем переменную с нашим хостом, для которого мы будем получать сертификат:

DOMAIN=$(hostname)

* данная команда в качестве значения задаст имя нашего сервера.

И получаем сертификат командой:

* подробнее параметры описаны в статье получение сертификата от Let’s Encrypt

Обратите внимание, что в данном примере мы получим сертификат для узла mail.dmosk.ru

Удаляем старые сертификаты:

\rm /etc/ssl/private/iRedMail.key

\rm /etc/ssl/certs/iRedMail.crt

И создаем симлинки на полученные:

ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/ssl/certs/iRedMail.crt

ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/ssl/private/iRedMail.key

* cert.pem и iRedMail.crt — открытые ключи (public); privkey.pem и iRedMail.key — закрытые (private); $DOMAIN — переменная, которая содержит наш домен.

Перезапускаем службы nginx, postfix и dovecot:

systemctl reload nginx postfix dovecot

Для автоматического продления сертификата создаем в cron задачу:

crontab -e

Добавим: 

0 0 * * 1,4 /usr/bin/certbot renew && systemctl reload nginx postfix dovecot

20.3.5 /etc/mail/virtusertable

Файл virtusertable сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в /etc/mail/aliases, или файлами.

Example 20-3. Пример таблицы виртуального домена

В примере выше мы видим сопоставление адресов для домена example.com. Почта обрабатывается по первому совпадению с записью в этом файле. Первая запись сопоставляет адрес root@example.com локальному почтовому ящику root. Вторая запись сопоставляет postmaster@example.com локальному почтовому ящику postmaster на хосте noc.example.net. Наконец, до этого момента адрес в домене example.com не совпал ни с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует всякое другое почтовое сообщение, отправленное на любой адрес в example.com. Это сообщение будет доставлено в локальный почтовый ящик joe.

PrevHomeNext
Использование электронной почтыUpУстановка другой почтовой программы

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в . По вопросам связанным с этой документацией, пишите . По вопросам связанным с русским переводом документации, пишите в рассылку . Информация по подписке на эту рассылку находится на сайте проекта перевода.

Защищаем сообщения от попадания в СПАМ

Чтобы другие почтовые системы не принимали наши письма за СПАМ, выполняем следующие рекомендации:

А-запись в DNS

Для FQDN-имени почтового сервера должна быть создана А-запись в DNS. Пример записи:

mail.dmosk.ru   A   90.156.242.197

Создаем PTR-запись для внешнего IP-адреса

Она должна вести на имя сервера (в данном примере, mail.dmosk.ru). Чтобы создать такую запись, нужно написать обращение Интернет-провайдеру или хостеру виртуальной машины. Пример записи:

171.23.222.83.in-addr.arpa      name = mail.dmosk.ru

* данная запись соответствует IP-адресу 83.222.23.171.

Эта запись создается в DNS для домена, от которого идет отправка сообщений. Пример:

dmosk.ru     text = “v=spf1 +mx -all”

Прописываем DKIM в DNS

Для начала, смотрим ключ, который был сформирован во время установки iRedMail:

amavisd-new showkeys

Пример ответа:

dkim._domainkey.dmosk.ru.     3600 TXT (
  “v=DKIM1; p=”
  “MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+Ief”
  “zcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia”
  “+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHK”
  “d2mdqfW+emSW/paUwQIDAQAB”)

Копируем DKIM и создаем в DNS запись TXT. Пример:

dmosk.ru     text = “v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+IefzcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHKd2mdqfW+emSW/paUwQIDAQAB”

Создать другую подпись DKIM

Генерируем новый ключ:

amavisd-new genrsa /var/lib/dkim/dmosk2.ru.pem 1024

* где dmosk2.ru — новый домен, для которого мы сгенерируем подпись dkim.
* некоторые системы не работают с ключами более чем 1024 бит.

Задаем права на созданный файл:

chown amavis:amavis /var/lib/dkim/dmosk2.ru.pem

chmod 0400 /var/lib/dkim/dmosk2.ru.pem

Открываем конфигурационный файл amavisd

vi /etc/amavisd.conf

Находим строчку:

dkim_key(‘dmosk.ru’, “dkim”, “/var/lib/dkim/dmosk.ru.pem”);

И добавляем радом с ней новую. Получится так:

dkim_key(‘dmosk.ru’, “dkim”, “/var/lib/dkim/dmosk.ru.pem”);
dkim_key(‘dmosk2.ru’, “dkim”, “/var/lib/dkim/dmosk2.ru.pem”);

Теперь находим строчку:

@dkim_signature_options_bysender_maps = ( {
   …
   “dmosk.ru” => { d => “dmosk.ru”, a => ‘rsa-sha256’, ttl => 10*24*3600 },

И также после нее добавляем новую. Должно получиться:

@dkim_signature_options_bysender_maps = ( {
   …
   “dmosk.ru” => { d => “dmosk.ru”, a => ‘rsa-sha256’, ttl => 10*24*3600 },
   “dmosk2.ru” => { d => “dmosk2.ru”, a => ‘rsa-sha256’, ttl => 10*24*3600 },

Перезапускаем amavisd:

amavisd-new restart

Политика DMARC

Данная политика определяет, что делать с письмом, которое не проходит проверку. Подробнее о DMARC.

Для создания данной политики необходимо в DNS добавить TXT запись, примерно, такого содержания:

_dmarc.dmosk.ru. 3600 IN TXT “v=DMARC1; p=quarantine; sp=none; pct=100; fo=0; rua=mailto:postmaster@dmosk.ru”

* данная запись означает, что все письма, которые не прошли проверку, необходимо отправить в карантин, а отчет написать на ящик postmaster@dmosk.ru.

Ящик abuse

По аналогии с тем, как мы создавали тестовую учетную запись, необходимо создать ящик abuse@… На данный ящик могут приходить жалобы на СПАМ. Стоит время от времени просматривать его (или настроить переадресацию), и реагировать на жалобы.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий