このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

通知のためのメール設定

ユーザが GitHub Enterprise Server のアクティビティにすばやく応答できるようにするために、GitHub Enterprise Serverのインスタンス を設定して、Issue、プルリクエスト、およびコミットコメントのメール通知を送信できます。

Enterprise 向けの SMTP を設定する

  1. GitHub Enterprise Serverの管理アカウントから、任意のページの右上にあるをクリックしてください。 サイトアドミン設定にアクセスするための宇宙船のアイコン
  2. 左のサイドバーでManagement Consoleをクリックしてください。 左のサイドバーのManagement Consoleタブ
  3. ページの上部でSettings(設定)をクリックしてください。 設定タブ
  4. 左のサイドバーで Email(メール)をクリックしてください。 メールタブ
  5. Enable email(メールの有効化)を選択してください。 これでアウトバウンドとインバウンドのメールがどちらも有効化されますが、インバウンドのメールが動作するには着信メールを許可する DNS とファイアウォールの設定に記述されているように DNS を設定する必要もあります。 アウトバウンドメールの有効化
  6. SMTP サーバーの設定を入力します。
    • [Server address] フィールドに SMTP サーバのアドレスを入力します。
    • [Port] フィールドには、SMTP サーバがメールを送信するのに使用するポートを入力します。
    • [Domain] フィールドには、SMTP サーバが HELO レスポンスを送信するドメイン名があれば入力してください。
    • [Authentication] ドロップダウンを選択し、SMTP サーバーで使用される暗号化の種類を選択します。
    • [No-reply email address(No-replyメールアドレス)] フィールドには、すべての通知メールの From および To フィールドに使うメールアドレスを入力してください。
  7. no-replyメールアドレスへの着信メールをすべて破棄したい場合には、Discard email addressed to the no-reply email address(no-replyメールアドレスへのメールの破棄)を選択してください。 no-reply メールアドレス宛のメールを廃棄するチェックボックス
  8. [Support] で、リンクの種類を選択してユーザに追加のサポートを提供します。
    • Email(メール): 内部的なメールアドレス。
    • URL: 内部的なサポートサイトへのリンク。 http:// または https:// を含める必要があります。 サポートのメールあるいは URL
  9. メール配信のテスト

メール配信のテスト

  1. Email(メール)セクションの上部で、Test email settings(メール設定のテスト)をクリックしてください。 メール設定のテスト

  2. Send test email to(テストメールの送信先)フィールドに、テストメールを送信するアドレスを入力してください。 メールアドレスのテスト

  3. Send test email(テストメールの送信)をクリックしてください。 テストメールの送信

    Tip:即時の配信失敗や送出メール設定のエラーなど、テストメールの送信時にSMTPエラーが生じたなら、それらはTest email settingsダイアログボックスに表示されます。

  4. テストメールが失敗したならメール設定のトラブルシューティングをしてください。

  5. テストメールが成功したなら、ページの下部でSave settings(設定の保存)をクリックしてください。 設定保存のボタン

  6. 設定の実行が完了するのを待ってください。 インスタンスの設定

メール着信を許可する DNS とファイアウォールの設定

通知へのメールでの返信を許可したいなら、DNSを設定しなければなりません。

  1. インスタンスのポート25がSMTPサーバにアクセスできることを確認してください。
  2. reply.[hostname]を指すAレコードを作成してください。 DNSプロバイダとインスタンスのホスト設定によっては、 *.[hostname]を指す単一のAレコードを作成できる場合があります。
  3. reply.[hostname]を指すMXレコードを作成して、このドメインへのメールがインスタンスにルーティングされるようにしてください。
  4. noreply.[hostname][hostname] を指すようにする MX レコードを作成し、 通知メールの cc アドレスへの返信がインスタンスにルーティングされるようにしてください。 詳しい情報については、「通知を設定する」を参照してください。

メール配信のトラブルシューティング

Support Bundleの作成

表示されたエラーメッセージから何が悪いのかを判断できない場合、メールサーバと GitHub Enterprise Server 間の SMTP のやりとりすべてを含む Support Bundle をダウンロードできます。 Support Bundleをダウンロードして展開したら、完全なSMTPのやりとりのログと関連するエラーを探してenterprise-manage-logs/unicorn.logのエントリをチェックしてください。

unicornログは以下のようなトランザクションになっているはずです。

This is a test email generated from https://10.0.0.68/setup/settings
Connection opened: smtp.yourdomain.com:587
-> "220 smtp.yourdomain.com ESMTP nt3sm2942435pbc.14\r\n"
<- "EHLO yourdomain.com\r\n"
-> "250-smtp.yourdomain.com at your service, [1.2.3.4]\r\n"
-> "250-SIZE 35882577\r\n"
-> "250-8BITMIME\r\n"
-> "250-STARTTLS\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "STARTTLS\r\n"
-> "220 2.0.0 Ready to start TLS\r\n"
TLS connection started
<- "EHLO yourdomain.com\r\n"
-> "250-smtp.yourdomain.com at your service, [1.2.3.4]\r\n"
-> "250-SIZE 35882577\r\n"
-> "250-8BITMIME\r\n"
-> "250-AUTH LOGIN PLAIN XOAUTH\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "AUTH LOGIN\r\n"
-> "334 VXNlcm5hbWU6\r\n"
<- "dGhpc2lzbXlAYWRkcmVzcy5jb20=\r\n"
-> "334 UGFzc3dvcmQ6\r\n"
<- "aXRyZWFsbHl3YXM=\r\n"
-> "535-5.7.1 Username and Password not accepted. Learn more at\r\n"
-> "535 5.7.1 http://support.yourdomain.com/smtp/auth-not-accepted nt3sm2942435pbc.14\r\n"

このログからは、アプライアンスについて以下のことが分かります。

  • SMTPサーバとのコネクションを開いている(Connection opened: smtp.yourdomain.com:587)。
  • コネクションの作成には成功し、TLSの使用を選択している(TLS connection started)。
  • login認証が実行されている(<- "AUTH LOGIN\r\n")。
  • SMTPサーバは、認証を不正として拒否している(-> "535-5.7.1 Username and Password not accepted.)。

GitHub Enterprise Serverのインスタンスログのチェック

インバウンドのメールが機能していることを検証する必要がある場合、インスタンスの /var/log/mail.log/var/log/mail-replies/metroplex.log との 2 つのログファイルを検証してください。

/var/log/mail.log は、メッセージがサーバーに到達したかを検証します。 以下は、成功したメールの返信の例です:

Oct 30 00:47:18 54-171-144-1 postfix/smtpd[13210]: connect from st11p06mm-asmtp002.mac.com[17.172.124.250]
Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: 51DC9163323: client=st11p06mm-asmtp002.mac.com[17.172.124.250]
Oct 30 00:47:19 54-171-144-1 postfix/cleanup[13216]: 51DC9163323: message-id=<b2b9c260-4aaa-4a93-acbb-0b2ddda68579@me.com>
Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: from=<tcook@icloud.com>, size=5048, nrcpt=1 (queue active)
Oct 30 00:47:19 54-171-144-1 postfix/virtual[13217]: 51DC9163323: to=<reply+i-1-1801beb4df676a79250d1e61e54ab763822c207d-5@reply.ghe.tjl2.co.ie>, relay=virtual, delay=0.12, delays=0.11/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: removed
Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: disconnect from st11p06mm-asmtp002.mac.com[17.172.124.250]

クライアントがまず接続し、続いてキューがアクティブになっていることに注意してください。 そしてメッセージが配信され、クライアントがキューから削除され、セッションが切断されています。

/var/log/mail-replies/metroplex.log は、インバウンドのメールが Issue やプルリクエストに返信として追加されるよう処理されているかを示します。 以下は成功したメッセージの例です:

[2014-10-30T00:47:23.306 INFO (5284) #] metroplex: processing <b2b9c260-4aaa-4a93-acbb-0b2ddda68579@me.com>
[2014-10-30T00:47:23.333 DEBUG (5284) #] Matched /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie
[2014-10-30T00:47:23.334 DEBUG (5284) #] Moving /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie => /data/user/incoming-mail/success

metroplex がインバウンドのメッセージをキャッチして処理し、ファイルを /data/user/incoming-mail/success に移動します。

DNS設定の検証

インバウンドのメールを適切に処理するには、適切にAレコード(あるいはCNAME)と共にMXレコードを設定しなければなりません。 詳しい情報については、「着信メールを許可するよう DNS およびファイアウォールを設定する」を参照してください。

ファイアウォールあるいはAWSセキュリティグループの設定のチェック

GitHub Enterprise Serverのインスタンスがファイアウォールの背後にあったり、AWSのセキュリティグループを通じてアクセスされていたりするなら、reply@reply.[hostname]にメールを送信するすべてのメールサーバーに対してポート25がオープンされていることを確かめてください。

サポートへの連絡

依然として問題が解決できない場合は、GitHub Enterprise Support または GitHub Premium Support に連絡してください。 問題のトラブルシューティングを支援するため、メールにはhttp(s)://[hostname]/setup/diagnosticsからの出力ファイルを添付してください。

問題がまだ解決していませんか?