Настройка почты GitLab через SMTP ISPmanager
SMTP-настройки
Если почтовый сервер поднят на том же сервере или рядом через ISPmanager, GitLab можно настроить на отправку писем через его SMTP. В моей связке заработал вариант с портом 465 и обычным TLS сразу при подключении, без STARTTLS.
Открываем конфиг:
sudo nano /etc/gitlab/gitlab.rb
Пример SMTP-настроек:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'mail.example.com'
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = 'gitlab@example.com'
gitlab_rails['smtp_password'] = 'password'
gitlab_rails['smtp_domain'] = 'example.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_reply_to'] = 'gitlab@example.com'
Смысл настройки такой: 465 — это TLS-соединение сразу, поэтому автоматический STARTTLS здесь не нужен. Для схемы с портом 587 настройки были бы другими.
Применяем изменения:
sudo gitlab-ctl reconfigure
Проверка отправки
Проверить отправку письма можно через Rails-консоль:
sudo gitlab-rails console
Notify.test_email('you@example.com', 'Test GitLab email', 'SMTP is working').deliver_now
Если письмо не уходит
Сначала сверяю пару smtp_port / smtp_tls: для 465 нужен smtp_tls = true, а smtp_enable_starttls_auto выключен. Потом уже проверяю логин, пароль, SPF/DKIM и ограничения провайдера на исходящую почту.