如何在Linux上打开用户的首选邮件应用程序?

问题描述:

我用python-gtk写了一个简单的本地GUI脚本。现在我想给用户一个按钮来发送附件的电子邮件。如何在Linux上打开用户的首选邮件应用程序?

该脚本在Linux桌面上运行。有没有办法打开用户的首选邮件应用程序并附加文件?

+0

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

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

你这是怎么设置的用户代理

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

您可以利用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