最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

Thunderbird的SmartTemplate插件中姓名倒置的问题

10.软件使用 宇托 1085浏览 暂无评论

我发邮件用的是Thunderbird,邮件模板插件用的是SmartTemplate。

以前没注意,最近发现在回信时SmartTemplate设置邮件头里的姓名是反的。

发生的现象如下:

  1. 在联系人里添加了该邮件地址,联系人信息填了姓和名。
  2. SmartTemplate设置的回复邮件头的有%from(name)%%to(name)%%cc(name)%之类的定义。

发现在插件里的代码是直接写的是欧美的名称显示。大体的代码如下:

JavaScript
else if (card.lastName && card.firstName) {
  result = card.firstName + ' ' + card.lastName;
}
else if (card.displayName) {
  result = card.displayName;
}

由此可以看出,解决方法有两个。

  • 方法一:把联系人的姓和名部分修改为空。
  • 方法二:修改代码。

至于方法一就不用多说了,对于方法二,其代码修改方法如下:

代码位置

  1. 打开目录%AppData%\Thunderbird\Profiles\
  2. 进入该目录下xxxxxxxx.default目录。(xxxxxxxx表示任意字符)
  3. 用压缩软件打开extensions目录下的smarttemplate4@thunderbird.extension.xpi文件。
  4. 修改压缩文件里的content\smartTemplate-overlay.js文件。

代码修改方法

修改方法有两种,第一种是直接用显示名;第二种是把姓和名的位置换一下。改好之后,直接覆盖压缩包里的原文件就行。

方法一

删除594行左右的如下代码就行

JavaScript
else if (card.lastName && card.firstName) {
  result = card.firstName + ' ' + card.lastName;
}

改完之后,其前后代码大体如下:

JavaScript
if (isLastName(format) && card.lastName) {
  result = card.lastName;
  nameProcessed = true;
}
else if (isFirstName(format) && card.firstName) {
  result = card.firstName;
  if (SmartTemplate4.Preferences.getMyBoolPref('mime.resolveAB.preferNick')) {
    if (SmartTemplate4.Util.Application === "Postbox") {
      if (card.nickName)
        result = card.nickName;
    }
    else
      result = card.getProperty("NickName", result);
  }
  nameProcessed = true;
}
else if (card.displayName) {
  result = card.displayName;
}

方法二

修改595行左右的card.firstName + ' ' + card.lastName;card.lastName + ' ' + card.firstName;就行。

改完之后,其前后代码大体如下:

JavaScript
if (isLastName(format) && card.lastName) {
  result = card.lastName;
  nameProcessed = true;
}
else if (isFirstName(format) && card.firstName) {
  result = card.firstName;
  if (SmartTemplate4.Preferences.getMyBoolPref('mime.resolveAB.preferNick')) {
    if (SmartTemplate4.Util.Application === "Postbox") {
      if (card.nickName)
        result = card.nickName;
    }
    else
      result = card.getProperty("NickName", result);
  }
  nameProcessed = true;
}
else if (card.lastName && card.firstName) {
  result = card.lastName + ' ' + card.firstName;
}
else if (card.displayName) {
  result = card.displayName;
}

转载请注明:宇托的狗窝 » Thunderbird的SmartTemplate插件中姓名倒置的问题

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址