Par défaut, gitlab a la configuration suivante dans gitlab.yml
:
email:
from: [email protected]
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?
Cela m'a confondu aussi. Mais pour modifier le paramètre de messagerie, modifiez-les dans config/environnements/production.rb. Ajoutez simplement un config.action_mailer.smtp_settings comme une application Rails standard.
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 y sont contenues.
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/environnements/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 => '[email protected]',
:password => 'yourPassword',
:enable_starttls_auto => true
}
Reportez-vous à la documentation ActionMailer pour une description plus détaillée des configurations possibles: http://api.rubyonrails.org/classes/ActionMailer/Base.html
Note: Il se peut que vous deviez modifier le fichier après une mise à jour de Gitlab.
Pour Gitlab> 7 omnibus, éditez /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
La configuration email:Host:
dans gitlab.yml
ne concerne pas réellement le serveur de messagerie/l'hôte SMTP. Il est utilisé pour construire les liens vers votre hôte Gitlab dans le courrier électronique. Nous appelons notre serveur gitlab 'gitlab.local' (et avons une entrée DNS pour cela), donc notre configuration dit Host: gitlab.local
.
Ainsi, lorsque les utilisateurs recevront un courrier électronique de Gitlab, les liens fonctionneront, au lieu de renvoyer à 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, changez 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 => '[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
Apparemment, l'emplacement de ces paramètres a changé (plusieurs fois) depuis la réponse à cette question. Actuellement, à compter du 2018-11-02:
Les paramètres sont dans gitlab.rb
selon la documentation officielle: