David von Oheimb님의 Mail Redirect 검토
5점중 4점 받음
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 부가 기능 계정이 있어야 합니다.
아니면 현재 사용중인 계정으로 로그인 하세요