[imp] [RELENG_3:] Character enconding problem when saving drafts

Joerg Friedrich Joerg.Dieter.Friedrich at uni-konstanz.de
Fri Sep 19 07:02:51 PDT 2003


Hi,

I tried to report a bug to, but the Bug-Tracking-Webpage seems not to
work as it should. At least I got no password.

Yours, Joerg

Joerg Friedrich schrieb am Mittwoch, 17. September 2003 um 10:07:08 +0200:
> Hi,
> 
> attached you'll find a patch to this problem.
> I had no time to checkout the latest cvs!
> Please recheck my patch before apply!
> BTW: Quick'n'Dirty-Patch, since I didn't find coding standards, maybe
> variable renaming required.
> 
> 
> 
> Joerg Friedrich schrieb am Mittwoch, 17. September 2003 um 00:16:35 +0200:
> > Hi, 
> > 
> > one of our users encountered a problem when saving a msg as draft.
> > Our IMAP server (cyrus) replaces every non-7-Bit-Chars in the header by
> > a 'X'. So every draft containing 8-bit-chars i.e in subject gets messed
> > up when appended to the mailbox via imap_append.
> > 
> > the appending to the send-mail-box when sending the mail is not
> > affected, since there is a "$headers = $mime->header($headers);" which
> > does the right encoding. 
> > 
> > I think the only way is to rewrite the 'case SAVE_DRAFT' section in
> > compose.php. I'll look at it tomorrow. 
> > -- 
> > Jörg Friedrich
> > 
> > -- 
> > IMP mailing list
> > Frequently Asked Questions: http://horde.org/faq/
> > To unsubscribe, mail: imp-unsubscribe at lists.horde.org
> 
> -- 
> Jörg Friedrich

> --- compose.php.orig	2003-09-17 10:02:28.000000000 +0200
> +++ compose.php	2003-09-17 10:01:10.000000000 +0200
> @@ -943,34 +943,44 @@
>  
>           $from = $identity->getFromLine(Horde::getFormData('identity'), Horde::getFormData('from'));
>  
> -         $hdrs = 'Date: ' . date('r') . "\n";
> +         $hdrs['Date'] = date('r');
>           if (!empty($from)) {
> -             $hdrs .= "From: $from\n";
> +             $hdrs['From'] = $from;
>           }
>           if (($to = Horde::getFormData('to'))) {
>               $to = MIME::encodeAddress(format_addresses($to), null, $imp['maildomain']);
> -             $hdrs .= "To: $to\n";
> +             $hdrs['To'] = $to;
>           }
>           if (($cc = Horde::getFormData('cc'))) {
>               $cc = MIME::encodeAddress(format_addresses($cc), null, $imp['maildomain']);
> -             $hdrs .= "Cc: $cc\n";
> +             $hdrs['Cc'] = $cc;
>           }
>           if (($bcc = Horde::getFormData('bcc'))) {
>               $bcc = MIME::encodeAddress(format_addresses($bcc), null, $imp['maildomain']);
> -             $hdrs .= "Bcc: $bcc\n";
> +             $hdrs['Bcc'] = $bcc;
>           }
>           if (($sub = Horde::getFormData('subject'))) {
> -             $hdrs .= "Subject: $sub\n";
> +             $hdrs['Subject'] = $sub;
>           }
>           if (isset($mime)) {
>               $env = $mime->header();
>               foreach ($env as $key => $val) {
> -                 $hdrs .= $key . ': ' . $val . "\n";
> +                 $hdrs[$key] = $val;
>               }
>           }
> -         $hdrs .= "\n";
>  
> -         $body = $hdrs . $body;
> +         $hdrs = $mime->header($hdrs);
> +
> +	 reset($hdrs);
> +	 $fcc = '';
> +	 foreach ($hdrs as $key => $val) {
> +	     if ($key != 'recipients') {
> +		 $fcc .= $key . ': ' . $val . "\n";
> +	     }
> +	 }
> +	 $fcc .= "\n";
> +
> +         $body = $fcc . $body;
>  
>           // Make absolutely sure there are no bare newlines.
>           $body = preg_replace("|([^\r])\n|", "\\1\r\n", $body);

> 
> -- 
> IMP mailing list
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: imp-unsubscribe at lists.horde.org


-- 
Jörg Friedrich
Letzte Worte eines Architekten:
  "Da fällt mir noch was ein!"


More information about the imp mailing list