Добро пожаловать в дополнения Firefox для Android.
Добавляйте дополнительные функции и стили, чтобы настроить Firefox для Android по своему вкусу.
ЗакрытьОтзыв на Mail Redirect от David von Oheimb
Рейтинг 4 из 5 звёзд
I find the add-on very handy in particular when I send emails to a large number of friends (usually using BCC). When I later notice that some of them was missing on the list, I can simply re-send the original email (including any attachments) to the new recipient(s).
Yet this scenario brought up a privacy issue (at least for version 0.7.4):
For each *multi-line* email header, all its lines but the first one are simply copied from the original email. This is a severe
privacy problem for multi-line sensitive headers like BCC, where all the following lines of this header are still visible in the bounced email!
I've corrected this with the code patch given below. You can download the patched version from http://home.arcor.de/j-i-t/mail_redirect-075-DvO-tb20x.xpi
Two further observations.
* Would be nice if the title of the window in which the bounced email is
"composed" does not just just say "Mail Redirect" but also gives the
email subject, as done by the usual "compose" window. This is helpful
e.g. when there are multiple compose windows open.
* To me, the choice between "Resent-To", "Resent-Cc", and "Recent-Bcc"
is superfluous and confusing - is there any difference concerning the
visibility of the new recipents' names? If not, just offer Resent-To.
--- chrome/content/mailredirect-compose.orig.js 2008-12-25 19:55:17.000000000 +0100
+++ chrome/content/mailredirect-compose.js 2008-12-25 19:55:17.000000000 +0100
@@ -1373,7 +1373,9 @@
if (inHeader) {
// dumper.dump("!! reading new buffer -- leftovers.length="+leftovers.length);
- buf = leftovers + aScriptableInputStream.read(1024);
+ buf = leftovers + aScriptableInputStream.read(50000); // hoping that
+ // 50000 characters are sufficient even for large multi-line headers
+
leftovers = "";
while (buf.length > 0) {
@@ -1418,6 +1420,22 @@
// terminate the line with CRLF sign, not native line-endings
line = buf.substr(0, eol+1-eol_length) + "\r\n";
buf = buf.substr(eol+1);
+ while(buf[0] == " ") // multi-line header, extends over several lines
+ {
+ eol_r = buf.indexOf("\r");
+ eol_n = buf.indexOf("\n");
+ if (eol_r != -1 && eol_n != -1) {
+ eol = eol_r>eol_n ? eol_r : eol_n;
+ } else if (eol_r != -1) {
+ eol = eol_r;
+ } else if (eol_n != -1) {
+ eol = eol_n;
+ } else {
+ eol = buf.length-1;
+ }
+ line += buf.substr(0, eol+1); // for simplicity, leave native line-endings
+ buf = buf.substr(eol+1);
+ }
// dumper.dump("line=>>"+line+"
Для создания своих подборок вам необходимо иметь учётную запись на сайте дополнений Mozilla.