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