2014-02-13 40 views
-2

我需要的是知道如何正確編寫python代碼如果我想發送一封電子郵件給某個包含鏈接的用戶,並通過單擊該鏈接打開一個窗口框/消息框打開並允許用戶開始文件下載。鏈接被定義爲python腳本中html代碼的一部分。我使用message = MIMEMultipart('alternative')作爲發送定義和電子郵件的方式。點擊鏈接並使用python下載文件

+0

我發現[此](http://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python)。它應該是你在找什麼。 – RydallCooper

回答

0

其實你需要兩樣東西:

  1. 你需要你描述的HTML代碼。
  2. 你需要python代碼來發送html。

我的回答和你的問題一樣廣泛。

+0

我應該說我有你提到過的所有內容,我寫了一個代碼,它發送帶有鏈接的電子郵件。如果您點擊鏈接,Windows資源管理器會在文件所在的位置打開。但是有人可以通過目錄並下載其他文件。我不會這樣。我會在消息框窗口內提供下載文件的可能性的方式上做到這一點。仍不清楚? – Z77

+0

您可以生成臨時鏈接以下載文件。實際上,消息框不會爲您帶來訪問控制。可以更改服務器上的下載URL和訪問文件,直到您處理完爲止。我認爲在服務器上沒有實際帳戶的情況下最常用的訪問控制方式是建立臨時鏈接。 – Mehraban

+0

但是,如果我堅持按照我所描述的方式去做?因爲這種方式並不少見。你還能回答嗎? – Z77

1

該腳本發送一封電子郵件,其中包含一個啓動下載的鏈接。這是你想要的?用適合您的環境的值替換###位。

import smtplib 
from email.mime.text import MIMEText 

me = '###@gmail.com' 
you= '###@example.com' 
auth = ('###@gmail.com', '###Password') 
mx= ('smtp.gmail.com', 465) 
# Any random URL that replies with an appropriate content-type 
url= 'http://httpbin.org/response-headers?content-type=application/octet-stream' 

msg = MIMEText(
    '''<html> 
     <head></head> 
     <body> 
      <p> 
      <a href="{:s}">Click Me</a> 
      </p> 
     </body> 
     </html>'''.format(url), 
    'html') 
msg['Subject'] = 'Link' 
msg['From'] = me 
msg['To'] = you 

s = smtplib.SMTP_SSL(*mx) 
s.login(*auth) 
s.sendmail(me, you, msg.as_string()) 
s.quit() 
+0

好的。謝謝您的回答。我會嘗試將其應用於我的案例。還有,你很清楚我想要什麼!現在由我來測試它並正確集成。 – Z77

+0

但是怎麼做呢如果我使用MIMEMulitpart('alternative')和URL ='file://///srver/folder/file.zip'? – Z77

+0

文件路徑在*發送者*機器或*接收者*機器上是否有效?也許正確的解決方案是將文件作爲附件發送。 –

相關問題