2011-09-14 117 views
0

我有一些用於發送電子郵件的代碼。它可以在Windows上運行,但是當我嘗試在Mac上運行它(與Windows機器上的用戶登錄名相同)時,它不會發送電子郵件或返回任何錯誤。SMTP電子郵件腳本在Mac上不起作用,但在Windows上工作

任何人都有這種事情的經驗,或例子,技巧,解決方案?

import smtplib 
import mimetypes 
from email import encoders 
from email.message import Message 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 


import platform 

SERVER = "mail.myCompany.co.za" 
COMMASPACE = ', ' 


SUBJECT = "testing" 
TEXT = "mac dev test\n\nSent from: " + platform.platform() 
TO = [ '[email protected]' ] 
FROM = "[email protected]" 


# connect to the server 
smtp = smtplib.SMTP(SERVER) 

smtp.ehlo() 


# if attachments are too big, try gain and just add them as links 
# Create the container (outer) email message. 
msg = MIMEMultipart() 
msg['Subject'] = SUBJECT 
msg['From'] = FROM 
msg['To'] = COMMASPACE.join(TO)  
msg.attach(MIMEText(TEXT , 'plain')) 

smtp.sendmail(FROM , TO , msg.as_string()) 


smtp.close()    
print(" ---- SUCCESS ---- mail sent ---- ") 
+0

sendmail調用返回什麼?它是一個字典或引發異常 – Mark

+0

我不認爲你需要ehlo()調用,所以請嘗試刪除它。另外嘗試設置smtp.set_debuglevel(1)以查看發生了什麼。 –

+0

當你在控制檯上telnet mail.myCompany.co.za 25'時會發生什麼? – RickyA

回答

0

sendmail調用沒有返回任何內容 - 只是{}。最後,我不知道爲什麼,但出於純粹的煩惱我試圖

smtp.starttls() 
smtp.login('username', 'password') 

,它似乎來解決這個問題。

對我來說,你需要這樣做才能讓腳本在mac上工作,因爲它在windows機器上工作完美,沒有登錄... Grrrrr mac。

感謝您的建議:)

相關問題