自宅からちょっとしたLinuxのパッチを投げようと思って、さくらのメールサーバーをSMTPサーバーに指定して、git send-emailでメールを送ろうとしたらハマりました。
さくらのメールサーバーはSTARTTLSを使ってSMTP認証をせよ(メールソフトの設定 - さくらのサポート情報)とのことなので、.gitconfigの設定をこんな感じにしました。
[sendemail]
smtpencryption = tls
smtpserver = xxxx.sakura.ne.jp
smtpuser = yyyy@xxxx.sakura.ne.jp
smtpserverport = 587
実行してみると、Diedなんとかかんとか〜が表示され、メールが送れません。なんで??
$ git --version git version 2.18.0 $ git send-email --to 'xxxx' 0001-xxxx.patch ...snip... Died at /usr/lib/git-core/git-send-email line 1523.
こういうトラブルのときは --smtp-debug=1を付ければ大体わかるはずです。
$ git send-email --to 'xxxx' --smtp-debug=1 0001-xxxx.patch ...snip... Net::SMTP::_SSL=GLOB(0x55ddcc6c0640)>>> (decoded) Net::SMTP::_SSL=GLOB(0x55ddcc6c0640)>>> Net::SMTP::_SSL=GLOB(0x55ddcc6c0640)<<< 235 2.0.0 OK Authenticated Net::SMTP::_SSL=GLOB(0x55ddcc6c0640)>>> MAIL FROM:<xxxxxxxx> Died at /usr/lib/git-core/git-send-email line 1523.
なるほどなるほど?これはわかりませんね。どうなってるんだ、このサーバーは?
幸いなことに /usr/lib/git-core/git-send-emailはPerlのスクリプトですので、簡単にデバッグプリントを入れられます。
認証部分に当たりを付けて、小一時間、試行錯誤してみたところSMTP-AUTHにデフォルトでDIGEST-MD5が選択されると、失敗することがわかりました。じゃあ、強制的にSMTP-AUTHをPLAINにすればうまくいくよね?下記のように設定を変えてみました。
[sendemail]
smtpencryption = tls
smtpserver = xxxx.sakura.ne.jp
smtpuser = yyyy@xxxx.sakura.ne.jp
smtpserverport = 587
smtpauth = PLAIN # ★★この行を足した★★
無事メールが送れました。良かった良かった。
< | 2018 | > | ||||
<< | < | 09 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | - | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | - | - | - | - | - | - |
合計:
本日:
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2023.
Powered by PHP 8.2.15.
using GD bundled (2.1.0 compatible)(png support.)