デフォルトでは、gitlab には次の構成がありますgitlab.yml
。
email:
from: notify@gitlabhq.com
host: gitlabhq.com
しかし、別のメール サーバーを使用するには、他の変数 (ホスト、ポート、ユーザー、パスワードなど) を指定する必要があります。
どうやってそれをするのですか?
デフォルトでは、gitlab には次の構成がありますgitlab.yml
。
email:
from: notify@gitlabhq.com
host: gitlabhq.com
しかし、別のメール サーバーを使用するには、他の変数 (ホスト、ポート、ユーザー、パスワードなど) を指定する必要があります。
どうやってそれをするのですか?
注: この方法は、古いバージョンの Gitlab で役立ちました。新しいバージョンについては、Girishの回答を参照してください。
config/environments/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 の更新後にファイルを再度編集する必要がある場合があります
これは私も混乱しました。ただし、メール設定を変更するには、config/environments/production.rb で編集します。通常の Rails アプリのように config.action_mailer.smtp_settings を追加するだけです。
のemail:host:
構成gitlab.yml
は、実際にはメール サーバー/SMTP ホスト用ではありません。電子メールで Gitlab ホストへのリンクを作成するために使用されます。gitlab サーバーを 'gitlab.local' と呼びます (そして、その DNS エントリを持っています) ので、構成はhost: gitlab.local
.
このようにして、ユーザーが Gitlab から電子メールを受信すると、デフォルトの へのリンクではなく、リンクが機能http://localhost/
します。
そこにはいくつかの冗長構成があります。Gitlab 内で git clone URL が正しく表示されるようにするには、同じホスト名で と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 => '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