如何让Thunderbird在Chromium中打开链接?

我想在Thunderbird的邮件中能够点击链接并在Chromium(软件包名称chromium-browser)中打开它们,而不是在Firefox中打开。
我尝试了以下方法:
1. xfce首选应用程序(Chromium未列出,所以我必须找到可执行文件) - 下次运行Chromium时,它会抱怨它不再是默认浏览器。
2. 告诉Chromium将自己设置为默认浏览器。Thunderbird仍然在Firefox中打开链接。
3. update-alternatives。它已经作为与Firefox相同优先级的替代品列出。"打开网络浏览器"应用程序菜单项会打开Chromium。Thunderbird仍然在Firefox中打开链接。
我已经查看了Thunderbird中整个首选项界面(但尚未查看高级配置编辑器),没有找到任何提及要在哪个浏览器中打开链接的选项。
请注意,这不是Google Chrome。

请检查这个答案。它可以启用浏览器的提示。http://askubuntu.com/a/145434/30281 - Robert Mutke
15个回答

这是我发现适用于我的方法: 您需要在Thunderbird中访问“config editor”。
打开Thunderbird。 在24.6.0中,可以在顶部菜单栏右侧访问该菜单(位于搜索栏旁边,由三条水平线表示)。
单击编辑 >然后单击首选项 >, 将打开一个新窗口。 您需要选择高级选项卡,在该选项卡底部打开 Config Editor 。
然后,搜索network.protocol-handler.warn-external.httpnetwork.protocol-handler.warn-external.https
这两个值最可能为false。 将其更改为true(方法是简单地右键单击它们),下次尝试从某些电子邮件打开链接时,它将询问您要使用哪个浏览器。 Chromium不太可能出现在选择列表中,因此请使用导航按钮。 您可以在/usr/bin/chromium-browser找到Chromium。
如果您使用Google Chrome作为您的浏览器选择,您可能希望将其设置为/usr/bin/google-chrome/usr/bin/google-chrome-stable
如果在执行此操作后,Thunderbird不会询问您要使用哪个浏览器来打开链接,您可以尝试删除您配置文件夹中的mimeTypes.rdf文件以重置它。配置文件夹通常位于~/.thunderbird/xxxxxxxx.default/

原文由Htbaa提供


6删除mimeTypes.rdf文件对我来说是必要的,这样才能让它正常工作。我使用locate mimeTypes.rdf命令找到了所有的文件。 - Mitch
1这对我有用+1。终于。系统默认设置没有按照http://kb.mozillazine.org/Default_browser#KDE for Kubuntu上的文档正确考虑。 - hakre
3截至Thunderbird 31.7.0版本,已确认可正常工作。httpshttp的处理程序可以在选项->附件->传入(在那里查找协议名称)中进行设置。 - 0xC0000022L
1这应该使浏览器提示。要求是始终强制Tbird打开chromium-browser,而不是Firefox。 - Peter Flynn
这仍然是在版本68.8.0中的操作方法。 - user1491929
我希望Thunderbird在我的默认浏览器Chrome中打开链接。更准确地说,我希望并期望Thunderbird在默认浏览器中打开链接,对我来说就是Chrome。我查找了network.protocol-handler.warn-external.http[s],它们都已经设置为true,但是Thunderbird没有提示我选择浏览器,而是使用了不是默认浏览器的Firefox。 - matteo
并且有点不出所料的是,删除mimeTypes.rdf也没有起作用。 - matteo
12022 年已过时。 - Szczepan Hołyszewski
对我来说,这也适用于谷歌浏览器。 - Martin T.

在Thunderbird 11.0.1中,它很简单,但不直观:
  1. 进入首选项(菜单 编辑首选项)。

  2. 点击附件选项卡。

  3. 内容类型和操作部分将HTTPSHTTPFTP设置为使用google-chrome(或其他所需的浏览器)。

在尝试了许多终端命令无效后,这对我起作用了。


1在这里找到了链接,并确认它有效。在安装Firefox后,我发现这是必要的。之前,我使用warn-external配置方法也能正常工作。 - zeratul021
好的,对我也适用。 - Diosney
2在Ubuntu 16.04上对我不起作用: "内容类型"不包含"HTTPS、HTTP和FTP"。而只包含"纯文本文档"。 - Étienne

编辑 -> 首选项 -> 高级 -> 通用 -> 配置编辑器...

右键点击 -> 新建 -> 字符串

输入首选项名称:

network.protocol-handler.app.http

值:

/usr/bin/x-www-browser

设置默认浏览器

在命令行中,输入

sudo update-alternatives --config x-www-browser && sudo update-alternatives --config gnome-www-browser


1使用x-www-browser很有帮助;然而,对我来说设置上述首选项并没有产生任何影响 - 如Vitaly建议的那样将警告值设置为推荐值。 - David Fraser
httpshttp的处理程序可以分别在选项->附件->传入(在那里找到协议名称)中设置。 - 0xC0000022L
奇怪,AKSiS的方法在我的Windows 7系统(Thunderbird 24)上不起作用,而Vitaly的方法运行良好。 - ollydbg23
5"network.protocol-handler.app.http"已被移除。我使用了“vi”进行了第一步操作(正如mozillazine.com建议的那样),并在Invalidprefs.js中找到了结果。 - Bruce

最新的Thunderbird版本68.10及以上的解决方案

现在在你的~/.thunderbird目录下的????????.default配置文件夹中有一个名为handlers.json的文件。

在关闭Thunderbird的情况下,使用文本编辑器编辑或创建此文件。

"action": 2设置并将{"name":"xdg-open","path":"/usr/bin/xdg-open"}添加到相关HTTP和/或HTTPS的"handlers: []"列表的第一个位置,将会根据桌面环境启动默认的浏览器或程序。

对于Vivaldi浏览器handlers.json文件应该如下所示:

{"defaultHandlersVersion":{},"mimeTypes":{"text/plain":{"action":2,"handlers":[{"name":"gvim","path":"/home/bin/gvim"}],"extensions":["asc","txt","text","pot","brf","srt"]},"application/pdf":{"action":4,"ask":true,"extensions":["pdf"]}},"schemes":{"https":{"action":2,"handlers":[{"name":"vivaldi-stable","path":"/usr/bin/vivaldi-stable"}]},"http":{"action":2,"handlers":[{"name":"vivaldi-stable","path":"/usr/bin/vivaldi-stable"}]}}}

前面的MIME类型适用于文本和PDF。

较新版本Thunderbird的解决方案

enter image description here

使用find解决旧版本的方法

1. 打开Thunderbird → 编辑 → 首选项 → 高级 → 配置编辑器...

network.protocol-handler.warn-external.http = true
network.protocol-handler.warn-external.https = true

2. 关闭 Thunderbird。
3. 在命令行中输入:
$ find ~/.thunderbird/ -name mimeTypes.rdf -delete

4.重新打开Thunderbird并单击HTTP(S)链接。将打开一个启动应用程序窗口。点击选择...

5.使用Ctrl+L直接输入您喜欢的浏览器可执行文件的/usr/bin/路径,例如:/usr/bin/vivaldi-stable

6.勾选记住我的http(s)链接选择。

7.打开链接


请问您能否指明“最新的Thunderbird版本”是哪个版本号?我的版本是“68.10.0(64位)”,在Ubuntu 16.04上我没有看到名为handlers.json的文件。 - woodz
@woodz 我已经添加了版本号并提供了一个详细的示例。 - Serge Stroobandt

嗯,我从来没有用过Thunderbird,但是这看起来是正确的 ->
当你在Thunderbird中点击一个网页链接时,它会调用操作系统的默认浏览器。通过更改默认浏览器,可以改变这种行为。
在Linux上,另一种方法(在Suse和Debian下尝试过TB1.5)是在Thunderbird的prefs.js或user.js文件中插入以下行(当然要将路径正确地指向你的Firefox): user_pref("network.protocol-handler.app.http", "/usr/bin/firefox");
你可以通过输入--->来找到Chromium的位置。
which chromium

进入终端。

http://kb.mozillazine.org/Changing_the_web_browser_invoked_by_Thunderbird


1在我原来的问题中,选项(1)起作用了——我之前允许Chromium自己设置为默认浏览器,这使得exo-open认为没有默认浏览器。如果我将系统默认浏览器指向Chromium可执行文件,并告诉Chromium闭嘴,那么Thunderbird就会愉快地在电子邮件中打开它的URL。显然,Chromium和Ubuntu对于默认浏览器的概念有着不同的理解。谢谢! - ikmac
PS - 这个答案也有效,这就是为什么我标记它为正确的原因。如果有其他方法可以解决问题,我更倾向于不编辑顶部标有“请勿编辑此文件”的文件。 - ikmac

我尝试了这个解决方案,它有效果:
1)在设置管理器中将您喜欢的浏览器设为默认浏览器。
2)update-alternatives --config x-www-browser 3)按照这里所写的步骤进行操作。

第二步是用给定的内容替换mimeTypes.rdf文件,这对我起到了奇效。你可以在这里找到相关内容。 - Serge Stroobandt

因为列出的解决方案都对我没用,这里有一种不同的、非常激进的方法可以让应用程序在 Thunderbird 中打开链接:

(例如,如果链接当前是在 Firefox 中打开的)

sudo apt-get remove firefox-esr

打开Thunderbird并点击某个链接 -> 现在你可以选择一个不同的浏览器。现在我们可以重新安装Firefox。
sudo apt-get install firefox-esr

1或者这样做:sudo mv /usr/bin/firefox /usr/bin/firefox-saved,然后在Thunderbird中打开链接。选择Chrome,然后执行sudo mv /usr/bin/firefox-saved /usr/bin/firefox - guettli

没有这些解决方案对我起作用。我使用strace运行了Thunderbird,并发现无论我选择什么值作为network.protocol-handler.app.http,它总是试图启动/usr/bin/google-chrome。我搜索了首选项,但找不到定义这个的地方。最后,我只是执行了ln -s chromium-browser /usr/bin/google-chrome,似乎问题就解决了。

嗯,这似乎是一个处理Thunderbird中看起来很恶心的问题的狡猾方法,哈哈。 - ikmac
1这将产生相当大的副作用!请使用下面Vitaly的解决方案。 - dotancohen


这可能会帮助那些在以后遇到类似问题的人,他们将其固定在Firefox上。
转到设置控制面板,系统 -> MIME类型编辑器,并将每个设置为“Web浏览器”:
application/x-extension-html, application/x-extension-shtml, application/x-extension-xhtml, application/xhtml+xml, text/html

然后在设置控制面板中,个人 -> 首选应用程序,选择 Chrome 运行 sudo update-alternatives --config x-www-browser 并选择 Chrome 然后启动 /usr/bin/x-www-browser,它应该启动 Chrome 然后在 Thunderbird 中尝试。

难怪当我在TB上点击链接时,我的CPU使用率会疯狂飙升,原来是那些设置将其发送到了Thunderbird,导致了一个无限循环。 - GM-Script-Writer-62850
sudo update-alternatives --config x-www-browser 我得到了“update-alternatives: error: no alternatives for x-www-browser”的错误提示。 - matteo