数年前、私はサブスクリプションに関するpaypal電子メールを自動的に処理するプライベートThunderbirdプラグインを作成しました。ユーザーは特定のフォルダ「PaypalMsgs」にペイパル電子メールを入れなければなりません。プラグインはそれらを1つずつ読み込み、支払かキャンセルかを見つけ出し、その中のその人の「その他」フィールドを更新します。住所録。TBを38.7.2から45.1.0に更新した後のプラグインエラー
Thunderbirdの最近のアップデートで、プラグインが破損しました。これは、もうPaypalMsgsというフォルダが見つからないためです。
これはフォルダ見つけるためのコードである:
// determine the local root folder
var localRootFolder = Components
.classes["@mozilla.org/messenger/account-manager;1"]
.getService(Components.interfaces.nsIMsgAccountManager)
.localFoldersServer
.rootFolder;
// start with root folder to find folder with given name
this.ppPaypalFldr = this.findFldrDeep(localRootFolder, "PaypalMsgs");
// recursive function to find a folder fldr with the name fldrName
findFldrDeep: function(fldr, fldrName) {
if(fldr.name == fldrName) {
return fldr;
} else {
if(fldr.hasSubFolders) {
var fldrEnum = fldr.subFolders;
while(fldrEnum.hasMoreElements()) {
var sfldr = fldrEnum.getNext();
var result = this.findFldrDeep(sfldr, fldrName);
if(result) {
return result;
}
}
} else {
return null;
}
}
を}、
実行何も起こらないとTBのエラーコンソールは示しています。ここで第1の位置で
Error: TypeError: this.ppPaypalFldr undefined
をthis.ppPaypalFldrが使用される
nsIMsgAccountManagerのサービスの定義が変更されたか、フォルダの種類が突然異なる機能を持つようなことは簡単なことかもしれませんが、信頼できる文書やTB 45のソースを見つけるのは本当に苦労します。
何かヒントやサポートをありがとう!