Ответ 1
Это тоже смутило меня. Но для изменения настройки почты вы редактируете их в config/environment/production.rb Просто добавьте config.action_mailer.smtp_settings, как обычное приложение для рельсов.
По умолчанию gitlab имеет следующую конфигурацию в gitlab.yml
:
email:
from: [email protected]
host: gitlabhq.com
но мне нужно указать другие переменные (хост, порт, пользователь, пароль и т.д.) для использования другого почтового сервера.
Как я это делаю?
Это тоже смутило меня. Но для изменения настройки почты вы редактируете их в config/environment/production.rb Просто добавьте config.action_mailer.smtp_settings, как обычное приложение для рельсов.
Теперь это совершенно другое в Gitlab 5.2 +.
Он находится в "/home/ git/gitlab/config/initializers/smtp_settings.rb.sample", и нам просто нужно следовать инструкциям.
Примечание. Этот метод был полезен для более старых версий Gitlab. См. ответ от Girish для более новых версий.
В конце 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
Примечание. Возможно, вам придется снова отредактировать файл после обновления Gitlab
Для Gitlab > 7 omnibus, отредактируйте /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:
.
Это мои записи в конце в /config/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 => '[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