Эта статья представляет собой материал, который предназначен для экономии времени системных администраторов, столкнувшихся с проблемой работы почты в облаке Yandex.
В этом материале мы рассмотрим настройку почты с использованием exim4 и 360.yandex.
Как-то раз мы столкнулись с проблемой работы почты на проекте, который был перевезен в облако Yandex пару дней назад. Она заключалась в увеличении очереди писем, при этом все письма, которые уходили не на почтовый адрес Yandex, уходили в заморозку.
В логах мы увидели следующую ошибку:
1oGD5P-00AwSA-Lz H=mx.google.com: SMTP timeout after initial connection: Connection timed out
1oGD5P-00AwSA-Lz R=dnslookup T=remote_smtp defer (110): Connection timed out H=mx.google.com: SMTP timeout after initial connection
При проверке соединения при помощи telnet на 25-е порты почтовых сервисов получили ошибку timed out
.
При поиске решения данной проблемы в интернете нашли информацию от Yandex, что 25-ый порт закрыт на отправку почты на все почтовые сервисы, кроме Yandex (смотреть пункт: "Фильтрация исходящего трафика").
Вопрос по 25-ому порту был направлен в саппорт Yandex Cloud. Поддержка посоветовала смотреть эту статью для решения вопроса. Мы считаем статью не исчерпывающей, и по нашему опыту есть два варианта решения этой проблемы:
Запросить ip-адрес с открытым 25-ым портом. По нашему опыту ожидание составляет ~7-10 дней.
Отправка почты через yandex 360.
В этой статье мы решили рассмотреть именно второй вариант и написать полную настройку почты с использование 360.yandex.
Настройка 360.yandex
Первым делом нам необходимо зайти в 360.yandex.
Выбираем организацию. По умолчанию это organization-почтовый адрес. На этом этапе вы можете выбрать один из двух вариантов использования организацией 360.yandex:
Использовать свой частный почтовый адрес как аккаунт организации.
Использовать свою юридическое лицо.
При выборе одного из этих двух вариантов имейте в виду, что в Yandex имеется ограничение на отправку почты и для первого и для второго.
Для варианта использования своего частного почтового адреса как организации имеется следующее ограничение:
Количество получателей | Ограничение |
Суммарно во всех письмах за сутки | 500 |
В одном письме, отправленном через сайт | 50 |
В одном письме, отправленном через почтовую программу или по протоколу SMTP | 35 |
В этом случае получаем максимум 500 писем в сутки.
Для варианта использования юридического лица следующее ограничение:
Количество получателей | Ограничение |
Суммарно во всех письмах за сутки (с одного ящика) | 3000 * |
Суммарно во всех письмах за сутки (со всех ящиков одного домена) | 5000 * |
В одном письме, отправленном через сайт | 50 |
В одном письме, отправленном через почтовую программу или по протоколу SMTP | 35 |
В этом случае мы получаем 3000 писем в сутки.
Какой вариант выбрать - решать только вам. Более подробно с информацией можно ознакомится на офф. сайте.
В нашей статье мы будем использовать 1 вариант.
Итак, после выбора организации мы видим панель:
Справа выбираем настроить почту:
Вводим название вашего домена:
После введения вашего домена появится информация об подтверждении домена:
В Yandex имеется 3 способа подтверждения домена.
DNS-запись. Подтверждается ~2-3 часа.
Метатег. Подтверждается ~1-2 часа. Необходимо будет задействовать разработчиков.
HTML-файл. Подтверждается практически моментально, после добавления файла на сайт.
Подтверждаем ваш домен. После этого мы увидим новую вкладку "Домены" на левой панели, переходим в нее:
Мы видим просьбу с добавлением MX-записи для домена. На этом этапе также имеется 2 варианта ее добавления:
Первый вариант - делегирование домена в dns yandex.
Второй вариант - добавление MX-записи самостоятельно.
Первый вариант потребует от вас делегировать текущую зону с вашего DNS-сервера на сервера Yandex. После делегации домена, Yandex добавить MX-записи самостоятельно. Второй вариант - это добавить MX-запись самостоятельно на ваш текущий сервер DNS. Какой вариант выбрать - вам нужно решить самостоятельно. В нашей статье мы рассматриваем второй вариант. Выбираем его, и видим следующие рекомендации:
Добавляем DNS-запись. По нашему опыту, подтверждение занимает от 30 минут до 1 часа. Все зависит от DNS-сервера, на котором хранятся ваши записи.
После подтверждения MX-записи мы видим рекомендации о добавлении DKIM и SPF записи:
Рекомендации будут выглядеть так:
Выполняем вышеуказанные рекомендации. После всех действий мы будем видеть зеленую галочку, которая нам говорит об успешном добавлении всех записей и удачной настройке почты на стороне Yandex.
Добавляем почтовый адрес
Идем во вкладку сотрудники:
Добавляем сотрудника:
Вводим данные:
В поле "Логин" указываем основную почту, с которой отправляются письма (например, info@domain_name). После введения данных в раздел "Сотрудники" появится строка с указанной почтой.
Выбираем настройки сотрудника справа:
Выбираем пункт "Редактировать алиасы":
Далее нажимаем "Добавить новый". После этого добавляем все почтовые адреса, которые у вас имеются (например, sell@domain_name.com, admin@domain_name.com). Сохраняем и завершаем настройку на стороне 360.yandex.
Настройка почты в почтовом ящике
Следующим пунктом необходимо разрешить отправку почты с помощью SMTP в mail.yandex.ru. Для этого заходим в только что созданный аккаунт. Выбираем "Настройки" в правом верхнем углу, далее "Все настройки". После чего увидим следующее меню:
Выбираем пункт "Почтовые программы":
Ставим все галочки и сохраняем. Далее возвращаемся во "Все настройки" и выбираем пункт "Безопасность".
Выбираем "Пароли приложений".
Вводим название и видим пароль приложения. Сохраняем его и нажимаем "Готово".
Настройка exim4 на стороне сервера
Устанавливаем exim4:
apt-get install exim4-daemon-heavy
Далее необходимо сконфигурировать exim4:
dpkg-reconfigure exim4-config
Выбираем пункты по порядку:
Общий тип почтовой конфигурации.
Выбираем: Отправка почты через smarthost; приём по SMTP или через fetchmail.Почтовое имя системы.
В данном случае это ваш domain_name.IP-адреса, с которых следует ожидать входящие соединения SMTP.
Оставляем не тронутым.Другие места назначения, для которых должна приниматься почта.
Оставляем не тронутым.Домены, для которых доступна релейная передача почты.
Оставляем не тронутым.IP-адрес или имя хоста являющегося исходящим smarthost.
Вводим: smtp.yandex.ru::587Сокращать количество DNS-запросов до минимума (дозвон по требованию)?.
Выбираем: да.Метод доставки локальной почты.
Выбираем: mbox формат в /var/mail/.Разделить конфигурацию на маленькие файлы.
Выбираем: нет.
Всё, exim4 настроен.
Идем в файлы конфигурации по адресу /etc/exim4/. Конфигурация /etc/exim4/update-exim4.conf.conf должна выглядеть приблизительно так:
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
#
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
#
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
#
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
#
# This is a Debian specific file
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='true'
dc_relay_nets=''
dc_smarthost='smtp.yandex.ru::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Открываем файл /etc/exim4/passwd.client. В него вводим логин и пароль (пароль приложения, который был получен и сохранен на предыдущем этапе).
# password file used when the local exim is authenticating to a remote
# host as a client.
#
# see exim4_passwd_client(5) for more documentation
#
# Example:
### target.mail.server.example:login:password
smtp.yandex.ru:info@domain_name:password
Сохраняем изменения и перезагружаем exim4.
service exim4 restart
Финал
Настройка завершена. Теперь вся ваша почта уходит через 360.yandex.
Проблема с авторизацией, с которой можно столкнуться: если в log-файлах вы видите информацию о неудачной авторизации (auth failed
). Может быть две причины:
Вы ввели неправильный пароль. Исправьте пароль, либо сделайте новый.
Вы отправили более 500/3000 писем с вашего почтового адреса в сутки. В данном случае лимиты обновятся через сутки.
В этой статье мы рассмотрели вариант настройки почты с использованием Yandex Cloud. Если у вас остались вопросы - пожалуйста, пишите их в комментариях, мы постараемся дать исчерпывающий ответ.
Спасибо за уделенное нам время. Надеемся, статья была для вас полезна.
Также подписывайтесь на наш telegram-канал DevOps FM - там много полезного для DevOps-инженеров и системных администраторов.
Рекомендации для чтения: