2012-06-01 2 views
3

Я пытаюсь использовать smtplib Python для подключения к серверу Dovecot. Оба кажутся достаточно способными, но я должен упустить что-то фундаментальное. Не удалось найти что-либо в документах обоих.Python smtplib с Dovecot/SSL

Не-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('[email protected]', '...') 
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.') 

Что мне не хватает?

Сертификаты сервера самоподписаны, но я не думаю, что это проблема CA, потому что я добираюсь до «+ OK ...».

ответ

3

Dovecot - это сервер POP3/IMAP (для проверки почты). smtplib является SMTP-клиентом (для отправки почты). Чтобы подключиться к Dovecot, вы хотите использовать что-то вроде imaplib или poplib.

+0

Спасибо! Я только что обнаружил, что подключаюсь к неправильному порту (и программному пакету)! Мой SMTP-сервер работает в Postfix и Python/smtplib. – JimB

+0

Это смешная ошибка, (un), к счастью, вы не единственный :) – joar

Смежные вопросы