На днях пришлось устанавливать и настраивать Redmine, чтобы в дальнейшем работать с внешними заказчиками, у которых нет своих систем фиксации ошибок и ведения проектов. В определённый момент я столкнулся с проблемой, когда Redmine отказывался отправлять почту и вываливались ошибки. Настраивал Redmine на Яндекс.Почту, так как там заведена почта для домена, однако проверил настройки и Gmail.

Речь пойдёт о Redmine версии 3.0.3, если вы читаете данную статью в далёком будущем, то у вас скорее уже другие технологии и Redmine устанавливается и настраивается сам (шутка).

Как мы знаем Яндекс.Почта сейчас работает только по SSL и не поддерживает не защищённое соединение. Я указал необходимые параметры в файле конфигурации, однако почта никак не хотела отправляться. Пытался в настройках «Уведомление по email» отправлять тестовые письма:

Как настроить Redmine на работу с почтой Yandex и Gmail по защищённому соединению

В этом случае получал «ошибку на весь экран».

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

Не буду в данной статье описывать какой параметр конкретно за что отвечает, а приведу примеры правильного кода, а что за что конкретно отвечает вы сможете найти в интернете. Поясню только самое необходимое. Правим файл /config/configuration.yml.

Настройки Redmine для почты Gmail:

default:
 email_delivery:
 delivery_method: :smtp
 smtp_settings:
 address: smtp.gmail.com
 port: 587
 domain: victorz.ru
 authentication: :login
 user_name: test@gmail.com
 password: testpassword

Настройки Redmine для Яндекс.Почты:

default:
 email_delivery:
 delivery_method: :smtp
 smtp_settings:
 ssl: true
 address: smtp.yandex.ru
 port: 465
 domain: victorz.ru
 authentication: :login
 user_name: test
 password: testpassword
 enable_starttls_auto: true
 openssl_verify_mode: none

Обратите внимание, что, если вы используете Яндекс.Почту для домена, то в параметре user_name необходимо писать полный адрес почты, пример:

user_name: test@victorz.ru

В параметре domain можете писать домен вашего сайта.