通知のためのメール設定
GitHub Enterprise Server のアクティビティにユーザが素早く反応しやすくするために、Issue、プルリクエスト、コミットのコメントに対してメール通知を送信するようインスタンスを設定するとともに、インバウンドのメール返信を許可する追加設定もできます。 通知のメールは、ユーザがWatchしているリポジトリでアクティビティがあった場合、参加しているプルリクエストあるいはIssueにアクティビティがあった場合、コメント中でユーザもしくはメンバーとなっているTeamが@メンションされた場合に送信されます。
このガイドの内容
SMTPの設定
-
In the upper-right corner of any page, click .
-
左サイドバーで [Management Console] をクリックします。
-
ページの上部でSettings(設定)をクリックしてください。
-
左のサイドバーで Email(メール)をクリックしてください。
-
Enable email(メールの有効化)を選択してください。 これでアウトバウンドとインバウンドのメールがどちらも有効化されますが、インバウンドのメールが動作するには着信メールを許可する DNS とファイアウォールの設定に記述されているように DNS を設定する必要もあります。
-
メールサーバーの設定を記入してください:
- [Server address] フィールドに SMTP サーバのアドレスを入力します。
- [Port] フィールドには、SMTP サーバがメールを送信するのに使用するポートを入力します。
- [Domain] フィールドには、SMTP サーバが HELO レスポンスを送信するドメイン名があれば入力してください。
- [ Authentication(認証)] ドロップダウンでは、SMTP サーバが利用する暗号化の種類を選択してください。
- [No-reply email address(No-replyメールアドレス)] フィールドには、すべての通知メールの From および To フィールドに使うメールアドレスを入力してください。
Note: If you select the Send from author checkbox in a repository’s Services email webhook, outbound email for that repository will send from the author and not from the no-reply email address. 詳細は「リポジトリへのプッシュに対するメールサービスの通知について」を参照してください。
-
no-replyメールアドレスへの着信メールをすべて破棄したい場合には、Discard email addressed to the no-reply email address(no-replyメールアドレスへのメールの破棄)を選択してください。
-
[Support(サポート)] の下で、ユーザに追加のサポートを提供するリンクの種類を選択してください。
- Email(メール): 内部的なメールアドレス。
- URL: 内部的なサポートサイトへのリンク。
http://
またはhttps://
を含める必要があります。
メール着信を許可する DNS とファイアウォールの設定
通知へのメールでの返信を許可したいなら、DNSを設定しなければなりません。
- インスタンスのポート25がSMTPサーバにアクセスできることを確認してください。
reply.[hostname]
を指すAレコードを作成してください。 DNSプロバイダとインスタンスのホスト設定によっては、*.[hostname]
を指す単一のAレコードを作成できる場合があります。reply.[hostname]
を指すMXレコードを作成して、このドメインへのメールがインスタンスにルーティングされるようにしてください。noreply.[hostname]
が[hostname]
を指すようにする MX レコードを作成し、 通知メールのcc
アドレスへの返信がインスタンスにルーティングされるようにしてください。 詳細は「メール通知について」を参照してください。
DNSの設定ができたら、うまく動作するかをテストできます。
メール配信のテスト
-
Email(メール)セクションの上部で、Test email settings(メール設定のテスト)をクリックしてください。
-
Send test email to(テストメールの送信先)フィールドに、テストメールを送信するアドレスを入力してください。
-
Send test email(テストメールの送信)をクリックしてください。
Tip:即時の配信失敗や送出メール設定のエラーなど、テストメールの送信時にSMTPエラーが生じたなら、それらはTest email settingsダイアログボックスに表示されます。
-
テストメールが失敗したならメール設定のトラブルシューティングをしてください。
-
テストメールが成功したなら、ページの下部でSave settings(設定の保存)をクリックしてください。
-
設定の実行が完了するのを待ってください。
メール配信のトラブルシューティング
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 インスタンスログのチェック
If you need to verify that your inbound email is functioning, there are two logfiles that you can examine on your instance: To verify that /var/log/mail.log and /var/log/mail-replies/metroplex.log.
/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
からの出力ファイルを添付してください。