source: npl/mailserver/dspam/dspam-3.10.2/contrib/plugins/thunderbird/chrome/content/dspam.js

Last change on this file was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 6.2 KB
Line 
1var sendListener = {
2
3onGetDraftFolderURI: function ( folderURI ) {},
4onProgress: function ( msgID , progress , progressMax ) {},
5onSendNotPerformed: function ( msgID , status ) {},
6onStartSending: function ( msgID , msgSize ) {},
7onStatus: function ( msgID , msg ) {},
8
9onStopSending: function ( msgID , status , msg , returnFileSpec )
10{
11        DeleteJunkMail(this.action);
12},
13
14        action : 0
15
16};
17
18function MoveToFolder()
19{
20
21}
22
23
24var fwdStatus = 0;
25
26function dspamReportSpam(event) {
27
28        var validDspamConfig = true;
29        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
30
31        try {
32                var spamaction = pref.getIntPref("dspam.spamaction");
33        } catch(e) {
34                spamaction = 0;
35        }
36
37        try {
38                var spamaddress = pref.getCharPref("dspam.spamaddress");
39        } catch(e) {
40                validDspamConfig = false;
41        }
42
43        if (spamaction != 0) {
44                try {
45                        var spamfolder = RDF.GetResource(pref.getCharPref("dspam.spamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
46                } catch (e) {
47                        validDspamConfig = false;
48                }
49                try {
50                        var hamfolder = RDF.GetResource(pref.getCharPref("dspam.hamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
51                } catch (e) {
52                        validDspamConfig = false;
53                }
54        }
55
56        var folder = GetLoadedMsgFolder();
57        var rootFolder = folder.rootFolder;
58        var messageArray = GetSelectedMessages();
59        var server;
60        server = folder.server;
61        var dbv = GetDBView();
62
63        if (validDspamConfig == true) {
64
65                var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
66
67                msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
68
69                messenger.SetWindow(window, msgWindow);
70
71                if (messageArray && messageArray.length > 0) {
72                        uri = "";
73                        for (var i = 0; i < messageArray.length; ++i) {
74                                var messageUri = messageArray[i];
75 
76                                var hdr = messenger.msgHdrFromURI(messageUri);
77       
78                                folder = hdr.folder;
79                                if (folder) {
80                                        server = folder.server;
81                                }
82       
83                                var accountKey = hdr.accountKey;
84                                if (accountKey.length > 0) {
85                                        var account = accountManager.getAccount(accountKey);
86                                        if (account)
87                                                server = account.incomingServer;
88                                }
89 
90                                var fwdStatus = true;
91
92                                if (server) {
93                                        try {
94                                                msgComposeService.forwardMessage(spamaddress, hdr, msgWindow, server);
95                                        } catch(e) {
96                                                fwdStatus = false;
97                                        }
98
99                                        if ( fwdStatus ) {
100                                                if (spamaction == 1) {
101                                                        var out = new Object();
102                                                        var trashFolder = rootFolder.getFoldersWithFlag(MSG_FOLDER_FLAG_TRASH, 1, out);
103                                                        if (trashFolder) {
104                                                                try {
105                                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, trashFolder);
106                                                                } catch(e) {
107                                                                        alert("Error while moving message to Trash Folder.");
108                                                                }
109                                                        } else
110                                                                alert("Could not get Trash folder settings.\nMessage was not moved.");
111                                                        }
112
113                                                if ((spamaction == 2) && (spamfolder != hamfolder)) {
114                                                        try {
115                                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, spamfolder);
116                                                        } catch(e) {
117                                                                alert("Error while moving message to Spam Folder.");
118                                                        }
119                                                }
120                                        } else {
121                                                alert("la la la.");
122                                        }
123                                } else {
124                                        alert("Unknown Error. Please contact the plugin author.");
125                                }
126
127                        }
128
129                } else
130                        alert("You need to select at least one message.");
131        } else {
132                alert("Please check your SPAM reporting options.");
133        }
134
135}
136
137
138function dspamReportHam(event) {
139
140        var validDspamConfig = true;
141        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
142
143        try {
144                var hamaction = pref.getIntPref("dspam.hamaction");
145        } catch(e) {
146                hamaction = 0;
147        }
148
149        try {
150                var hamaddress = pref.getCharPref("dspam.hamaddress");
151        } catch(e) {
152                validDspamConfig = false;
153        }
154
155        if (hamaction != 0) {
156                try {
157                        var hamfolder = RDF.GetResource(pref.getCharPref("dspam.hamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
158                } catch (e) {
159                        validDspamConfig = false;
160                }
161                try {
162                        var spamfolder = RDF.GetResource(pref.getCharPref("dspam.spamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
163                } catch (e) {
164                        validDspamConfig = false;
165                }
166        }
167
168
169        var folder = GetLoadedMsgFolder();
170        var messageArray = GetSelectedMessages();
171        var server;
172        server = folder.server;
173
174        var dbv = GetDBView();
175
176        if (validDspamConfig == true) {
177
178                var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
179
180                var count = 0;
181
182                if (messageArray && messageArray.length > 0) {
183                        for (var i = 0; i < messageArray.length; ++i) {
184                                var messageService = messenger.messageServiceFromURI(messageArray[i]);
185                                var messageStream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance().QueryInterface(Components.interfaces.nsIInputStream);
186                                var inputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance().QueryInterface(Components.interfaces.nsIScriptableInputStream);
187                                inputStream.init(messageStream);
188                                try {
189                                        messageService.streamMessage(messageArray[i],messageStream, msgWindow, null, false, null);
190                                } catch (ex) {
191                                        alert("Unknown Error.");
192                                }
193
194                        }
195                }
196
197                msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
198
199                messenger.SetWindow(window, msgWindow);
200
201                if (messageArray && messageArray.length > 0) {
202                        for (var i = 0; i < messageArray.length; ++i) {
203                                var messageUri = messageArray[i];
204                                var hdr = messenger.msgHdrFromURI(messageUri);
205                                folder = hdr.folder;
206                                if (folder) {
207                                        server = folder.server;
208                                }
209       
210                                var accountKey = hdr.accountKey;
211                                if (accountKey.length > 0) {
212                                        var account = accountManager.getAccount(accountKey);
213                                        if (account)
214                                                server = account.incomingServer;
215                                }
216 
217                                if (server) {
218                                        try {
219                                                msgComposeService.forwardMessage(hamaddress, hdr, msgWindow, server);
220                                        } catch(e) {
221                                                alert("la la la.");
222                                        }
223
224                                        if ((spamfolder != hamfolder) && (hamaction == 1))
225                                                try {
226                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, hamfolder);
227                                                } catch(e) {
228                                                        alert("Error while moving message to Ham Folder.");
229                                                }
230
231                                } else {
232                                        alert("Unknown Error.");
233                                }
234       
235                        }
236                } else
237                        alert("You need to select at least one message.");
238        } else {
239                alert("Please check your HAM reporting options.");
240        }
241
242}
243
Note: See TracBrowser for help on using the repository browser.