mailing list subscriber
2012-Jul-22 11:59 UTC
[Dovecot] maildir_copy_with_hardlinks on v.2.0.19
Hi, I'm trying to get the so-called "single instance store" (I think cyrus has got the name for the first time) with dovecot --version = 2.0.19 binary package installed from ubuntu 12.04 lts official repo. I have checked that "maildir_copy_with_hardlinks" is enabled ("dovecot -a|grep hard" shows "yes") then I have installed and enabled the lmtp component of dovecot. The configuration "dovecot -n" is pasted here: http://paste.lug.ro/131180 Also in the same paste is a strace against dovecot and childrent showing evidence of the MTA delivering a single copy of the message via LMTP with multiple RCPT TO: headers. However when looking in the Maildir, I see the mail break down into three separate files instead of expected hardlinked files ("stat" and "ls" shows one single link count, inodes are different) Given the above data, what (am I | dovecot is) doing wrong? Please cc me if you need additional input when replying as I'm not subscribed to the list (I'll watch the thread online only) Many thanks in advance.
On 2012-07-22 7:59 AM, mailing list subscriber <mailinglists35 at gmail.com> wrote:> I'm trying to get the so-called "single instance store" (I think cyrus > has got the name for the first time) with dovecot --version = 2.0.19 > binary package installed from ubuntu 12.04 lts official repo.For advanced/newest features, you would be well advised to use the most current stable version, which is currently 2.1.8...> I have checked that "maildir_copy_with_hardlinks" is enabled ("dovecot > -a|grep hard" shows "yes") then I have installed and enabled the lmtp > component of dovecot. The configuration "dovecot -n" is pasted here: > http://paste.lug.ro/131180Please don't do that - just paste the output in the email body, it is much easier to read/respond and try to help you. -- Best regards, Charles
mailing list subscriber
2012-Jul-23 19:12 UTC
[Dovecot] maildir_copy_with_hardlinks on v.2.0.19
On Sun, Jul 22, 2012 at 2:59 PM, mailing list subscriber <mailinglists35 at gmail.com> wrote:> Hi, > > I'm trying to get the so-called "single instance store" (I think cyrus > has got the name for the first time) with dovecot --version = 2.0.19 > binary package installed from ubuntu 12.04 lts official repo.As requested, here is my update. As you can see I am running now the latest release however emails delivered through lmtp gets split into different files instead of expected hardlinked files. Please pay attention as I'm commenting in-between different pasted outputs: # 2.1.8 (30b0d6b1c581): /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-26-generic x86_64 Ubuntu 12.04 LTS auth_username_format = %Ln auth_verbose = yes auth_verbose_passwords = plain mail_location = maildir:~/Maildir managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location prefix } passdb { driver = pam } plugin { autocreate = Inbox autocreate2 = Sent autocreate3 = Drafts autocreate4 = Spam autocreate5 = Trash autosubscribe = Inbox autosubscribe2 = Sent autosubscribe3 = Drafts autosubscribe4 = Spam autosubscribe5 = Trash mail_log_events = delete expunge mailbox_delete mailbox_rename mail_log_fields = uid box msgid size sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 sieve lmtp service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0660 user = postfix } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/certs/dovecot.pem ssl_cipher_list ALL:!LOW:!SSLv2:ALL:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUM ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } verbose_proctitle = yes protocol imap { imap_client_workarounds = delay-newmail mail_max_userip_connections = 10 mail_plugins = " autocreate" } protocol pop3 { mail_max_userip_connections = 10 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { deliver_log_format = msgid=%m: %$ mail_plugins = sieve postmaster_address = postmaster quota_full_tempfail = yes rejection_reason = Your message to <%t> was automatically rejected:%n%r } for your pleasure, here is the transaction (note the same queue id and a single lmtp session for all three recipients) Jul 23 21:47:32 imap postfix/qmgr[27463]: 6746C27C687: from=<root at imap.mydomain.ro>, size=532, nrcpt=3 (queue active) Jul 23 21:47:32 imap dovecot: lmtp(40609): Connect from local Jul 23 21:47:32 imap dovecot: lmtp(40609, anotheruser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687 at imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<anotheruser at mydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.26, delays=0.15/0.01/0/0.1, dsn=2.0.0, status=sent (250 2.0.0 <anotheruser at mydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609, firstuser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687 at imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<firstuser at mydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.37, delays=0.15/0.01/0/0.2, dsn=2.0.0, status=sent (250 2.0.0 <firstuser at mydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609, firstuser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687 at imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<firstuser at anothermydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.44, delays=0.15/0.01/0/0.28, dsn=2.0.0, status=sent (250 2.0.0 <firstuser at anothermydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609): Disconnect from local: Client quit (in reset) Jul 23 21:47:32 imap postfix/qmgr[27463]: 6746C27C687: removed for whoever wants to blame postfix 2.9.3 without reason, here is the postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix home_mailbox = Maildir/ html_directory = /usr/share/doc/postfix/html inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack-delivery.conf -m "${EXTENSION}" mailbox_size_limit = 0 mydestination = imap.mydomain.ro, localhost.mydomain.ro, localhost myhostname = imap.mydomain.ro mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 readme_directory = /usr/share/doc/postfix recipient_delimiter = + relayhost smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key smtpd_tls_mandatory_ciphers = medium smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes tls_random_source = dev:/dev/urandom virtual_alias_maps = hash:/etc/postfix/valid_recipients_alias virtual_mailbox_domains = mydomain.ro, anothermydomain.ro virtual_mailbox_maps = $virtual_alias_maps virtual_transport = lmtp:unix:private/dovecot-lmtp and the dialogue between postfix lmtp client and dovecot lmtp server: Process 40677 attached (waiting for parent) Process 40677 resumed (parent 40562 ready) [pid 40676] write(4, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\n", 48) = 48 [pid 40676] read(4, <unfinished ...> [Process 40678 attached Process 40677 suspended [pid 40678] write(1, "SIEVE: fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave, NOTIFY: mailto\n", 208) = 208 Process 40677 resumed Process 40678 detached [pid 40677] --- SIGCHLD (Child exited) @ 0 (0) --- [pid 40677] read(11, "SIEVE: fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave, NOTIFY: mailto\n", 4096) = 208 [pid 40677] read(11, "", 3888) = 0 [pid 40677] read(21, "", 1024) = 0 [pid 40677] read(21, "", 1024) = 0 [pid 40677] read(10, "# /etc/nsswitch.conf\n#\n# Example configuration of GNU Name Service Switch functionality.\n# If you have the `glibc-doc-reference' and `info' packages installed, try:\n# `info libc \"Name Service Switch\"' for information about this file.\n\npasswd: compat\ngroup: compat\nshadow: compat\n\nhosts: files dns\nnetworks: files\n\nprotocols: db files\nservices: db files\nethers: db files\nrpc: db files\n\nnetgroup: nis\n", 4096) = 475 [pid 40677] read(10, "", 4096) = 0 [pid 40677] read(10, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\n", 1024) = 48 [pid 40677] write(10, "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 591) = 591 [pid 40676] <... read resumed> "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 8192) = 591 [pid 40676] write(5, "\344\236\0\0\7\0\0\0\1\0\0\0", 12) = 12 [pid 40562] read(128, "\344\236\0\0\7\0\0\0\1\0\0\0", 1020) = 12 [pid 40676] write(5, "\344\236\0\0\7\0\0\0\0\0\0\0", 12) = 12 [pid 40562] read(128, "\344\236\0\0\7\0\0\0\0\0\0\0", 1020) = 12 [pid 40676] write(4, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\tuser=\n", 54) = 54 [pid 40677] read(10, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\tuser=\n", 976) = 54 [pid 40676] read(4, <unfinished ...> [pid 40677] write(10, "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 591) = 591 [pid 40676] <... read resumed> "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 8192) = 591 [pid 40676] read(13, "# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\nnameserver 192.168.17.1\nsearch mydomain.ro\n", 4096) = 202 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\nnameserver 192.168.17.1\nsearch mydomain.ro\n", 4096) = 202 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "# /etc/nsswitch.conf\n#\n# Example configuration of GNU Name Service Switch functionality.\n# If you have the `glibc-doc-reference' and `info' packages installed, try:\n# `info libc \"Name Service Switch\"' for information about this file.\n\npasswd: compat\ngroup: compat\nshadow: compat\n\nhosts: files dns\nnetworks: files\n\nprotocols: db files\nservices: db files\nethers: db files\nrpc: db files\n\nnetgroup: nis\n", 4096) = 475 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "# The \"order\" line is only used by old versions of the C library.\norder hosts,bind\nmulti on\n", 4096) = 92 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "127.0.0.1\tlocalhost\n192.168.17.71\timap.mydomain.ro\timap\n\n# The following lines are desirable for IPv6 capable hosts\n::1 ip6-localhost ip6-loopback\nfe00::0 ip6-localnet\nff00::0 ip6-mcastprefix\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters\n", 4096) = 248 [pid 40676] read(13, "", 4096) = 0 [pid 40676] write(12, "220 imap.mydomain.ro Dovecot ready.\r\n", 45) = 45 [pid 40676] write(2, "\1\01040676 prefix=lmtp(40676): \n", 29) = 29 [pid 40676] write(2, "\1\00240676 Connect from local\n", 27) = 27 [pid 40676] read(12, "LHLO imap.mydomain.ro\r\n", 4096) = 31 [pid 40676] write(12, "250-imap.mydomain.ro\r\n250-8BITMIME\r\n250-ENHANCEDSTATUSCODES\r\n250 PIPELINING\r\n", 85) = 85 [pid 40676] read(12, "MAIL FROM:<root at imap.mydomain.ro>\r\nRCPT TO:<anotheruser at mydomain.ro>\r\nRCPT TO:<firstuser at mydomain.ro>\r\nRCPT TO:<firstuser at anothermydomain.ro>\r\nDATA\r\n", 4065) = 163 Process 40679 attached [pid 40676] write(13, "VERSION\t1\t0\nUSER\t1\tanotheruser at mydomain.ro\tservice=lmtp\n", 64) = 64 [pid 40679] read(4, "+\267\361\217", 4) = 4 [pid 40679] write(13, "VERSION\tconfig\t2\t0\nREQ\tmodule=auth\n", 35) = 35 [pid 40679] read(13, <unfinished ...> [pid 40677] read(11, "VERSION\tconfig\t2\t0\nREQ\tmodule=auth\n", 1024) = 35 [pid 40677] write(11, "\nverbose_proctitle=yes\nauth_mechanisms=plain\nauth_username_chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@\nauth_username_format=%Ln\nauth_verbose=yes\nauth_verbose_passwords=plain\npassdb=0\npassdb/0/driver=pam\nuserdb=0\nuserdb/0/driver=passwd\n\n", 266 <unfinished ...> [pid 40679] <... read resumed> "\nverbose_proctitle=yes\nauth_mechanisms=plain\nauth_username_chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@\nauth_username_format=%Ln\nauth_verbose=yes\nauth_verbose_passwords=plain\npassdb=0\npassdb/0/driver=pam\nuserdb=0\nuserdb/0/driver=passwd\n\n", 8192) = 266 [pid 40677] <... write resumed> ) = 266 [pid 40677] read(11, "", 989) = 0 [pid 40562] read(7, "t\236\0\0\1\0\0\0\347\3\0\0", 1020) = 12 [pid 40679] write(13, "VERSION\tanvil\t1\t0\n", 18) = 18 [pid 40679] write(5, "\347\236\0\0\t\0\0\0\350\3\0\0", 12) = 12 [pid 40562] read(151, "\347\236\0\0\t\0\0\0\350\3\0\0", 1020) = 12 [pid 40679] write(17, "VERSION\t1\t1\nSPID\t40679\n", 23) = 23 [pid 40676] read(13, "VERSION\t1\t1\nSPID\t40679\n", 8192) = 23 [pid 40679] read(17, "VERSION\t1\t0\nUSER\t1\tanotheruser at mydomain.ro\tservice=lmtp\n", 1024) = 64 [pid 40679] read(18, "# /etc/nsswitch.conf\n#\n# Example configuration of GNU Name Service Switch functionality.\n# If you have the `glibc-doc-reference' and `info' packages installed, try:\n# `info libc \"Name Service Switch\"' for information about this file.\n\npasswd: compat\ngroup: compat\nshadow: compat\n\nhosts: files dns\nnetworks: files\n\nprotocols: db files\nservices: db files\nethers: db files\nrpc: db files\n\nnetgroup: nis\n", 4096) = 475 [pid 40679] read(18, "", 4096) = 0 [pid 40679] write(17, "USER\t1\tanotheruser\tsystem_groups_user=anotheruser\tuid=1002\tgid=1002\thome=/home/anotheruser\n", 91) = 91 [pid 40676] read(13, "USER\t1\tanotheruser\tsystem_groups_user=anotheruser\tuid=1002\tgid=1002\thome=/home/anotheruser\n", 8169) = 91 [pid 40676] write(13, "USER\t2\tfirstuser at mydomain.ro\tservice=lmtp\n", 50) = 50 [pid 40679] read(17, "USER\t2\tfirstuser at mydomain.ro\tservice=lmtp\n", 960) = 50 [pid 40679] write(17, "USER\t2\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n", 85) = 85 [pid 40676] read(13, "USER\t2\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n", 8192) = 85 [pid 40676] write(13, "USER\t3\tfirstuser at anothermydomain.ro\tservice=lmtp\n", 39) = 39 [pid 40679] read(17, "USER\t3\tfirstuser at anothermydomain.ro\tservice=lmtp\n", 910) = 39 [pid 40679] write(17, "USER\t3\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n", 85) = 85 [pid 40676] read(13, "USER\t3\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n", 8192) = 85 [pid 40676] read(12, 0x18977e2, 3902) = -1 EAGAIN (Resource temporarily unavailable) [pid 40676] write(12, "250 2.1.0 OK\r\n250 2.1.5 OK\r\n250 2.1.5 OK\r\n250 2.1.5 OK\r\n354 OK\r\n", 64) = 64 [pid 40676] read(12, "Received: by imap.mydomain.ro (Postfix, from userid 0)\r\n\tid AE18F27C687; Mon, 23 Jul 2012 22:00:37 +0300 (EEST)\r\nDate: Mon, 23 Jul 2012 22:00:37 +0300\r\nTo: firstuser at anothermydomain.ro, firstuser at mydomain.ro\r\nCc: anotheruser at mydomain.ro\r\nSubject: test\r\nUser-Agent: Heirloom mailx 12.5 6/20/10\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=us-ascii\r\nContent-Transfer-Encoding: quoted-printable\r\nMessage-Id: <20120723190037.AE18F27C687 at imap.mydomain.ro>\r\nFrom: root at imap.mydomain.ro (root)\r\n\r\n=\r\n.\r\nQUIT\r\n", 3902) = 541 [pid 40676] read(14, "65536\n", 31) = 6 [pid 40676] write(16, "Return-Path: <root at imap.mydomain.ro>\nReceived: from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id /RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived: by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon, 23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37 +0300\nTo: firstuser at anothermydomain.ro, firstuser at mydomain.ro\nCc: anotheruser at mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx 12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: quoted-printable\nMessage-Id: <20120723190037.AE18F27C687 at imap.mydomain.ro>\nFrom: root at imap.mydomain.ro (root)\n\n=\n", 713) = 713 [pid 40676] write(16, "40676:imap", 10) = 10 [pid 40676] write(15, "15 :1343070037.M903400P40676.imap,S=713,W=731\n", 46) = 46 [pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, anotheruser): \n", 42) = 42 [pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A: msgid=<20120723190037.AE18F27C687 at imap.mydomain.ro>: saved mail to INBOX\n", 113) = 113 [pid 40676] write(16, "40676:imap", 10) = 10 [pid 40676] write(12, "250 2.0.0 <anotheruser at mydomain.ro> /RqJNFWfDVDkngAA7nOI2A Saved\r\n", 74) = 74 [pid 40676] read(18, "65536\n", 31) = 6 [pid 40676] write(21, "Return-Path: <root at imap.mydomain.ro>\nReceived: from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id /RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived: by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon, 23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37 +0300\nTo: firstuser at anothermydomain.ro, firstuser at mydomain.ro\nCc: anotheruser at mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx 12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: quoted-printable\nMessage-Id: <20120723190037.AE18F27C687 at imap.mydomain.ro>\nFrom: root at imap.mydomain.ro (root)\n\n=\n", 713) = 713 [pid 40676] write(21, "40676:imap", 10) = 10 [pid 40676] write(20, "29 :1343070037.M903400P40676.imap,S=713,W=731\n", 46) = 46 [pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, firstuser): \n", 40) = 40 [pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A: msgid=<20120723190037.AE18F27C687 at imap.mydomain.ro>: saved mail to INBOX\n", 113) = 113 [pid 40676] write(12, "250 2.0.0 <firstuser at mydomain.ro> /RqJNFWfDVDkngAA7nOI2A Saved\r\n", 72) = 72 [pid 40676] write(21, "Return-Path: <root at imap.mydomain.ro>\nReceived: from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id /RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived: by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon, 23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37 +0300\nTo: firstuser at anothermydomain.ro, firstuser at mydomain.ro\nCc: anotheruser at mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx 12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: quoted-printable\nMessage-Id: <20120723190037.AE18F27C687 at imap.mydomain.ro>\nFrom: root at imap.mydomain.ro (root)\n\n=\n", 713) = 713 [pid 40676] write(21, "40676:imap", 10) = 10 [pid 40676] write(20, "30 :fe1a8934559f0d50e49e0000ee7388d8\n", 37) = 37 [pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, firstuser): \n", 40) = 40 [pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A: msgid=<20120723190037.AE18F27C687 at imap.mydomain.ro>: saved mail to INBOX\n", 113) = 113 [pid 40676] write(12, "250 2.0.0 <firstuser at anothermydomain.ro> /RqJNFWfDVDkngAA7nOI2A Saved\r\n", 61) = 61 [pid 40676] write(2, "\1\01040676 prefix=lmtp(40676): \n", 29) = 29 [pid 40676] write(2, "\1\00240676 Disconnect from local: Client quit (in reset)\n", 54) = 54 [pid 40676] write(12, "221 2.0.0 Client quit\r\n", 23) = 23 for the sake of readability i stripped elf binary reads and certificates from the strace output. note the dovecot lmtp process reading a single email with three RCPT TO's and writing three times three different files instead of writing content one time and hardlinking two times. anyone care to shed a light? thanks.