Настройка электронной почты GitLab:отправка через другой почтовый сервер

StackOverflow https://stackoverflow.com//questions/10690255

Вопрос

По умолчанию gitlab имеет следующую конфигурацию: gitlab.yml :

email:
  from: notify@gitlabhq.com
  host: gitlabhq.com

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

Как мне это сделать?

Это было полезно?

Решение

Это смущено меня тоже.Но для изменения настройки почты вы редактируете их в конфигурации / средах / productions.rb, просто добавьте конфигурацию action_mailer.smtp_settings, такие как приложение Regular Rails.

Другие советы

Теперь он полностью отличается в Gitlab 5.2 +.

Это в "/ home/git/gitlab/config/initializers/smtp_settings.rb.sample", и нам просто нужно следовать инструкциям в этом.

<Сильные> Примечание : Этот метод был полезен для более старых версий gitlab. См. Ответ Girish для более новых версий.


В конце конфина / среды / production.rb Вы можете добавить что-то вроде этого:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      :address => 'yourserver.com',
      :port => 25,
      :domain => 'gitlab.yourserver.com',
      :authentication => :plain,
      :user_name => 'gitlab@yourserver.com',
      :password => 'yourPassword',
      :enable_starttls_auto => true
  }
.

Обратитесь к документации ActionMailer для более подробного описания возможных конфигураций: http://api.rubyonrails.org/Classes/actionmailer/base.html

Примечание : Вам возможно, придется редактировать файл еще раз после обновления GitLab

Для Gitlab > 7 омнибуса отредактируйте /etc/gitlab/gitlab.rb как показано ниже и запустите sudo gitlab-ctl reconfigure

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

Источник: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md

А email:host: конфигурация в gitlab.yml на самом деле не для почтового сервера/узла SMTP.Он используется для создания ссылок на ваш хост Gitlab в электронном письме.Мы называем наш сервер gitlab «gitlab.local» (и для него есть запись DNS), поэтому в нашей конфигурации указано: host: gitlab.local.

Таким образом, когда пользователи получают электронное письмо от Gitlab, ссылки будут работать, а не ссылаться на http://localhost/, как по умолчанию.

Там какая-то избыточная конфигурация.Чтобы URL-адреса клонов git корректно отображались в Gitlab, вам также необходимо настроить web:host: и git_host:host: с тем же именем хоста.

web:
  host: gitlab.local
  port: 80
  https: false

email:
   host: gitlab.local
   protocol: http

git_host:
   host: gitlab.local

Если вы используете HTTPS, измените web:https:, web:port:, и email:protocol:.

Это мои записи в конце в / incrfig/environment/production.rb и это работает для меня.


Ознакомьтесь с параметрами SendMail и используйте внешние реле SMTP


  # #config.action_mailer.delivery_method = :sendmail ## Comment out this

  # Defaults to:

  # # config.action_mailer.sendmail_settings = {

  # #   :location => '/usr/sbin/sendmail',

  # #   :arguments => '-i -t'

  # # }

  config.action_mailer.perform_deliveries = true

  config.action_mailer.raise_delivery_errors = true

  # # SMTP Settings

  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {

      :address => '10.146.10.90', ## My SMTP Relay/Gateway

      :port => 25, ## SMTP Port

      :domain => 'gitlab.example.com', ## My Domain

      :authentication => :plain, ## Let it be plain as it is inside my LAN

      ##:user_name => 'gitlab@yourserver.com', ## This is not required as long as 

      ##:password => 'yourPassword', ## SMTP Gateway allows anonymous relay

      ##:enable_starttls_auto => true ## In LAN

      ##:user_name => '',

      ##:password => '',

      :enable_starttls_auto => true
  }
end
.

Видимо расположение этих настроек менялось (несколько раз) с тех пор, как изначально был задан этот вопрос.В настоящее время по состоянию на 02.11.2018:

Настройки находятся в gitlab.rb согласно официальной документации:

enter image description here

https://docs.gitlab.com/omnibus/settings/smtp.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top