> That's unrelated. The envelope cache should always be 7bit clean.
> Subjects should be utf7 encoded to begin with, and if they are not they
> are utf7 encoded by dbmail during the construction of the imap envelope
> string. There's no utf8 conversion done along the way.
>
> Could you provide me with a level5 log of such a message during
> insertion, i.e. 'cat test.eml|dbmail-smtp -u myuser'. Or a relevant row
> from the envelope table?
Yes, of couse:
$ cat message
From: [EMAIL PROTECTED]
To: test.test
Subject: проверка koi8-r текста
Привет всем
$ cat message | /usr/local/sbin/dbmail-smtp -u loe
Debug module mysql file dbmysql.c func db_query line 272: query [SHOW
VARIABLES LIKE 'collation_%']
Debug module mysql file dbmysql.c func db_mysql_check_collations line 113:
does [collation_database:koi8r_general_ci] match
[collation_connection:koi8r_general_ci]?
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT 1=1
FROM dbmail_physmessage LIMIT 1 OFFSET 0]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT 1=1
FROM dbmail_headervalue LIMIT 1 OFFSET 0]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT 1=1
FROM dbmail_envelope LIMIT 1 OFFSET 0]
Debug dbmail-message.c,_set_content_from_stream: parse message
Info dsn.c, dsnuser_resolve: checking if [loe] is a valid username, alias, or
catchall.
Debug authsql.c,auth_check_user_ext: checking user [loe] in alias table
Debug authsql.c,auth_check_user_ext: checks [0]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
deliver_to FROM dbmail_aliases WHERE lower(alias) = lower('loe') AND
lower(alias) <> lower(deliver_to)]
Debug authsql.c,auth_check_user_ext: user loe not in aliases table
Debug dsn.c, address_has_alias: user [loe] found total of [0] aliases
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
user_idnr FROM dbmail_users WHERE lower(userid) = lower('loe')]
Debug dsn.c, address_is_username: added user [loe] id [2] to delivery list
Info dsn.c, dsnuser_resolve: delivering [loe] as a username.
Debug module mysql file dbmysql.c func db_query line 272: query [BEGIN]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
user_idnr FROM dbmail_users WHERE lower(userid) =
lower('[EMAIL PROTECTED]@__')]
Debug misc.c,create_unique_id: created: 701816680e98e05978e5c6bf568afa51
Debug module db file db.c func db_findmailbox line 2284: looking for mailbox
with FQN [INBOX].
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
mailbox_idnr FROM dbmail_mailboxes WHERE name LIKE 'INBOX' AND owner_idnr=1]
Debug module db file db.c func db_find_create_mailbox line 3117: mailbox
[INBOX] found
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_physmessage (messagesize, internal_date) VALUES (0,
CURRENT_TIMESTAMP)]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_messages(mailbox_idnr, physmessage_id, unique_id,recent_flag, status)
VALUES (2, 35501, '701816680e98e05978e5c6bf568afa51', 1, 5)]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
physmessage_id FROM dbmail_messages WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_messageblks (is_header, messageblk,blocksize, physmessage_id) VALUES
(1,'From: [EMAIL PROTECTED]: test.test\nSubject: проверка koi8-r
текста\nReturn-Path: [EMAIL PROTECTED]: 35501\nMessage-Id:
<1162465177l.24931l.0l@(none)>\nMIME-Version: 1.0\n\n', 178, 35501)]
Debug dbmail-message.c,dbmail_message_store: allocating [524288] bytes of
memory for readblock
Debug module delivery file pipe.c func store_message_in_blocks line 477:
inserting message [Привет всем
]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
physmessage_id FROM dbmail_messages WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_messageblks (is_header, messageblk,blocksize, physmessage_id) VALUES
(0,'Привет всем\n', 12, 35501)]
Debug module mysql file dbmysql.c func db_query line 272: query [UPDATE
dbmail_messages SET unique_id = '701816680e98e05978e5c6bf568afa51', status =
0 WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
physmessage_id FROM dbmail_messages WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [UPDATE
dbmail_physmessage SET messagesize = 190, rfcsize = 199 WHERE id = 35501]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
dbmail_mailboxes.owner_idnr FROM dbmail_mailboxes, dbmail_messages WHERE
dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr AND
dbmail_messages.message_idnr = 73810]
Debug module db file db.c func user_idnr_is_delivery_user_idnr line 4298:
looking up user_idnr for [EMAIL PROTECTED]@__]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
user_idnr FROM dbmail_users WHERE lower(userid) =
lower('[EMAIL PROTECTED]@__')]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT id
FROM dbmail_headername WHERE headername='From']
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_headervalue (headername_id, physmessage_id, headervalue) VALUES
(8,35501,'[EMAIL PROTECTED]')]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT id
FROM dbmail_headername WHERE headername='Subject']
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_headervalue (headername_id, physmessage_id, headervalue) VALUES
(6,35501,'ц┐б░ц┐б▓ц┐б▐ц┐б≈ц┐б┘ц┐б▓ц┐б▀ц┐б│ koi')]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT id
FROM dbmail_headername WHERE headername='To']
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_headervalue (headername_id, physmessage_id, headervalue) VALUES
(5,35501,'test.test')]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_tofield (physmessage_id, toname, toaddr) VALUES
(35501,'','test.test')]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_fromfield (physmessage_id, fromname, fromaddr) VALUES
(35501,'','[EMAIL PROTECTED]')]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_datefield (physmessage_id, datefield) VALUES (35501,'1970-01-01
00:00:00')]
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_subjectfield (physmessage_id, subjectfield) VALUES
(35501,'ц░ц▓ц▐ц≈ц┘ц▓ц▀ц│ koi8-')]
Debug module misc file misc.c func dbmail_imap_append_alist_as_plist line
1845: handling a standard address [(null)] [EMAIL PROTECTED]
Debug module misc file misc.c func dbmail_imap_append_alist_as_plist line
1845: handling a standard address [(null)] [EMAIL PROTECTED]
Debug module misc file misc.c func dbmail_imap_append_alist_as_plist line
1845: handling a standard address [(null)] [EMAIL PROTECTED]
Debug module misc file misc.c func dbmail_imap_append_alist_as_plist line
1845: handling a standard address [(null)] [test.test].
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_envelope (physmessage_id, envelope) VALUES (35501,'(\"Thu, 01 Jan 1970
00:00:00 +0000\" \"koi8-r\" ((NIL NIL \"test\" \"test\")) ((NIL NIL \"test\"
\"test\")) ((NIL NIL \"test\" \"test\")) ((NIL NIL \"test.test\" NIL)) NIL
NIL NIL \"<1162465177l.24931l.0l@(none)>\")')]
Debug module delivery file pipe.c func insert_messages line 547: temporary
msgidnr is [73810]
Debug module delivery file pipe.c func insert_messages line 570: calling
sort_and_deliver for useridnr [2]
Info module sort file sort.c func sort_and_deliver line 55: Destination [loe]
useridnr [2], mailbox [(null)], source [4]
Info misc.c, find_bounded: Found nothing between '+' and '@'
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT name
FROM dbmail_sievescripts WHERE owner_idnr = 2 AND active = 1]
Info module sort file sort.c func sort_and_deliver line 84: Calling for a
Sieve sort
Debug module sieve file sortsieve.c func sort_startup line 576: Sieve vacation
enabled.
Debug module sieve file sortsieve.c func sort_startup line 586: Sieve notify
enabled.
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT name
from dbmail_sievescripts where owner_idnr = 2 and active = 1]
Info module sieve file sortsieve.c func sort_getscript line 339: Getting
default script named [main]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT script
FROM dbmail_sievescripts WHERE owner_idnr = 2 AND name = 'main']
Info module sieve file sortsieve.c func sort_getheader line 375: Getting
header [From] returning value [EMAIL PROTECTED]
Info module sieve file sortsieve.c func sort_getheader line 375: Getting
header [From] returning value [EMAIL PROTECTED]
Info module sieve file sortsieve.c func sort_getheader line 375: Getting
header [From] returning value [EMAIL PROTECTED]
Info module sieve file sortsieve.c func sort_fileinto line 247: Action is
FILEINTO: mailbox is [INBOX]
Info module sort file sort.c func sort_deliver_to_mailbox line 136: useridnr
[2] mailbox [INBOX]
Debug module db file db.c func db_findmailbox line 2284: looking for mailbox
with FQN [INBOX].
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
mailbox_idnr FROM dbmail_mailboxes WHERE name LIKE 'INBOX' AND owner_idnr=2]
Debug module db file db.c func db_find_create_mailbox line 3117: mailbox
[INBOX] found
Debug module sort file sort.c func sort_deliver_to_mailbox line 150: Checking
if we have the right to post incoming messages
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
permission,seen_flag,answered_flag,deleted_flag,flagged_flag,recent_flag,draft_flag
FROM dbmail_mailboxes WHERE mailbox_idnr = 1]
Debug module db file db.c func db_acl_has_right line 3944: checking ACL
[post_flag] for user [2] on mailbox [1]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
owner_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = 1]
Debug module db file db.c func db_acl_has_right line 3954: mailbox [1] is
owned by user [2], is that also [2]?
Debug module db file db.c func db_acl_has_right line 3958: mailbox [1] is
owned by user [2], giving all rights
Info module sort file sort.c func sort_deliver_to_mailbox line 175: user [2]
has right to deliver mail to [INBOX]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
pm.messagesize FROM dbmail_physmessage pm, dbmail_messages msg WHERE pm.id =
msg.physmessage_id AND message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT 1 FROM
dbmail_users WHERE user_idnr = 2 AND (maxmail_size > 0) AND (curmail_size +
190 > maxmail_size)]
Debug misc.c,create_unique_id: created: 8ea8d324cc86edfc4301225318bab4fe
Debug module mysql file dbmysql.c func db_query line 272: query [INSERT INTO
dbmail_messages (mailbox_idnr,physmessage_id, seen_flag, answered_flag,
deleted_flag, flagged_flag, recent_flag, draft_flag, unique_id, status)
SELECT 1, physmessage_id, seen_flag, answered_flag, deleted_flag,
flagged_flag, recent_flag, draft_flag, '8ea8d324cc86edfc4301225318bab4fe',
status FROM dbmail_messages WHERE message_idnr = 73810]
Debug module db file db.c func user_idnr_is_delivery_user_idnr line 4308: no
need to look up user_idnr for [EMAIL PROTECTED]@__]
Debug module db file db.c func user_quotum_inc line 336: adding 190 to
mailsize
Debug module mysql file dbmysql.c func db_query line 272: query [UPDATE
dbmail_users SET curmail_size = curmail_size + 190 WHERE user_idnr = 2]
Message module sort file sort.c func sort_deliver_to_mailbox line 195: message
id=73811, size=190 is inserted
Info module sort file sort.c func sort_and_deliver line 109: Keep was
cancelled. Message may be discarded.
Info module delivery file pipe.c func insert_messages line 577: successful
sort_and_deliver for useridnr [2]
Debug module delivery file pipe.c func execute_auto_ran line 419: starting
auto-notification procedure
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
notify_address FROM dbmail_auto_notifications WHERE user_idnr = 2]
Debug module delivery file pipe.c func execute_auto_ran line 425: no
notification address specified, skipping
Debug module delivery file pipe.c func execute_auto_ran line 439: starting
auto-reply procedure
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
reply_body FROM dbmail_auto_replies WHERE user_idnr = 2 AND (start_date IS
NULL OR start_date <= CURRENT_TIMESTAMP) AND (stop_date IS NULL OR stop_date
>= CURRENT_TIMESTAMP)]
Debug module delivery file pipe.c func execute_auto_ran line 445: no reply
body specified, skipping
Debug module delivery file pipe.c func insert_messages line 636: deliver [0]
messages to external addresses
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
physmessage_id FROM dbmail_messages WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [DELETE FROM
dbmail_messages WHERE message_idnr = 73810]
Debug module mysql file dbmysql.c func db_query line 272: query [SELECT
message_idnr FROM dbmail_messages WHERE physmessage_id = 35501]
Debug module delivery file pipe.c func insert_messages line 658: temporary
message deleted from database. Done.
Debug module mysql file dbmysql.c func db_query line 272: query [COMMIT]
Debug dsn.c, dsnuser_free: dsnuser freed
Debug module smtp file main.c func main line 384: they're all free. we're
done.
Debug module smtp file main.c func main line 392: exit code is [0].
--
Oleg Lapshin