smtplib.SMTPServerDisconnected: Connection unexpectedly closed
前の記事に「Pythonでメールを送信する(SMTP)」を書き、そのなかで「送信は簡単」と言うような内容を書いた。だが実際は1時間以上タイトルのエラーに困った。
結果から言うと、SMTPサーバにログイン処理が漏れていたため詰まったものになる。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (133件) を見る
エラーのより正確なものは以下になる。
Traceback (most recent call last):
File "./mail.py", line 68, in
send_mail( cfg, "from@example.jp", "to@example.jp", "こんにちわ", "本文だよ")
File "./mail.py", line 66, in send_mail
send( from_addr, to_addr, message)
File "./mail.py", line 62, in send
smtp.sendmail( from_addr, to_addr, message.as_string())
File "/usr/lib/python2.7/smtplib.py", line 734, in sendmail
self.rset()
File "/usr/lib/python2.7/smtplib.py", line 462, in rset
return self.docmd("rset")
File "/usr/lib/python2.7/smtplib.py", line 387, in docmd
return self.getreply()
File "/usr/lib/python2.7/smtplib.py", line 363, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
なぜか接続先SMTPドメイン宛には送信できるが、接続先SMTPドメインからの送信が出来なかった。非常に悩んだ。1時間以上悩んだ。
結果から言うと単純に認証処理が抜けていただけになる。なぜ忘れていたかは不明だが、sendmail()を呼び出す際のエラーとなっていたために「認証漏れ」ということに気が付かなかった。気づいた時は落胆した。自分のアホさに。
ということで下記のコードで認証を通せばいいだけになる。
smtp.login( cfg["user_name"], cfg["password"])
このエラーについて検索してもほとんど見つからず、検索した結果からは解決が出来なかったため記事にしておく。私のようなアホがすぐに解決できるように。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (133件) を見る
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ,露木誠,ルイス・イアン,石本敦夫,小田切篤,保坂翔馬,大谷弘喜
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (30件) を見る
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 33人 クリック: 791回
- この商品を含むブログ (90件) を見る
- 作者: ビープラウド
- 出版社/メーカー: 秀和システム
- 発売日: 2012/03/26
- メディア: 単行本
- 購入: 6人 クリック: 765回
- この商品を含むブログ (27件) を見る
- 作者: Guido van Rossum,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/02/22
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 136回
- この商品を含むブログ (23件) を見る