2012-09-27 96 views
0

我嘗試通過python發送郵件。 根據我的腳本發送是成功的。用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('127.0.0.1', 1025) 
    smtpObj.sendmail(sender, receivers, message) 
    print "Successfully sent email" 
except smtplib.SMTPException: 
    print "Error: unable to send email" 

但是,當我檢查我的電子郵件,我沒有新的郵件。 :( 問題出在哪里哪里是我發送的電子郵件

編輯:??

我的SMTP測試服務器爲:

import smtpd 
import asyncore 

class CustomSMTPServer(smtpd.SMTPServer): 

    def process_message(self, peer, mailfrom, rcpttos, data): 
     print 'Receiving message from:', peer 
     print 'Message addressed from:', mailfrom 
     print 'Message addressed to :', rcpttos 
     print 'Message length  :', len(data) 
     return 

server = CustomSMTPServer(('127.0.0.1', 1025), None) 
print "Started...." 

asyncore.loop() 

我的SMTP服務器說:

Receiving message from: ('127.0.0.1', 65071) 
Message addressed from: [email protected] 
Message addressed to : ['[email protected]'] 
Message length  : 129 
+0

本地主機上的SMTP服務器是否工作?你檢查過垃圾郵件文件夾嗎? – 2012-09-27 10:30:05

+0

你有'.login'嗎? –

+0

本地主機上的端口1025上運行什麼?它有一個日誌文件嗎? – tripleee

回答

0

process_message()什麼都不做,只是輸出它的輸入數據,所以它顯示了它得到的郵件的數據,將此郵件轉發到您的真實收件箱,但會丟棄數據。

因此,您不會收到郵件是正常的。

+0

超類只是引發'NotImplementedError';類可能需要繼承'PureProxy'或'MailmanProxy'以使其正常工作 – geoffspear

+0

你是對的。我完全誤解了這個問題...... – glglgl

+0

那意味着我需要一個smtp-MAIL服務器嗎?但是我在哪裏可以得到一個測試郵件服務器來檢查我的郵件發送? –