2014-12-01 44 views
5

我用python-gtk寫了一個簡單的本地GUI腳本。現在我想給用戶一個按鈕來發送附件的電子郵件。如何在Linux上打開用戶的首選郵件應用程序?

該腳本在Linux桌面上運行。有沒有辦法打開用戶的首選郵件應用程序並附加文件?

+0

相關:http://stackoverflow.com/questions/27836576/adding-several-attachments-to-thunderbird - 從命令行 – guettli 2015-01-08 09:18:12

回答

3

Linux命令調用會xdg-email,在XDG-utils軟件包,這是大多數Linux桌面(至少在默認情況下拱的一部分,Debian的,Ubuntu的)。

xdg-email是一個「使用用戶首選電子郵件編輯器發送郵件的命令行工具」。

如果他們已經正確設置了默認應用程序,它將打開其默認郵件客戶端。您可以傳遞參數以填寫各種郵件字段(to,cc,主題,正文等)以及要附加的文件的文件名。

從你的Python腳本,你可以使用使用os.system()或子模塊調用它..

+0

謝謝!它甚至可以在舊版本的openSUSE 11.4上使用。 – guettli 2014-12-09 07:48:43

+0

如果客戶端是雷鳥,添加附件不適用於xdg-email。很傷心。我想大多數用戶使用雷鳥。歡迎來到Linux桌面管道系統:https://bugs.launchpad.net/ubuntu/+source/simple-scan/+bug/515386 – guettli 2015-01-08 08:35:41

+0

直到在xdg-email中存在上述錯誤,我使用thunderbird:http:// kb.mozillazine.org/Command_line_arguments_%28Thunderbird%29 – guettli 2015-01-08 08:53:20

-2

你這是怎麼設置的用戶代理

settings = webkit.WebSettings() 
    settings.set_property('user-agent', 'iPad') 
    webview.set_settings(settings) 

和附加圖片,一起來看看這個腳本來得到一個想法

http://pygtk.org/pygtk2tutorial/examples/images.py

這不是一定的,但我希望它有助於。

+0

我不明白你的答案。它看起來像你修改HTTP用戶代理。我想打開本機郵件用戶代理:Thunderbird,evolution ... – guettli 2014-12-02 07:41:15

+0

問題是關於打開用戶的郵件客戶端,而不是設置http客戶端的用戶代理。這個答案不相關。 – davidism 2014-12-05 21:57:31

3

您可以利用webbrowser模塊打開一個URL。
您還可以利用mailto協議讓web瀏覽器打開系統默認郵件客戶端(如果可用)。

下面是一個簡單的例子:

import webbrowser 
webbrowser.open("mailto:[email protected]?subject=Hello World") 

買者,對附件的支持。 mailto協議不提供對附件的支持。有些客戶支持(根據google)非標準屬性attachment=PATH。但是我還沒有真正確認這一點。

有各種電子郵件客戶端打開電子郵件撰寫窗口與附件的方法,但這在每個客戶端不同。此外,我不知道任何標準的方式來確定什麼郵件程序設置爲默認。

欲瞭解更多信息,您還可以檢查wikipedia

+0

也許webbrowser實例可能以某種方式創建一個包含附件文件的關聯數組?恭喜第一個分流管家徽章! :-) – peterh 2015-01-21 22:06:19

+0

mailto協議本身沒有對文件附件的官方支持,所以傳遞任何類型的數組都不會有所作爲。 (而我是第二個) – EWit 2015-01-24 12:15:40

+0

然後郵件(及其附件)可能會創建一些第三個API調用,也許。 – peterh 2015-01-24 12:17:37

相關問題