質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Q&A

解決済

2回答

6344閲覧

GitLabから外部SMTPメールが送れない(届かない)

amu0x

総合スコア17

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

0グッド

1クリップ

投稿2018/03/07 04:36

編集2018/03/08 11:41

前提・実現したいこと

社内ローカルのバージョン管理システムの構築のため、CentOS7にomunibusパッケージでGitLabをインストールしました。
GitLabからの通知メールを会社の外メール用SMTPサーバーを使って送信したく、設定を試行しています。

・送信だけできれば良いです。
・SMTPサーバーは社内にありますが、管理者が別なので制限設定やログ等は確認できませんが、GmailやK9Mail等でも利用できています。
・Linux初心者につき、Web検索しつつ手当たり次第試している状況です。

発生している問題・エラーメッセージ

GitLabのブラウザ画面で、新規ユーザー登録をしたり、管理者のメールアドレスを再設定したりしていますが、メールが送られません。

/etc/gitlab/gitlab.rb gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'hoge@hoge.co.jp' gitlab_rails['gitlab_email_display_name'] = 'GitLab' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "mail.hoge.co.jp" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "hoge@hoge.co.jp" gitlab_rails['smtp_password'] = "password" gitlab_rails['smtp_domain'] = "hoge.co.jp" gitlab_rails['smtp_authentication'] = "plain" gitlab_rails['smtp_enable_starttls_auto'] = false gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'none'

ログの見方も覚束ない感じで申し訳ないのですが、production.logというファイルには、以下のようなログが残っていました。
~~"authenticity_token"=>"[FILTERED]"で認証に失敗しているようですが、何故失敗しているのか…~~filteredをfaultedと見間違えました…

production.log [ActiveJob] [ActionMailer::DeliveryJob] [59586f09-0b59-4a46-805a-a26dde98b32d] Performed ActionMailer::DeliveryJob from Sidekiq(mailers) in 540.03ms Started POST "/users/confirmation" for xxx.xxx.xxx.xxx at 2018-03-07 16:37:30 +0900 Processing by ConfirmationsController#create as HTML Parameters: {"utf8"=>"?", "authenticity_token"=>"[FILTERED]", "user"=>{"email"=>"hoge@hoge.co.jp"}} [ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 5d55d39b-f826-444f-886b-b3f5d7eda0ba) to Sidekiq(mailers) with arguments: "DeviseMailer", "confirmation_instructions", "deliver_now", gid://gitlab/User/1, "[暗号化文字列?]", {:to=>"hoge@hoge.co.jp"} Redirected to http://xxx.xxx.xxx.xxx/users/almost_there Completed 302 Found in 50ms (ActiveRecord: 9.3ms) [ActiveJob] [ActionMailer::DeliveryJob] [5d55d39b-f826-444f-886b-b3f5d7eda0ba] Performing ActionMailer::DeliveryJob from Sidekiq(mailers) with arguments: "DeviseMailer", "confirmation_instructions", "deliver_now", gid://gitlab/User/1, "[暗号化文字列?]", {:to=>"hoge@hoge.co.jp"} Started GET "/users/almost_there" for xxx.xxx.xxx.xxx at 2018-03-07 16:37:30 +0900 Processing by ConfirmationsController#almost_there as HTML Completed 200 OK in 58ms (Views: 21.6ms | ActiveRecord: 12.9ms) [ActiveJob] [ActionMailer::DeliveryJob] [5d55d39b-f826-444f-886b-b3f5d7eda0ba] Sent mail to hoge@hoge.co.jp (308.2ms)

試したこと

よくわかっていないまま、Web情報頼りに、最初はsendmailを設定していましたが、うまくいかずアンインストールしました。
次にpostfixを試していましたが、送信だけでも正引きできるドメインが必要とのことで、取得の予定がないので断念して、アンインストールしました。
次にGitLabの設定のみで外部SMTPサーバーが利用できるとのことで設定を行ってみましたが、これもうまくいっていない、というのが今の状況です。

3/8 追記
firewallをstop,disableして、rebootしました。
GMailアカウントを作って試してみましたが、こちらも送られませんでした。

gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'hoge@gmail.com' gitlab_rails['gitlab_email_display_name'] = 'GitLab@hogehost' gitlab_rails['gitlab_email_reply_to'] = 'hoge@gmail.com' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "hoge.gmail.com" gitlab_rails['smtp_password'] = "password" gitlab_rails['smtp_domain'] = "smtp.gmail.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false

3/8追記2
切り分けに役立つ情報を得られないかと思い、再度postfixをインストールして、コンソールからメールの送信テストを行ってみたところ、この場合は送られました。
hoge.co.jpは会社のドメインで、送信元はroot@hoge.co.jpという存在しないアドレスで届いていました。
ただこの状態でも、やはりGitLabのブラウザ画面でユーザー登録やパスワード忘れの操作をしても、メールが送られません。

/etc/postfix/main.cf myhostname = hoge.co.jp mydomain = hoge.co.jp myorigin = $mydomain append_at_myorigin = yes append_dot_mydomain = yes inet_interfaces = localhost inet_protocols = ipv4 mydestination = localhost mynetworks = 127.0.0.1 mail -s "テストメールです。" amu0x@hoge.co.jp これは届きます。 . EOT

3/8追記3
postfixをアンインストールしました。
外部SMTPを使う際はproduction.rbに設定をする、という記事を見つけたので、gitlab.rbの内容と同じように記述しましたが、現状変わらずでした。

/opt/gitlab/embedded/service/gitlab-rails/config/environments/production.rb config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "mail.hoge.co.jp", :port => "587", :domain => "hoge.co.jp", :authentication => :plain, :user_name => "hoge@hoge.co.jp", :password => "password", :enable_starttls_auto => false

linuxで外部smtp経由でメールを送る方法を検索して見つけた方法を試しました。

/root/.mailrb set smtp=smtp://mail.hoge.co.jp:587 set smtp-auth=plain set smtp-auth-user=hoge@hoge.co.jp set smtp-auth-password=password set from=hoge@hoge.co.jp

これでmailコマンドを打つと、次のログが流れて、ちゃんとメールが届きました。

mail -v "テストメール" amu0x@hoge.co.jp テストメール contains invalid character '\343' Subject: これは届きます これは届きますよ . EOT Resolving host mail.hoge.co.jp . . . done. Connecting to xxx.xxx.xxx.xxx:587 . . . connected. 220 mail.hoge.co.jp ESMTP >>> EHLO hostname 250-mail.hoge.co.jp 250-AUTH LOGIN CRAM-MD5 PLAIN 250-AUTH=LOGIN CRAM-MD5 PLAIN 250-PIPELINING 250 8BITMIME >>> AUTH PLAIN 334 >>> [暗号化文字列?] 235 ok, go ahead (#2.0.0) >>> MAIL FROM:<hoge@hoge.co.jp> 250 ok >>> RCPT TO:<amu0x@hoge.co.jp> 250 ok >>> DATA 354 go ahead >>> . 250 ok 1520508525 qp 15486 >>> QUIT 221 mail.hoge.co.jp

その都度、GitLabのブラウザから新規ユーザーを作成していますが、しかし相変わらずメールは届きません…

補足情報(FW/ツールのバージョンなど)

System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.3.6p384
Gem Version: 2.6.13
Bundler Version:1.13.7
Rake Version: 12.3.0
Redis Version: 3.2.11
Git Version: 2.14.3
Sidekiq Version:5.0.5
Go Version: unknown

GitLab information
Version: 10.5.2
Revision: b951e0d
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: http://xxx.xxx.xxx.xxx
HTTP Clone URL: http://xxx.xxx.xxx.xxx/some-group/some-project.git
SSH Clone URL: git@xxx.xxx.xxx.xxx:some-group/some-project.git
Using LDAP: no
Using Omniauth: no

GitLab Shell
Version: 6.0.3
Repository storage paths:

  • default: /var/opt/gitlab/git-data/repositories

Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/03/07 07:18

送られないという部分をもう少し詳しく説明していただけないでしょうか? gitlab のログには、何かメッセージが出ているでしょうか?
guest

回答2

0

自己解決

解決しました。
先日試したproduction.rbの記述と、gitlab.rbの下記の組み合わせで送信できるようになりました。

gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

ありがとうございました。

投稿2018/03/10 14:25

amu0x

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SMTPの設定といっても、サーバによってやり方が違います
POP befor SMTP とかPOP/APOPとかポート番号とかとか

できないってだけではどーしよーもないので、サーバからのレスポンスがどうなるのか見てみたらどーでしょう。

投稿2018/03/07 07:21

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amu0x

2018/03/07 08:00

回答ありがとうございます。 サーバーからのレスポンスというのは、追加したログの内容で把握できますでしょうか。 SMTPサーバーの詳細はすぐに確認できず、後日になります…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問