web-dev-qa-db-ja.com

GitLabがメールを送信しない

VMにLinux Ubuntu 14.04がインストールされています。最近、GitLab site の指示に従ってGitLab 7.8.2をインストールし、Gitlabでメールを送信する際に問題が発生しました。

たとえば、Webインターフェイスを使用して新しいユーザーを作成しようとすると、サーバーから確認メールが届きません。

  • 環境にPostfixを設定し(「mynetworks」、「myhostname」を設定)、sendmailを使用してテストメールをyahooアカウントに正常に送信しました。
  • この行をファイルに追加しました/ opt/gitlab/embedded/service/gitlab-ci/config/environments/production.rb

    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = { 
       address: "127.0.0.1", 
       port: 25,
       enable_starttls_auto: false 
    }
    
  • GitLabインスタンスへの登録中に/ var/log/mail.logをテールし、GitLabが実際にpostfixと対話しているが失敗したことを確認できました。ログは、IPがブロックされているため操作が成功しなかったことを示していましたが、sendmailコマンドを使用してメールを送信できるため、これは正しくないと思います。

    / var/log/mail.log:

    Mar  6 10:58:32 ubuntu postfix/qmgr[12506]: 5BEE724E74: from=<gitlab@ubuntu>, size=630, nrcpt=1 (queue active)
    Mar  6 10:59:02 ubuntu postfix/smtp[19746]: connect to example.com[93.184.216.34]:25: Connection timed out
    Mar  6 10:59:02 ubuntu postfix/smtp[19746]: connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable
    Mar  6 10:59:02 ubuntu postfix/smtp[19746]: 5BEE724E74: to=<[email protected]>, relay=none, delay=30, delays=0.16/0.1/30/0, dsn=4.4.1, status=deferred (connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
    Mar  6 11:00:50 ubuntu postfix/pickup[12505]: 07BF424E7A: uid=999 from=<gitlab@ubuntu>
    Mar  6 11:00:50 ubuntu postfix/cleanup[19923]: 07BF424E7A: message-id=<[email protected]>
    Mar  6 11:00:50 ubuntu postfix/qmgr[12506]: 07BF424E7A: from=<gitlab@ubuntu>, size=626, nrcpt=1 (queue active)
    Mar  6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (Host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command))
    Mar  6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: lost connection with mta6.am0.yahoodns.net[66.196.118.33] while sending RCPT TO
    Mar  6 11:00:51 ubuntu postfix/cleanup[19923]: 1A85F24E7C: message-id=<20150306190051.1A85F24E7C@ubuntu>
    Mar  6 11:00:51 ubuntu postfix/qmgr[12506]: 1A85F24E7C: from=<>, size=2643, nrcpt=1 (queue active)
    Mar  6 11:00:51 ubuntu postfix/bounce[19929]: 07BF424E7A: sender non-delivery notification: 1A85F24E7C
    Mar  6 11:00:51 ubuntu postfix/qmgr[12506]: 07BF424E7A: removed
    
4
givo

問題が見つかりました。ログで確認できるように:

Mar  6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (Host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command))

これは、MAIL FROMコマンドへの応答としてエラーが発生したことを示しています。そして、あなたがこのログ行で見ることができるように:

Mar  6 11:00:50 ubuntu postfix/pickup[12505]: 07BF424E7A: uid=999 from=<gitlab@ubuntu>

私のドメインは@ ubuntoでしたが、それは悪いドメイン名です!

GitLabの構成ファイルの "external_url"変数を " http:// ubunt "からFQDNに設定して、ドメイン名を変更する必要がありました。 (/ etc/gitlab/gitlab.rb

1
givo

Gitlabインスタンスからのメールがpostfixによって受け入れられました

Mar  6 10:58:32 ubuntu postfix/qmgr[12506]: 5BEE724E74: from=<gitlab@ubuntu>, size=630, nrcpt=1 (queue active)

ただし、宛先への配信はここでは機能しません。

Mar  6 10:59:02 ubuntu postfix/smtp[19746]: 5BEE724E74: to=<[email protected]>, relay=none, delay=30, delays=0.16/0.1/30/0, dsn=4.4.1, status=deferred (connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)

サーバーはIPv6を使用しようとしますが、接続できません。 main.cfでこれを使用して、IPv6を手動で無効にする必要があるようです:

inet_protocols = ipv4

しかし、yahooにリレー(送信)すると、エラーが発生します。

Mar  6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (Host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command))

動的IP 109.65.131.14がメーリングリストにあるため、拒否されます。このインスタンスは自宅にあり、動的IPを使用しているようです。しかし、このIPの以前のユーザーの1人がスパムを送信しようとしたとき、これらはしばしばスパムリストにあります。 (自宅または別の場所で)静的IPが必要になるか、リレーサーバーを使用する必要があります。そして、適切なFQDNを使用し、IPなどに適切なリバースDNSレコード(PTR)を設定します。スパムとして分類されないようにする方法に関する他の多くの質問を参照してください。

送信プロセスが失敗したため、配信不能通知が送信者に送信されます

Mar  6 11:00:51 ubuntu postfix/bounce[19929]: 07BF424E7A: sender non-delivery notification: 1A85F24E7C
Mar  6 11:00:51 ubuntu postfix/qmgr[12506]: 07BF424E7A: removed

ユーザーgitlabに戻ってくるメールを読むか、管理者アカウントのエイリアスとして設定する必要があります。

2
sebix