Отправка электронной почты с помощью Python с использованием библиотеки SMTP - PullRequest
1 голос
/ 05 ноября 2010
import smtplib

def prompt(prompt):
    return raw_input(prompt).strip()

fromaddr = prompt("From: ")
toaddrs  = prompt("To: ").split()
print "Enter message, end with ^D (Unix) or ^Z (Windows):"


msg = ("From: %s\r\nTo: %s\r\n\r\n"
       % (fromaddr, ", ".join(toaddrs)))
while 1:
    try:
        line = raw_input()
    except EOFError:
        break
    if not line:
       break
    msg = msg + line

    print "Message length is " + repr(len(msg))

server = smtplib.SMTP('smtp.live.com:25')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

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

1 Ответ

2 голосов
/ 05 ноября 2010

Ваш вызов smtplib.SMTP() использует недопустимые аргументы. Согласно документации smtplib:

SMTP ([host [, port [, local_hostname [, Тайм-аут]]]])

Итак, конструктор SMTP принимает необязательные аргументы для имени хоста, порта и т. Д. Но вы передали порт и имя хоста как один аргумент (server = smtplib.SMTP('smtp.live.com:25')).

Если у вас все остальное правильно, если вы измените эту строку на server = smtplib.SMTP('smtp.live.com', 25).

Если ваш сервер требует аутентификации (и я подозреваю, что это так), перед тем, как вы действительно отправите электронное письмо, вам нужно будет позвонить server.login(user, password) для входа в систему, чтобы вы могли действительно отправить сообщение.

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