A NOTE has been added to this issue. 
====================================================================== 
http://www.dbmail.org/mantis/view.php?id=752 
====================================================================== 
Reported By:                maximP
Assigned To:                paul
====================================================================== 
Project:                    DBMail
Issue ID:                   752
Category:                   General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
target:                      
====================================================================== 
Date Submitted:             12-Jan-09 11:04 CET
Last Modified:              09-Feb-09 10:11 CET
====================================================================== 
Summary:                    Dbmail changes header charset
Description: 
Message header values for messages stored in mimeparts table may differ
from those of messages injected to dbmail. For instance, Russian headers
From: and To: in UTF-8 turn to iso-8859-5. It seems to be gmime feature
(trying to select the appropriate charset for UTF-8 data), but it is
completely wrong in this case, imho.

====================================================================== 

---------------------------------------------------------------------- 
 (0002733) paul (administrator) - 25-Jan-09 13:35
 http://www.dbmail.org/mantis/view.php?id=752#c2733 
---------------------------------------------------------------------- 
Maxim,

the mimeparts contains the messageparts as-is.
The header caching tables contain strings converted into the charset
specified in dbmail.conf.

If you still feel there is a bug, please provide steps to reproduce. 

---------------------------------------------------------------------- 
 (0002736) maximP (reporter) - 26-Jan-09 09:23
 http://www.dbmail.org/mantis/view.php?id=752#c2736 
---------------------------------------------------------------------- 
Steps to reproduce:
1. Take the attached file and look in it. Will see UTF-8 in From: and To:
headers.
2. Run dbmail-deliver -d someuser <test.eml
3. See mimeparts table contents. Will see iso-8859-5 in From: and To:
headers. 

---------------------------------------------------------------------- 
 (0002753) paul (administrator) - 03-Feb-09 09:21
 http://www.dbmail.org/mantis/view.php?id=752#c2753 
---------------------------------------------------------------------- 
Please provide the relevant setting (encoding) from dbmail.conf.
Also please provide a file_logging_levels=511 trace of the dbmail-deliver
run. 

---------------------------------------------------------------------- 
 (0002755) maximP (reporter) - 03-Feb-09 10:13
 http://www.dbmail.org/mantis/view.php?id=752#c2755 
---------------------------------------------------------------------- 
I use these parameters:
encoding = utf8
default_msg_encoding = cp1251

BTW, the system is openSUSE 11.1 with gmime-2.2.23.

The log file for 511 level (log.gz) is attached.

 

---------------------------------------------------------------------- 
 (0002756) paul (administrator) - 03-Feb-09 11:44
 http://www.dbmail.org/mantis/view.php?id=752#c2756 
---------------------------------------------------------------------- 
Please clarify step 3 of steps-to-reproduce.
As I said: mimeparts contain unmodified parts of the message. How did you
verify the modified encoding?

I've inserted and retrieved your message on a pg8.3 installation. Looks
good to me.

Retrieval was tested with dbmail-export and with Thunderbird on
dbmail-imapd. 

---------------------------------------------------------------------- 
 (0002757) maximP (reporter) - 03-Feb-09 12:50
 http://www.dbmail.org/mantis/view.php?id=752#c2757 
---------------------------------------------------------------------- 
I tried both dbmail-export and pg_dump for mimeparts table. The resulting
files DID contain From: =?iso-8859-5?<sometext> (and To: also) headers.

openSUSE compiles gmime with --enable-rfc2047-workarounds. Can it be the
source of this problem?

 

---------------------------------------------------------------------- 
 (0002759) maximP (reporter) - 04-Feb-09 16:00
 http://www.dbmail.org/mantis/view.php?id=752#c2759 
---------------------------------------------------------------------- 
The problem is connected with the following line in _map_headers function
in dbmail-message.c:
g_mime_header_set_raw (GMIME_MESSAGE(self->content)->mime_part->headers,
NULL);
As far as I understand, it asks gmime to use parsed headers instead of raw
ones, so, after reconstruction the message, the header values can be
changed. It can lead to treating the message as illegal during DKIM
verification in mail client. Is it possible to avoid this situation? 

---------------------------------------------------------------------- 
 (0002761) paul (administrator) - 05-Feb-09 22:26
 http://www.dbmail.org/mantis/view.php?id=752#c2761 
---------------------------------------------------------------------- 
I've reproduced this now. Will investigate and fix it asap. 

---------------------------------------------------------------------- 
 (0002762) paul (administrator) - 08-Feb-09 11:30
 http://www.dbmail.org/mantis/view.php?id=752#c2762 
---------------------------------------------------------------------- 
On closes inspection: I am *not* able to reproduce this. I'll take a look
at the changes in gmime since 2.2.11 (ubuntu/hardy). 

---------------------------------------------------------------------- 
 (0002763) paul (administrator) - 08-Feb-09 13:54
 http://www.dbmail.org/mantis/view.php?id=752#c2763 
---------------------------------------------------------------------- 
Ok, now I've finally reproduced this using gmime-2.2.21 

---------------------------------------------------------------------- 
 (0002764) jasb (reporter) - 08-Feb-09 13:57
 http://www.dbmail.org/mantis/view.php?id=752#c2764 
---------------------------------------------------------------------- 
It may be useful for you to know, I also have this problem with
gmime-2.2.22 from debian sid. (dbmail 2.3.5 +/-, git on the
http://www.dbmail.org/mantis/view.php?id=755 fix) 

---------------------------------------------------------------------- 
 (0002765) paul (administrator) - 08-Feb-09 15:17
 http://www.dbmail.org/mantis/view.php?id=752#c2765 
---------------------------------------------------------------------- 
I've committed a series of fixes for this problem. Dbmail now depends on
gmime >= 2.2.22.

Please let me know if these problems persist.

maxim: your idea was spot on; removing the calls to gmime_header_set_raw
and other work-arounds for bugs in earlier versions of gmime did the trick
(hopefully).

Thanks. 

---------------------------------------------------------------------- 
 (0002766) maximP (reporter) - 09-Feb-09 10:11
 http://www.dbmail.org/mantis/view.php?id=752#c2766 
---------------------------------------------------------------------- 
The problem still exists.
Now the change is caused by g_mime_message_set_header function. I added
two debug lines which print the whole message in dbmail_message_set_header
function:

void dbmail_message_set_header(DbmailMessage *self, const char *header,
const char *value)
{
TRACE(TRACE_CRIT, g_mime_message_to_string(self->content));
g_mime_message_set_header(GMIME_MESSAGE(self->content), header, value);
TRACE(TRACE_CRIT, g_mime_message_to_string(self->content));
if (self->headers) _map_headers(self);
}

And got two different (in terms of From and To header charset) results in
stderr. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
12-Jan-09 11:04  maximP         New Issue                                    
25-Jan-09 13:35  paul           Note Added: 0002733                          
25-Jan-09 13:35  paul           Status                   new => feedback     
26-Jan-09 09:23  maximP         Note Added: 0002736                          
26-Jan-09 09:23  maximP         File Added: test.eml                         
03-Feb-09 09:21  paul           Note Added: 0002753                          
03-Feb-09 10:12  maximP         Note Added: 0002755                          
03-Feb-09 10:12  maximP         File Added: log.gz                           
03-Feb-09 10:13  maximP         Note Edited: 0002755                         
03-Feb-09 10:37  jasb           Issue Monitored: jasb                        
03-Feb-09 11:44  paul           Note Added: 0002756                          
03-Feb-09 12:45  maximP         Note Added: 0002757                          
03-Feb-09 12:50  maximP         Note Edited: 0002757                         
04-Feb-09 16:00  maximP         Note Added: 0002759                          
05-Feb-09 22:26  paul           Note Added: 0002761                          
05-Feb-09 22:26  paul           Assigned To               => paul            
05-Feb-09 22:26  paul           Status                   feedback => confirmed
08-Feb-09 11:30  paul           Note Added: 0002762                          
08-Feb-09 11:30  paul           Status                   confirmed =>
acknowledged
08-Feb-09 13:54  paul           Note Added: 0002763                          
08-Feb-09 13:54  paul           Status                   acknowledged =>
confirmed
08-Feb-09 13:57  jasb           Note Added: 0002764                          
08-Feb-09 15:17  paul           Note Added: 0002765                          
08-Feb-09 15:17  paul           Status                   confirmed => assigned
08-Feb-09 15:17  paul           Resolution               open => fixed       
08-Feb-09 15:17  paul           Fixed in Version          => 2.3.6           
09-Feb-09 10:11  maximP         Note Added: 0002766                          
======================================================================

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://twister.fastxs.net/mailman/listinfo/dbmail-dev

Reply via email to