Dear list,
I'm currently facing problems when receiving eMails with attachments, at least sometimes.
My mailserver is set up with the tool 'Mailcow', and hence is based on Dovecot (2.2.22 (fe789d2)) and Postfix.
Usually, there are no problems with receiving mails. If a mail has an attachment, however, it is possible that the following error occurs (extract from /var/log/mail.log):
'Jun 7 12:50:28 mail postfix/lmtp[26827]: 564E68A0515: to=<abc@def.ghj>, relay=my.mail.server[private/dovecot-lmtp], delay=0.71, delays=0.67/0.01/0.01/0.02, dsn=4.3.0, status=deferred (host my.mail.server[private/dovecot-lmtp] said: 451 4.3.0 Temporary internal failure (in reply to end of DATA command))'
Extract from /var/log/mail.err:
'Jun 7 12:50:28 mail dovecot: lmtp(26828): Error: Temp file creation to /tmp/dovecot.lmtp.mail.26828. failed: No such file or directory'
Once this happened the first time after dovecot is running, it will happen for all incoming mails with attachments. This can be solved temporarily by restarting the dovecot service and running postqueue -f, but that obviously does not solve the underlying problem.
In this post to this list, it is stated that dovecot sometimes creates temp files to avoid 'excessive memory usage'. I'm guessing that this is the case here, also the error message is similiar:
https://dovecot.org/list/dovecot/2016-June/104722.html
Should I simply change the configuration variable mail_temp_dir to solve this? Why is dovecot not able to find the /tmp folder? In the list thread, it is stated that this is caused by dovecot running with enabled chrooting. As far as I understand it though (correct me if I'm wrong), chrooting is not enabled in my dovecot configuration.
Please find attached the output of 'dovecot -n':
# 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.13 (7b14904) # OS: Linux 4.4.0-78-generic x86_64 Ubuntu 16.04.2 LTS auth_mechanisms = plain login dict { sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf } listen = * log_timestamp = "%Y-%m-%d %H:%M:%S " login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k mail_home = /var/vmail/%d/%n mail_location = maildir:~/ mail_max_userip_connections = 500 mail_plugins = quota acl fts fts_solr 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 index ihave duplicate mime foreverypart extracttext namespace { list = yes location = maildir:%%h/:INDEXPVT=~/Shared/%%u prefix = Shared/%%u/ separator = / subscriptions = no type = shared } namespace inbox { inbox = yes location = mailbox Archiv { special_use = \Archive } mailbox Archive { auto = subscribe special_use = \Archive } mailbox Archives { special_use = \Archive } mailbox "Deleted Messages" { special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Entwürfe { special_use = \Drafts } mailbox "Gelöschte Objekte" { special_use = \Trash } mailbox Gesendet { special_use = \Sent } mailbox "Gesendete Objekte" { special_use = \Sent } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Papierkorb { special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } plugin { acl = vfile acl_anyone = allow acl_shared_dict = file:/var/vmail/shared-mailboxes.db fts = solr fts_autoindex = yes fts_solr = url=http://127.0.0.1:8983/solr/ quota = dict:Userquota::proxy::sqlquota quota_rule2 = Trash:storage=+100%% sieve = /var/vmail/sieve/%u.sieve sieve_after = /var/vmail/sieve/global.sieve sieve_max_script_size = 1M sieve_quota_max_scripts = 0 sieve_quota_max_storage = 0 } protocols = imap sieve lmtp pop3 service auth { unix_listener /var/spool/postfix/private/auth_dovecot { group = postfix mode = 0660 user = postfix } unix_listener auth-master { mode = 0600 user = vmail } unix_listener auth-userdb { mode = 0600 user = vmail } user = root } service dict { unix_listener dict { group = vmail mode = 0660 user = vmail } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } user = vmail } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 2 service_count = 1 vsz_limit = 128 M } service managesieve { process_limit = 256 } ssl_cert = </etc/ssl/mail/mail.crt ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA ssl_dh_parameters_length = 2048 ssl_key = </etc/ssl/mail/mail.key ssl_protocols = !SSLv3 !SSLv2 userdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } protocol imap { mail_plugins = quota imap_quota imap_acl acl fts fts_solr } protocol lmtp { auth_socket_path = /var/run/dovecot/auth-master mail_plugins = quota sieve acl fts fts_solr postmaster_address = postmaster@steck.cc } protocol sieve { managesieve_logout_format = bytes=%i/%o } remote 127.0.0.1 { disable_plaintext_auth = no }
Thank you for your help.
Lars