2014-12-07 5 views
0

Я хотел бы отправить электронное письмо на Python. Ниже приведен пример кода:Как отправить электронное письмо в python?

#!/usr/bin/python 

import smtplib 

sender = '[email protected]' 
receivers = ['[email protected]'] 

message = """From: From Person <[email protected]> 
To: To Person <[email protected]> 
Subject: SMTP e-mail test 

This is a test e-mail message. 
""" 

try: 
    smtpObj = smtplib.SMTP('localhost') 
    smtpObj.sendmail(sender, receivers, message)   
    print("Send OK.") 
except SMTPException: 
    print("Send NOT OK.") 

Когда я пытаюсь запустить эту программу, я получил некоторые ошибки:

Traceback (most recent call last): 
    File ".\sendEmail.py", line 16, in <module> 
    smtpObj = smtplib.SMTP('localhost') 
    File "C:\Python34\lib\smtplib.py", line 242, 
    (code, msg) = self.connect(host, port) 
    File "C:\Python34\lib\smtplib.py", line 321, 
    self.sock = self._get_socket(host, port, se 
    File "C:\Python34\lib\smtplib.py", line 292, 
    self.source_address) 
    File "C:\Python34\lib\socket.py", line 509, i 
    raise err 
    File "C:\Python34\lib\socket.py", line 500, i 
    sock.connect(sa) 
ConnectionRefusedError: [WinError 10061] Nie mo 

During handling of the above exception, another 

Traceback (most recent call last): 
    File ".\sendEmail.py", line 19, in <module> 
    except SMTPException: 
NameError: name 'SMTPException' is not defined 

Как я могу улучшить этот код, чтобы отправить по электронной почте? Благодарю.

+1

Вам нужно использовать 'except smtplib.SMTPException' ... –

+2

Вам также необходимо, чтобы SMTP-сервер прослушивал' localhost: 25'. –

ответ

1

Посмотрите на этой линии:

smtpObj = smtplib.SMTP('localhost')

Вы пытаетесь подключиться к локальной машине - ваш собственный компьютер. У вас есть SMTP-сервер? Я так не думаю.

Настройка надлежащего SMTP-сервера. Для этого вы можете использовать свою личную учетную запись электронной почты.

+0

Итак, есть ли простой способ отправить электронную почту, например: [email protected], на адрес [email protected]? Благодарю. – user2104552

+0

Да, для этого используется существующий SMTP-сервер. Вот пример: http://www.mkyong.com/python/how-do-send-email-in-python-via-smtplib/ – ezaquarii

Смежные вопросы