Configuration de la messagerie GitLab :envoi via un autre serveur de messagerie
-
12-12-2019 - |
Question
Par défaut, gitlab a la configuration suivante dans gitlab.yml
:
email:
from: notify@gitlabhq.com
host: gitlabhq.com
mais je dois spécifier d'autres variables (hôte, port, utilisateur, mot de passe, etc.) pour utiliser un autre serveur de messagerie.
Comment je fais ça?
La solution
Cela m'a aussi dérouté.Mais pour modifier les paramètres de messagerie, vous les modifiez dans config/environments/production.rb Ajoutez simplement un config.action_mailer.smtp_settings comme une application Rails classique.
Autres conseils
Maintenant, c'est totalement différent dans Gitlab 5.2+.
Il se trouve dans "/home/git/gitlab/config/initializers/smtp_settings.rb.sample" et nous devons simplement suivre les instructions qui s'y trouvent.
Note:Cette méthode était utile pour les anciennes versions de Gitlab. Voir la réponse de Girish pour les versions plus récentes.
À la fin de config/environments/production.rb, vous pouvez ajouter quelque chose comme ceci :
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
}
Reportez-vous à la documentation d'ActionMailer pour une description plus détaillée des configurations possibles : http://api.rubyonrails.org/classes/ActionMailer/Base.html
Note:Vous devrez peut-être modifier à nouveau le fichier après une mise à jour de Gitlab
Pour Gitlab > 7 omnibus, modifiez /etc/gitlab/gitlab.rb
comme ci-dessous et exécutez 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'
Source: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
Le email:host:
configuration dans gitlab.yml
n'est pas réellement destiné au serveur de messagerie/hôte SMTP.Il est utilisé pour construire les liens vers votre hôte Gitlab dans l'e-mail.Nous appelons notre serveur gitlab 'gitlab.local' (et avons une entrée DNS pour celui-ci), donc notre configuration indique host: gitlab.local
.
De cette façon, lorsque les utilisateurs reçoivent un e-mail de Gitlab, les liens fonctionneront, au lieu de créer un lien vers http://localhost/
, comme c'est le cas par défaut.
Il y a une configuration redondante là-dedans.Pour que les URL de clone git s'affichent correctement dans Gitlab, vous devez également configurer web:host:
et git_host:host:
avec le même nom d'hôte.
web:
host: gitlab.local
port: 80
https: false
email:
host: gitlab.local
protocol: http
git_host:
host: gitlab.local
Si vous utilisez HTTPS, modifiez web:https:
, web:port:
, et email:protocol:
.
Ce sont mes entrées à la fin dans /config/environment/production.rb et cela fonctionne pour moi.
Commentez les options de sendmail et utilisez des relais SMTP externes
# #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
Apparemment, l'emplacement de ces paramètres a changé (plusieurs fois) depuis que cette question a été posée initialement.Actuellement, au 02/11/2018 :
Les paramètres sont dans gitlab.rb
selon la documentation officielle :