lmtp: Error: Temp file creation to /tmp/ ... failed: No such file or directory on incoming mails with attachments

Lars-Sören Steck info at larssteck.de
Wed Jun 7 23:42:11 EEST 2017


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 at 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 at 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




More information about the dovecot mailing list