Вопрос по ruby-on-rails-3, smtp, ruby-on-rails, git – Настройка электронной почты GitLab: отправка через другой почтовый сервер

32

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

email:
  from: [email protected]
  host: gitlabhq.com

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

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

Посмотрите здесь:stackoverflow.com/questions/16201090/… ------ Girish KG
Я ищу то же решение. Пожалуйста, дайте мне знать, если вы нашли лучший способ Hardik Joshi
Вы не можете установить простой SMTP-ретранслятор на хосте, на котором запущен gitlab? После этого вы сможете настроить его для ретрансляции почты с использованием вашего аутентифицированного почтового сервера. Cedric Gatay

Ваш Ответ

7   ответов
0

nce this question was originally asked. Currently as of 2018-11-02:

The settings are in gitlab.rb as per the official documentation:

enter image description here

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

3

и это работает для меня.

Закомментируйте параметры 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 => '[email protected]', ## 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
Можно ли сделать это все через файл /etc/gitlab/gitlab.rb?
Люди, которые понижают, пожалуйста, добавьте комментарий, говорящий, почему они понижены. Чтобы другие люди могли понять, почему этот авторский метод не работает / не является лучшим. Пожалуйста.
5

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

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

Там есть некоторая избыточная конфигурация. Чтобы URL-адреса git clone отображались в 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:.

Я нашел этот ответ полезным для моего собственного сценария установки надлежащих ссылок в письмах с приглашениями учетной записи GitLab, отправленных с моей локальной виртуальной машины GitLab; см вопрос / ответ я разместил здесь:stackoverflow.com/questions/24589361/…
10

вы редактируете их в config / environment / production.rb. Просто добавьте config.action_mailer.smtp_settings, как обычное приложение rails.

30

Note: Этот метод был полезен для более старых версий Gitlab.Смотрите ответ Гириш для новых версий.

В конце config / environment / 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 => '[email protected]',
      :password => 'yourPassword',
      :enable_starttls_auto => true
  }

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

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

Хороший ответ. Это работает, но это более чистый вариант, предложенный Girish KG. Если вы измените файл production.rb, вы можете столкнуться с проблемами при обновлении gitlab с помощью git, и вам потребуется обработать некоторые конфликты в репозитории, прежде чем вы получите успешное обновление.
нота::authentication => :login или же:cram_md5 может быть то, что нужно, также:enable_starttls_auto => false следует использовать, когда tls / ssl не используется на вашем почтовом сервере (обычно, когда порт равен 25, как указано выше).
6

/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

40

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

в версии 6.3.1 файл был перемещен в /home/git/gitlab/config/initializers/smtp_settings.rb.sample
а нужно конфиг постфиксить?
Когда я пытаюсь скопировать настройки, я получаю исключение:stackoverflow.com/questions/26684035/…
Это правильно. Обратите внимание, что установка по умолчанию не будет иметь smtp_settings.rb.sample. Но вы можете получить его из GitHub

Похожие вопросы