Юзаю 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()
Комментариев нет:
Отправить комментарий