Страницы

Поиск по вопросам

пятница, 15 марта 2019 г.

smtplib в Python c smtp.yandex.ru

Юзаю Python 3.4.3. Хочу написать простенький скрипт, который будет отсылать на заданный ящик текстовую информацию. Нашёл : следующий пример. В режиме интерпретатора ввожу:
>>> import smtplib >>> server = smtplib.SMTP('smtp.yandex.ru', 465)
И на второй строчке интерпретатор наглухо виснет. Для Яндекса инфу о сервере брал отсюда
UPD: если использовать то же для Gmail:
server = smtplib.SMTP('smtp.gmail.com', 587)
То всё норм. Однако хочется (т.е. имеется ящик) подключаться к Яндексу. Возможно это?
UPD2: если для Яндекса юзать порт 587, то вторая строчка тоже проходит. Однако третья:
server.login("youremailusername", "password")
Приводит к поднятию эксепшена smtplib.SMTPServerDisconnected
UDP3: нашёл этот вопрос. Делаю так:
import smtplib smtp = smtplib.SMTP_SSL() smtp.connect('smtp.yandex.ru')
И вываливается ssl.SSLEOFError
UPD4: Нашёл эту ссылку и сделал так:
server = smtplib.SMTP_SSL('smtp.yandex.ru:465') server.login('login', 'pass')
И всё заработало. Заработало в том смысле, что пришло smtplib.SMTPAuthenticationError с сообщением, суть которого заключается в том что я веду себя как робот и мне надо привязать номер мобильного чтобы система перестала видеть во мне робота. Видимо, защита от подбора пароля.


Ответ

@Xyanight (надеюсь я его позвал): для Gmail
import smtplib
def sendEMail(text): server = smtplib.SMTP("smtp.gmail.com", 587) server.ehlo() server.starttls() server.login("login", "pass") message = "
".join([ "From: от кого", "To: кому", "Subject: тема", "", str(text) ]) server.sendmail("от кого", "кому", message) server.quit()

Комментариев нет:

Отправить комментарий