![我可以通过编辑某些文件来更改 Thunderbird SMTP、POP3 和 IMAP 服务器设置吗?](https://linux22.com/image/1377595/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E7%BC%96%E8%BE%91%E6%9F%90%E4%BA%9B%E6%96%87%E4%BB%B6%E6%9D%A5%E6%9B%B4%E6%94%B9%20Thunderbird%20SMTP%E3%80%81POP3%20%E5%92%8C%20IMAP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%E5%90%97%EF%BC%9F.png)
我现在正在将大量电子邮件迁移到 Google 应用程序 (GMail)。我必须更改所有用户的每个 Thunderbird 客户端中的所有服务器设置。我有每台 PC 的管理员密码,但没有 Thunderbird 配置文件所在的用户密码。
是否有办法使用管理员权限编辑 Thunderbird 配置文件中的文件并更改用户帐户的 SMTP-IMAP-POP3 设置?编辑或执行命令,或替换文件。
答案1
有一种方法,尽管它只需要一点点 JavaScript 知识。你必须:
- 在安装目录中应用两个配置文件
- 使用它们来更改应用于所有用户的全局配置
现在,简而言之:
步骤 1:设置通用配置定义文件
进入 Thunderbird 程序文件夹(即%ProgramFiles%\Mozilla Thunderbird
)并创建一个文件:defaults\pref\local-settings.js
添加以下内容:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
这将告诉 Thunderbird 使用%ProgramFiles%\Mozilla Thunderbird\mozilla.cfg
文件作为配置模板。
步骤2:配置邮箱
现在,您必须定义邮箱设置。基本上,您将使用 Mozilla 配置变量 - 与您在 Firefox 地址栏中mozilla.cfg
输入或在 Thunderbird 中启动设置编辑器时看到的相同。about:config
使用此文件和以下函数,您可以全局影响 Thunderbird 配置(即,对于从同一安装位置运行 Thunderbird 的每个用户)。这些函数包括:
defaultPref( PrefName, Value )
- 设置默认值(用户可以覆盖它)lockPref( PrefName, Value )
- 强制特定值(用户无法覆盖它)pref( PrefName, Value)
- 强制特定值(用户可以覆盖会话持续时间)
您还可以阅读任何首选项:
getPref( PrefName )
- 读取值
您几乎拥有全部 JavaScript 功能。服务器配置存储在mail.server.<servername>.*
树中。
您不知道该<servername>
组件。它的值为server#
,是#
创建时分配的连续数字,但您不知道用户以什么顺序创建其帐户以及他是否没有删除任何帐户。
但是,使用 javascript,您可以<servername>
通过以下方式找到正确的方法:
- 循环遍历
mail.accountmanager.accounts
变量中存储的所有值(它包含所有帐户的逗号分隔列表,例如account1,account10,account3,account7,account2
:) - 对于每个帐户,检查这是否是您要修复的帐户(使用其中一个子参数,例如
mail.server.<servername>.hostname
:) - 一旦找到正确的
<servername>
,请根据需要更改其配置。
示例代码
这是一个简单的算法,mozilla.cfg
你可以使用它来开始:
var allServersString = getPref( "mail.accountmanager.accounts" );
var i, serverName, myServerConfig, allServers = allServersString.split(",");
// For each account...
for ( i = 0; i < allServers.length; i++ ) {
// Get account number
serverName = "server" + allServers[i].substr(7);
// If hostname of account matches our hostname, we found our `servername`
if ( getPref( "mail.server." + serverName + ".hostname" ) == "imap.myOldServer.com" )
myServerConfig = "mail.server." + serverName;
}
// Change parameters at your discretion...
pref( "aaa." + myServerConfig + ".hostname", "imap.myNewServer.com" );
// ...
笔记
- 您可能需要进行一些尝试才能选择
pref/lockPref
最适合您需求的正确功能 - 您必须对 SMTP 服务器执行相同的操作,但这有点棘手。一旦您知道正确,
<servername>
您需要使用#
from ,然后从 中<servername>
获取身份标识符列表,并更改分配给帐户的每个身份的参数(存储在 中)。瞧!:DidXXX
mail.account.account#.identities
mail.identity.idXXX.*