2014-07-20 30 views
2

將此標記爲重複項之前;我也讀過其他主題。我試圖發送一封電子郵件,就像在php中使用mail()函數一樣簡單。我只是試過the example from the official python docs。但是,當我嘗試使用我的Linux機器上的本地主機連接我得到:如何使用Python發送簡單電子郵件

>>> import smtplib 
>>> smtplib.SMTP('localhost') 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "/usr/lib/python2.7/smtplib.py", line 251, in __init__ 
    (code, msg) = self.connect(host, port) 
    File "/usr/lib/python2.7/smtplib.py", line 311, in connect 
    self.sock = self._get_socket(host, port, self.timeout) 
    File "/usr/lib/python2.7/smtplib.py", line 286, in _get_socket 
    return socket.create_connection((host, port), timeout) 
    File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
    raise err 
error: [Errno 111] Connection refused 

我想這個例子中並不需要一個電子郵件服務器來運行(就像PHP的mail()函數並不需要一個電子郵件服務器運行)。

任何想法我可能做錯了或如何我可以得到這個發送電子郵件?歡迎所有提示!

+2

你的本地主機上有'mail server'嗎?如果沒有,那麼你不能連接到它。 – furas

回答

1

php mail()函數確實需要一箇中繼來發送消息。它在Linux機器上是defaults to sendmail

在Windows上,您必須give it the address of a SMTP server

爲了讓任何程序發送電子郵件,您需要連接到SMTP服務器。沒有跑來跑去。

+0

啊!我從來不知道php mail()函數實際上需要一個外部程序(因爲它總是「正常工作」)。但我只是'sudo apt-get install'ed sendmail,現在它就像一個魅力!感謝您的啓發! – kramer65

相關問題