Fix fetchmail syntax errors for fetchmail 6.6.x on Alpine

fetchmailrc.j2:
- Move `ssl` to user section (inline after password); in 6.6.x it is a
  user-level keyword, not a server-level one — placing it after `proto pop3`
  caused 'unexpected USERNAME at user' syntax error
- Move `interval` before user section (it is server-level)
- Replace `smtphost dovecot` + `smtpport 24` with `smtphost dovecot/24`;
  `smtpport` is not a valid rcfile keyword in 6.6.x — port must be given
  as host/port in the smtphost value

dovecot.conf.j2:
- Add `auth_username_format = %Ln` to protocol lmtp block so that the
  LMTP recipient address `ml@dovecot` (appended by fetchmail) is stripped
  to just `ml` for userdb lookup
This commit is contained in:
ml
2026-06-29 21:25:35 +02:00
parent 7c690be891
commit 393cfd4060
2 changed files with 9 additions and 5 deletions
@@ -39,5 +39,10 @@ service lmtp {
} }
} }
# Strip domain from LMTP recipient so fetchmail's "ml@dovecot" resolves to user "ml"
protocol lmtp {
auth_username_format = %Ln
}
# SSL disabled — Traefik handles TLS # SSL disabled — Traefik handles TLS
ssl = no ssl = no
+4 -5
View File
@@ -6,15 +6,14 @@ set logfile /dev/stdout
set daemon 60 set daemon 60
{% for account in fetchmail_accounts | default([]) %} {% for account in fetchmail_accounts | default([]) %}
poll {{ account.server }} proto {{ account.protocol | default('pop3') }}{% if account.ssl | default(true) %} ssl{% endif %} poll {{ account.server }} proto {{ account.protocol | default('pop3') }}
interval {{ account.poll_minutes | default(10) }}
user "{{ account.username }}" password "{{ account.password }}"{% if account.ssl | default(true) %} ssl{% endif %}
user "{{ account.username }}" password "{{ account.password }}"
is {{ account.local_user }} here is {{ account.local_user }} here
smtphost dovecot smtphost dovecot/24
smtpport 24
lmtp lmtp
fetchall fetchall
{{ 'keep' if account.keep | default(true) else 'no keep' }} {{ 'keep' if account.keep | default(true) else 'no keep' }}
interval {{ account.poll_minutes | default(10) }}
{% endfor %} {% endfor %}