Расширение STARTTLS не поддерживается сервером - PullRequest
13 голосов
/ 15 июня 2011

Это может быть повторный вопрос, но я все еще сталкиваюсь с проблемами по этому вопросу, надеюсь, что есть решение вокруг.Заранее спасибо.

Я пытаюсь отправить почту через сервер компании

В настоящее время я использую Python версии 2.6 и Ubuntu 10.04

Это сообщение об ошибке Iполучил

Traceback (most recent call last):

  File "hxmass-mail-edit.py", line 227, in <module>
    server.starttls()

  File "/usr/lib/python2.6/smtplib.py", line 611, in starttls
    raise SMTPException("STARTTLS extension not supported by server.") smtplib.SMTPException: STARTTLS extension not supported by server.

Вот часть кода

server = smtplib.SMTP('smtp.abc.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.ehlo()
server.login('sales@abc.com', 'abc123')
addressbook=sys.argv[1]

Ответы [ 7 ]

7 голосов
/ 06 июня 2012

Удаление ehlo() до starttls().

starttls() + ehlo() приводит к двум сообщениям HELLO, в результате чего сервер удаляет STARTTLS в ответном сообщении.

server = smtplib.SMTP('smtp.abc.com', 587)
server.starttls()
server.ehlo()
server.login('sales@abc.com', 'abc123')
4 голосов
/ 11 сентября 2018

У меня была похожая проблема при попытке отправить письмо через сервер компании (без проверки подлинности)

Я решил удалить server.ehlo и удалить номер порта:

server = smtplib.SMTP("smtp.mycompany.com")
server.sendmail(fromaddr, toaddr, text)
3 голосов
/ 29 января 2013

удаление server.ehlo() до server.starttls() помогло мне заставить мой код работать! Спасибо, Леонард! мой код:

s = smtplib.SMTP("smtp.gmail.com",587)
s.starttls()
s.ehlo
try:
    s.login(gmail_user, gmail_psw)
except SMTPAuthenticationError:
    print 'SMTPAuthenticationError'
s.sendmail(gmail_user, to, msg.as_string())
s.quit()
2 голосов
/ 16 января 2017

Я могу решить проблему с помощью приведенного ниже кода, добавив номер порта с именем сервера:

server = smtplib.SMTP('smtp.abc.com:587')
1 голос
/ 15 июня 2011

Ошибка говорит само за себя, кажется, что SMTP-сервер, который используется, не поддерживает STARTTLS, и вы уже набираете server.starttls().Попробуйте использовать сервер без звонка server.starttls().

Без дополнительной информации - единственное, что я могу сказать.

0 голосов
/ 01 мая 2015

Да, поставив server.starttls() выше server.ehlo(), это решено.

0 голосов
/ 15 июня 2011

Вы уверены, что хотите зашифровать (StartTLS) соединение с почтовым сервером? Я бы связался с кем-то, кто знает внутренности этого сервера, чтобы узнать, какой протокол / шифрование использовать.

Вы говорите, что при удалении вызова на server.starttls() вы получаете другую серию сообщений об ошибках. Не могли бы вы также опубликовать эти сообщения?

Кроме того, вы можете прочитать о StartTLS, чтобы понять, что это такое и почему вы хотите его использовать. Кажется, вы пишете программу Serious Business, и в этом случае вы, вероятно, захотите понять, что вы делаете, с точки зрения безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...