2011-09-14 24 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') 

これは問題を解決したようです。

ログインしていないWindowsマシンでも問題なく動作しているため、スクリプトをMacで動かす必要があると私には分かりません。

ありがとうご提案:

関連する問題