import smtplib
fromaddress = '[email protected]'
toaddress = [fromaddress]
message = """
From: %s
To: %s
Subject: test
Hello
Goodbye
""" % (fromaddress, toaddress)
server = smtplib.SMTP('mydomain.com')
server.set_debuglevel(1)
server.sendmail(fromaddress, toaddress, message)
Этот код открывает сокет ok, но затем сбой при отправке sendmail с ошибкой «Соединение неожиданно закрыто». От взгляда на smtplib source это происходит, когда пустой smtp-сервер возвращается.python smtplib sendmail failing
Что мне не хватает по вышеуказанному коду? Я запускаю это на дешевом веб-хосте в качестве скрипта cgi, и как часть их сервиса у них установлены службы sendmail и python. В своих документах у них есть стандартный пример отправки электронной почты в php, без проверки подлинности, поэтому я предполагаю, что то же самое должно работать для python.
У кого-нибудь есть понимание? Хост-хост-агент, если это помогает.
EDIT:
Основная ошибка сервера SMTP оформив жесткий сброс т.е. TCP 'сброса Подключение к одноранговой. В каких обстоятельствах сервер электронной почты это сделает?
Это может закрыть соединение, если он решит, что сообщение является спамом. Например, если из адреса действительно «[email protected]». Или вы можете подключиться к неправильному серверу smtp. Проверьте обмен HELO и убедитесь, что у вас есть правильный сервер. Разрешает ли «mydomain.com» запись A, указывающую на SMTP-сервер хост-сервера? Наконец, попробуйте использовать telnet и запустить протокол SMTP вручную. Возможно, вы заметите сообщение об ошибке, которое имеет смысл. –
no telnet access :( – user1561108
Вам не нужен telnet-доступ к вашему серверу, вам просто нужен доступ к оболочке любого типа. После того, как вы вошли в ваш сервер, * затем * вы запустите «telnet mydomain.com 25». –