2014-02-26 129 views
-1

我的任務是檢查Windows機器上的磁盤使用情況,並在使用率過高時向客戶發送電子郵件。我有一個python腳本來檢查磁盤使用情況,但我有一個問題來獲取電子郵件腳本。在我的情況下,它應該只是簡單的信息。我不確定服務器在哪裏檢查空間有smtp服務器,但很可能我可以從另一個系統使用它。 我的問題是(我從這個網站採取了腳本) - 腳本未能執行。 Here'e腳本:email.mime.text MimeText用於進口python電子郵件程序

fp = open(textfile, 'rb') 
# Create a text/plain message 
msg = MIMEText(fp.read()) 
fp.close() 

# Format headers 
msg['Subject'] = 'My subject' 
msg['From'] = '[email protected]' 
msg['To'] = '[email protected]' 

# Send the message via Michelin SMTP server, but don't include the envelope header. 
s = smtplib.SMTP('your mail server') 
s.sendmail('[email protected]', ['[email protected]'], msg.as_string()) 
s.quit() 

進口的smtplib 進口啞劇 並將其與此錯誤失敗: 回溯(最近通話最後一個): 文件「email.py 「第1行 import smtplib 文件」C:\ Python27 \ lib \ smtplib.py「,第46行,在 中import email.utils 文件」N:\ Scripts \ email.py「,第2行,in import mime ImportError:No module named mime

請有人建議嗎? 謝謝

+1

爲什麼你有這樣的語句:'進口mime' ?這是不需要的,應該刪除。 –

回答

0

您沒有顯示正確的導入語句。要導入使用Mimetext,請使用from email.mime.text import MIMEText。查詢Python documentation瞭解更多信息。

+0

對不起...我沒有得到我做錯了什麼......這是我用的: from email.mime.text import MIMEText 那條語句有什麼問題? – susja

+0

'import mime'不是標準模塊。所以,當在程序中導入「mime」時,python會引發異常。檢查這個http://stackoverflow.com/questions/5016186/how-to-detect-if-numpy-is-installed的導入錯誤和http://docs.python.org/3.4/reference/import.html的文檔在python – Netro

1

您是否包含這些文件。

import smtplib 
from email.MIMEText import MIMEText 
+0

當然,我做到了。 這是我的節目的開始: N:\>類型的腳本\從email.mime.text MimeText用於進口email.py 進口的smtplib FP =開放(文本文件, 'RB') – susja

+0

這是錯誤: N:\> Python腳本\ email.py 回溯(最近最後調用): 文件 「腳本\ email.py」,第1行,在 文件「C:\ IPython中\ IPython中\ LIB \的smtplib。 py「,第46行,在 文件」N:\ Scripts \ email.py「,第2行,在 ImportError:沒有名爲mime的模塊 – susja

+0

呃...我檢查了你的引用並找到了相互連接的東西。 如果我執行完全相同的語句,我之前在python interective shell中提到過,我沒有看到任何錯誤。如果我在腳本中執行它,我會看到錯誤。可能是什麼問題? – susja

1

只需刪除import mime

這裏有一個最小的SMTP的例子,在Python 2.7和3.4的工作原理:

import smtplib 
from email.mime.text import MIMEText 

body = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx\r\nyyyyyyy" 
#text = "Subject: missing newline\r\n\r\n" + body 
text = MIMEText(body).as_string() 

s = smtplib.SMTP('exchange.company') 
s.sendmail('', '[email protected]', text) 
s.quit() 
-1

考慮下面的教程,從effbot.orgHow do I send mail from a Python script?

Use the smtplib module.

SEND simple email

import smtplib 

SERVER = "localhost" 

FROM = "[email protected]" 
TO = ["[email protected]"] # must be a list 

SUBJECT = "Hello!" 

TEXT = "This message was sent with Python's smtplib." 

# Prepare actual message 

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

# Send the mail 

server = smtplib.SMTP(SERVER) 
server.sendmail(FROM, TO, message) 
server.quit() 

Note that the TO variable must be a list