XANDIKOS-MILTER(8)
๐ XANDIKOS-MILTER(8) โ the milter that reads your calendar mail so you don't have to
okay so bestie, welcome to the System Administration Utilities corner of the manual โ this is XANDIKOS-MILTER, section 8, and she is serving inbound iMIP scheduling realness. let's get into it โจ
๐ธ NAME ๐ธ
xandikos-milter โ the Postfix/Sendmail milter for inbound iMIP scheduling. like, it's the bouncer at the club door of your mail server, but for calendar invites ๐
๐ฆ SYNOPSIS ๐ฆ
xandikos-milter --lmtp-socket TARGET --listen TARGET [OPTIONS]
xandikos-milter --server-url URL --listen TARGET [OPTIONS]
two whole modes, pick one, no cap ๐ซถ
โจ DESCRIPTION โจ
so xandikos-milter runs a libmilter-protocol server that Postfix or Sendmail can hand each inbound message to. every single message. it's giving main character energy at the SMTP door ๐
if the message carries a valid iMIP REQUEST, REPLY or CANCEL (RFC 6047), the message gets forwarded to a running Xandikos for storage in the schedule inbox. and here's the iconic part: the message is always accepted, so normal mailbox delivery justโฆ proceeds. no drama, no bounced mail, we move ๐
๐ Two transports are supported. Exactly one must be configured:
okay this is the important bit โ exactly one, not zero, not both. choose wisely bestie ๐ง
๐ LMTP (recommended)
with --lmtp-socket, the milter forwards the raw RFC 5322 message to a running xandikos serve --imip-listen endpoint. this is symmetric with the existing iMIP LMTP listener and is the cleanest setup when the milter and Xandikos run on the same host. same host = same vibe = slay โจ
๐ HTTP fallback
with --server-url, the extracted iTIP payload is POSTed to a Xandikos schedule-inbox URL. use this when the milter and Xandikos run on different hosts and you want HTTPS + HTTP Basic credentials between them. long distance relationship but make it secure ๐
โ ๏ธ heads up: messages that carry anAuto-Submittedheader other thanno(RFC 3834) are skipped, to avoid loops between two Xandikos instances. no infinite loop era, we are NOT doing that ๐ญ
๐ OPTIONS ๐
--lmtp-socket TARGETโ LMTP endpoint of a runningxandikos serve --imip-listen. passunix:/path/to/sockfor a Unix domain socket orhost:portfor TCP. may also be set viaXANDIKOS_MILTER_LMTP_SOCKET. ๐--server-url URLโ schedule-inbox URL of a running Xandikos server. each iMIP payload isPOSTed here astext/calendar. may also be set viaXANDIKOS_MILTER_SERVER_URL. ๐ฎ--username USERโ username for HTTP Basic authentication against--server-url. iykyk--password-file FILEโ file containing the HTTP Basic authentication password. keep it secret, keep it safe ๐คซ--unix-socket PATHโ Unix domain socket path for HTTP requests to the Xandikos server (useful when Xandikos itself listens on a Unix socket). ๐งฆ--listen TARGETโ listen target. passunix:/path/to/sockfor a Unix domain socket, orhost:portfor TCP. Postfix uses this assmtpd_milters=TARGET. may also be set viaXANDIKOS_MILTER_LISTEN. ๐ฏ--listen-mode MODEโ file mode (octal, e.g.660) for the Unix socket. ignored for TCP listeners.--listen-group GROUPโ group ownership for the Unix socket. ignored for TCP listeners.
๐ซถ POSTFIX CONFIGURATION ๐ซถ
add the milter to main.cf so Postfix consults it during SMTP intake. literally just drop these in:
smtpd_milters = unix:/run/xandikos/milter.sock
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
and milter_default_action = accept is the one โ it ensures Postfix keeps delivering mail if the milter is unreachable. the show goes on regardless, periodt ๐
๐ SEE ALSO ๐
xandikos(8)โ go read that one too bestie, it's the whole point ๐
๐ AUTHORS ๐
Jelmer Vernooij <jelmer@debian.org> โ icon, legend, the moment ๐
and that's the whole page! this lil beauty ships as part of the xandikos project, dated May 2026 โ so go forth, configure exactly one transport, and let your calendar invites find their home ๐๐ฆโจ
๐ฆ where this page comes from
- nixpkgs unstable: xandikos 0.4.9
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms