Paul, 


Output of your proposed debugging routine; everything seems to work. Select 
inbox through the fetch command shown below... 


SIGNIFICANTLY, however, as I've reported: A mail client can login properly, and 
'see' the header line in its inbox Remember, we've already received a bunch of 
email, on various virtualized domains, and have used your import utility for a 
few thousand more... I think we're beyond the basics. 


Problem seems to be at the point of 'translating' dbmail messageblks (binary, 
bytea in PostgreSQL) into something an email client can read? Note the long 
binary string 'message body'... Help! 


(By way of documentation example, where are the full docs to these debugging 
commands? Where would one have found them?) Lou 


PS - For what it's worth, we have lots of output in errorlog, but have _never_ 
gotten anything written to logfile. 




x select inbox 
Aug 03 13:03:02 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+191): 
COMMAND: [x select inbox] 


Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[0]: 'inbox' 


Aug 03 13:03:02 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+302): 
Executing command select... 


Aug 03 13:03:02 leeloo [2841]: Debug:[db] db.c,db_findmailbox(+2631): looking 
for mailbox with FQN [inbox]. 
Aug 03 13:03:02 leeloo [2841]: Debug:[misc] 
misc.c,mailbox_remove_namespace(+176): [inbox] 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
mailbox_idnr FROM dbmail_mailboxes WHERE name ILIKE 'inbox' AND owner_idnr=9] 
LOG: statement: SELECT mailbox_idnr FROM dbmail_mailboxes WHERE name ILIKE 
'inbox' AND owner_idnr=9 
LOG: duration: 5.143 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_set_state(+2135): state [2] 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4246): 
checking ACL [read_flag] for user [9] on mailbox [13] 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
owner_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = 13] 
LOG: statement: SELECT owner_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = 13 
LOG: duration: 1.016 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4257): mailbox 
[13] is owned by user [9], giving all rights 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
no_select FROM dbmail_mailboxes WHERE mailbox_idnr = 13] 
LOG: statement: SELECT no_select FROM dbmail_mailboxes WHERE mailbox_idnr = 13 
LOG: duration: 1.075 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
permission,seen_flag,answered_flag,deleted_flag,flagged_flag,recent_flag,draft_flag
 FROM dbmail_mailboxes WHERE mailbox_idnr = 13] 
LOG: statement: SELECT 
permission,seen_flag,answered_flag,deleted_flag,flagged_flag,recent_flag,draft_flag
 FROM dbmail_mailboxes WHERE mailbox_idnr = 13 
LOG: duration: 1.909 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
0,COUNT(*) FROM dbmail_messages WHERE mailbox_idnr=13 AND (status < 2) UNION 
SELECT 1,COUNT(*) FROM dbmail_messages WHERE mailbox_idnr=13 AND (status < 2) 
AND seen_flag=1 UNION SELECT 2,COUNT(*) FROM dbmail_messages WHERE 
mailbox_idnr=13 AND (status < 2) AND recent_flag=1] 
LOG: statement: SELECT 0,COUNT(*) FROM dbmail_messages WHERE mailbox_idnr=13 
AND (status < 2) UNION SELECT 1,COUNT(*) FROM dbmail_messages WHERE 
mailbox_idnr=13 AND (status < 2) AND seen_flag=1 UNION SELECT 2,COUNT(*) FROM 
dbmail_messages WHERE mailbox_idnr=13 AND (status < 2) AND recent_flag=1 
LOG: duration: 14.072 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
max(message_idnr)+1 FROM dbmail_messages WHERE mailbox_idnr=13 ] 
LOG: statement: SELECT max(message_idnr)+1 FROM dbmail_messages WHERE 
mailbox_idnr=13 
LOG: duration: 1.910 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
message_idnr FROM dbmail_messages WHERE mailbox_idnr = 13 AND status IN (0,1) 
ORDER BY message_idnr] 
LOG: statement: SELECT message_idnr FROM dbmail_messages WHERE mailbox_idnr = 
13 AND status IN (0,1) ORDER BY message_idnr 
LOG: duration: 3.338 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[mailbox] 
dbmail-mailbox.c,mailbox_build_uid_map(+184): ids [1], msn [1] 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
seen_flag, answered_flag, deleted_flag, flagged_flag, draft_flag, recent_flag, 
TO_CHAR(internal_date, 'YYYY-MM-DD HH24:MI:SS' ), rfcsize, message_idnr FROM 
dbmail_messages msg, dbmail_physmessage pm WHERE pm.id = msg.physmessage_id AND 
message_idnr = 6063 AND mailbox_idnr = 13 AND status IN (0,1,2) ORDER BY 
message_idnr ASC] 
LOG: statement: SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, 
draft_flag, recent_flag, TO_CHAR(internal_date, 'YYYY-MM-DD HH24:MI:SS' ), 
rfcsize, message_idnr FROM dbmail_messages msg, dbmail_physmessage pm WHERE 
pm.id = msg.physmessage_id AND message_idnr = 6063 AND mailbox_idnr = 13 AND 
status IN (0,1,2) ORDER BY message_idnr ASC 
LOG: duration: 9.091 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_set_state(+2135): state [3] 
* 1 EXISTS 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* 1 EXISTS 
] 
* 1 RECENT 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* 1 RECENT 
] 
* FLAGS (\Seen \Answered \Deleted \Flagged \Draft) 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* FLAGS 
(\Seen \Answered \Deleted \Flagged \Draft) 
] 
* OK [PERMANENTFLAGS (\Seen \Answered \Deleted \Flagged \Draft)] 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* OK 
[PERMANENTFLAGS (\Seen \Answered \Deleted \Flagged \Draft)] 
] 
* OK [UIDNEXT 6064] Predicted next UID 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* OK 
[UIDNEXT 6064] Predicted next UID 
] 
* OK [UIDVALIDITY 13] UID value 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* OK 
[UIDVALIDITY 13] UID value 
] 
Aug 03 13:03:02 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
MIN(message_idnr) FROM dbmail_messages WHERE mailbox_idnr = 13 AND status < 2 
AND seen_flag = 0] 
LOG: statement: SELECT MIN(message_idnr) FROM dbmail_messages WHERE 
mailbox_idnr = 13 AND status < 2 AND seen_flag = 0 
LOG: duration: 1.936 ms 
Aug 03 13:03:02 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
* OK [UNSEEN 1] first unseen message 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* OK [UNSEEN 
1] first unseen message 
] 
x OK [READ-WRITE] SELECT completed 
Aug 03 13:03:02 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [x OK 
[READ-WRITE] SELECT completed 
] 
Aug 03 13:03:02 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+321): 
Finished command select [0] 


- - - - - - - - - - - - - - - - - - - - - - - - 



x fetch * (body[]) 
Aug 03 13:11:31 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+191): 
COMMAND: [x fetch * (body[])] 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[0]: '*' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[1]: '(' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[2]: 'body' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[3]: '[' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[4]: ']' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,build_args_array_ext(+2546): arg[5]: ')' 


Aug 03 13:11:31 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+302): 
Executing command fetch... 


Aug 03 13:11:31 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4246): 
checking ACL [read_flag] for user [9] on mailbox [13] 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4257): mailbox 
[13] is owned by user [9], giving all rights 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[1]: '(' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[2]: 'body' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[3]: '[' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[4]: ']' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[5]: ')' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+597): parse args[2] 
= [body] 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+651): token []], 
nexttoken [)] 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,_imap_session_fetch_parse_octet_range(+524): parse token 
[)] 
Aug 03 13:11:31 leeloo [2841]: Debug:[imap] imapcommands.c,_ic_fetch(+1531): 
dbmail_imap_session_fetch_parse_args loop idx 4 state 4 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+578): arg[5]: ')' 


Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_fetch_parse_args(+597): parse args[5] 
= [)] 
Aug 03 13:11:31 leeloo [2841]: Debug:[imap] imapcommands.c,_ic_fetch(+1531): 
dbmail_imap_session_fetch_parse_args loop idx 5 state -1 
Aug 03 13:11:31 leeloo [2841]: Debug:[mailbox] 
dbmail-mailbox.c,dbmail_mailbox_get_set(+1431): [*] uid [0] 
Aug 03 13:11:31 leeloo [2841]: Debug:[misc] misc.c,g_tree_merge(+1260): (70e38) 
(70e18): a[0] [OR] b[1] -> a[1] 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
seen_flag, answered_flag, deleted_flag, flagged_flag, draft_flag, recent_flag, 
TO_CHAR(internal_date, 'YYYY-MM-DD HH24:MI:SS' ), rfcsize, message_idnr FROM 
dbmail_messages msg, dbmail_physmessage pm WHERE pm.id = msg.physmessage_id AND 
message_idnr = 6063 AND mailbox_idnr = 13 AND status IN (0,1,2) ORDER BY 
message_idnr ASC] 
LOG: statement: SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, 
draft_flag, recent_flag, TO_CHAR(internal_date, 'YYYY-MM-DD HH24:MI:SS' ), 
rfcsize, message_idnr FROM dbmail_messages msg, dbmail_physmessage pm WHERE 
pm.id = msg.physmessage_id AND message_idnr = 6063 AND mailbox_idnr = 13 AND 
status IN (0,1,2) ORDER BY message_idnr ASC 
LOG: duration: 6.117 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,_imap_cache_update(+355): cache message [6063] filter [1] 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
physmessage_id FROM dbmail_messages WHERE message_idnr = 6063] 
LOG: statement: SELECT physmessage_id FROM dbmail_messages WHERE message_idnr = 
6063 
LOG: duration: 1.003 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
messageblk, is_header FROM dbmail_messageblks WHERE physmessage_id = 3009 ORDER 
BY messageblk_idnr] 
LOG: statement: SELECT messageblk, is_header FROM dbmail_messageblks WHERE 
physmessage_id = 3009 ORDER BY messageblk_idnr 
LOG: duration: 3.403 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[message] 
dbmail-message.c,_set_content_from_stream(+429): parse message 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,_imap_cache_update(+406): cache size [284] 
* 1 FETCH (BODY[] {284} 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [* 1 FETCH 
(BODY[] {284} 
] 
x46726f6d3a206e6f626f64790a5375626a6563743a2074657374207375626a6563740a546f3a207465737475736572406c6f63616c686f73740a52657475726e2d506174683a206e6f626f64790a4d6573736167652d49643a203c313238303835313838372e323537302e30403e0a4d494d452d56657273696f6e3a20312e300a0ax7465737420626f64790a
 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
seen_flag FROM dbmail_messages WHERE message_idnr = 6063 AND status < 2 AND 
mailbox_idnr = 13] 
LOG: statement: SELECT seen_flag FROM dbmail_messages WHERE message_idnr = 6063 
AND status < 2 AND mailbox_idnr = 13 
LOG: duration: 1.462 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [SELECT 
permission,seen_flag,answered_flag,deleted_flag,flagged_flag,recent_flag,draft_flag
 FROM dbmail_mailboxes WHERE mailbox_idnr = 13] 
LOG: statement: SELECT 
permission,seen_flag,answered_flag,deleted_flag,flagged_flag,recent_flag,draft_flag
 FROM dbmail_mailboxes WHERE mailbox_idnr = 13 
LOG: duration: 1.148 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4246): 
checking ACL [seen_flag] for user [9] on mailbox [13] 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] db.c,db_acl_has_right(+4257): mailbox 
[13] is owned by user [9], giving all rights 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [UPDATE 
dbmail_messages SET recent_flag=0, seen_flag=1 WHERE message_idnr = 6063 AND 
status < 2 AND mailbox_idnr = 13] 
LOG: statement: UPDATE dbmail_messages SET recent_flag=0, seen_flag=1 WHERE 
message_idnr = 6063 AND status < 2 AND mailbox_idnr = 13 
LOG: duration: 21.504 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
) 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [) 
] 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [BEGIN] 
LOG: statement: BEGIN 
LOG: duration: 0.613 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [UPDATE 
dbmail_messages SET recent_flag = 0 WHERE message_idnr IN (6063) AND 
recent_flag = 1] 
LOG: statement: UPDATE dbmail_messages SET recent_flag = 0 WHERE message_idnr 
IN (6063) AND recent_flag = 1 
LOG: duration: 1.448 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[sql] dbpgsql.c,db_query(+279): [COMMIT] 
LOG: statement: COMMIT 
LOG: duration: 0.345 ms 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] dbmodule.c,db_query(+145): last query 
took [0] seconds 
Aug 03 13:11:31 leeloo [2841]: Debug:[db] db.c,db_commit_transaction(+214): 
last transaction took [0] seconds 
x OK FETCH completed 
Aug 03 13:11:31 leeloo [2841]: Debug:[imapsession] 
dbmail-imapsession.c,dbmail_imap_session_printf(+1525): RESPONSE: [x OK FETCH 
completed 
] 
Aug 03 13:11:31 leeloo [2841]: Info:[imap] imap4.c,IMAPClientHandler(+321): 
Finished command fetch [0] 


----- Original Message ----- 
From: "Paul J Stevens" <[email protected]> 
To: "DBMail mailinglist" <[email protected]> 
Sent: Tuesday, August 3, 2010 9:55:15 AM 
Subject: Re: [Dbmail] DBMail daemons segfaulting 

On 08/03/2010 01:21 PM, Lou Picciano wrote: 
> Paul, 
> 
> Yes, I've already been through all the man pages - we're beyond that. 
> (Are you saying the sum total of the docs are those man pages?) 

Almost. The man pages *plus* INSTALL *plus* the README.* docs. 

> How/where would I go about researching the current problem - that we 
> cannot read the body or attachments of any emails using imap? Server is 
> apparently set up OK, as we are connecting, receiving headers, etc. 

Either, message insertion did not succeed and the data is incomplete, or 
message retrieval fails. In both cases postgres and/or dbmail should log 
errors. 

Set the trace_syslog to 5 in dbmail.conf 

create a testuser: 

dbmail-users -a testuser -w test 

insert a message for this user: 

cat >> test.eml << EOF 
From: nobody 
Subject: test subject 
To: testu...@localhost 

test body 
EOF 

cat test.eml | dbmail-smtp -u testuser 

This must not log any dbmail related errors in syslog. 

Retrieve this message: 

.../dbmail-imapd -n 


.../dbmail-imapd -n 

* OK dbmail imap (protocol version 4r1) server 2.2.16 ready to run 
x login testuser test 
x OK LOGIN completed 
x select inbox 
* 1 EXISTS 
* 1 RECENT 
* FLAGS (\Seen \Answered \Deleted \Flagged \Draft) 
* OK [PERMANENTFLAGS (\Seen \Answered \Deleted \Flagged \Draft)] 
* OK [UIDNEXT 22] Predicted next UID 
* OK [UIDVALIDITY 5] UID value 
* OK [UNSEEN 2] first unseen message 
x OK [READ-WRITE] SELECT completed 
x fetch * (body[]) 
* 2 FETCH (BODY[] {155} 
From: nobody 
Subject: test subject 
To: testu...@localhost 
Return-Path: nobody 
Message-Id: <1280842773.22599.0@(none)> 
MIME-Version: 1.0 

test body 
) 
x OK FETCH completed 


You can add utf8 encoded characters to the message body to validate 
non-ascii message insertion and retrieval. 

If these tests complete your message insertion and retrieval is clean. 
More, similar testing with multipart messages is of course possible. 

> For starters, specifically: If the wiki is not authoritative, where IS 
> the authoritative setup information for a PostgreSQL backend? Have I 
> got it all right? Are my queries correct? Where is the code to 
> 'reconstruct' a complete email message, so I can test the integrity of a 
> message, or of our own SQL integrations? 

There is no specific setup information regarding specific RDBMS backends 
other than the INSTALL documument. You do not need to setup specific 
queries for dbmail proper. Only if you want to interface external tools 
to the dbmail database - like postfix or amavis etc - you need to set 
those up. But don't do that until basic dbmail functionality is complete 
and tested. 

The queries to reconstruct a message is quite simple for 2.2. You need 
to know the message_idnr which is equal to the IMAP UID number for a 
message: 

x login testuser test 
x select INBOX 
x fetch * (UID) 

this will give you the message_idnr for the last message inserted into 
testuser's INBOX. 

Use: 

select messageblk from dbmail_messageblks b 
JOIN dbmail_physmessage p on b.physmessage_id=p.id 
JOIN dbmail_messages m on p.id = m.physmessage_id 
where 
m.message_idnr=XXXXX; 

replacing XXXXX with the retrieved UID to give you the full raw message 
as stored in the database. 



-- 
________________________________________________________________ 
Paul Stevens paul at nfg.nl 
NET FACILITIES GROUP GPG/PGP: 1024D/11F8CD31 
The Netherlands________________________________http://www.nfg.nl 
_______________________________________________ 
DBmail mailing list 
[email protected] 
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail 
_______________________________________________
DBmail mailing list
[email protected]
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail

Reply via email to