3

Pythonのsmtplibを使用してDovecotサーバーに接続しようとしています。どちらも十分に能力があるように見えますが、私は基本的な何かを見逃しているに違いありません。どちらのドキュメントにも何も見つかりませんでした。

非SSL接続はすぐに拒否されます...

Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32
>>> import smtplib
>>> x = smtplib.SMTP()
>>> x.set_debuglevel(True)
>>> x.connect('mail.jc-bell.com', 995)
connect: ('mail.jc-bell.com', 995)
connect: (995, 'mail.jc-bell.com')

SSL接続は近いようですが、Dovecotはehlo/helo以外のものを期待しています

>>> import smtplib
>>> x = smtplib.SMTP_SSL()
>>> x.set_debuglevel(True)
>>> x.connect('mail.TheMailServer.com', 995)
connect: ('mail.TheMailServer.com', 995)
connect: ('mail.TheMailServer.com', 995)
reply: '+OK Dovecot ready.\r\n'
reply: retcode (-1); Msg: Dovecot ready.
connect: Dovecot ready.
(-1, 'Dovecot ready.')
>>> x.login('me@TheMailServer.com', '...')
send: 'ehlo my.host\r\n'
reply: '-ERR Unknown command.\r\n'
reply: retcode (-1); Msg: Unknown command.
send: 'helo my.host\r\n'
reply: '-ERR Unknown command.\r\n'
reply: retcode (-1); Msg: Unknown command.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Software\Python27\lib\smtplib.py", line 564, in login
    self.ehlo_or_helo_if_needed()
  File "C:\Software\Python27\lib\smtplib.py", line 527, in ehlo_or_helo_if_needed
    raise SMTPHeloError(code, resp)
smtplib.SMTPHeloError: (-1, 'Unknown command.')

私は何が欠けていますか?

サーバーの証明書は自己署名されていますが、「+ OK ...」まで到達しているため、CAの問題ではないと思います。

4

1 に答える 1

3

DovecotはPOP3/IMAPサーバー(メールチェック用)です。smtplibは(メールを送信するための)SMTPクライアントです。Dovecotに接続するには、imaplibpoplibなどを使用する必要があります。

于 2012-06-01T13:51:26.647 に答える