Chris Cappuccio [[email protected]] wrote:
>
> When the DNS record is in place, email to [email protected] results in
> 500 5.4.6 Routing loop detected: Loop detected
After screwing with it more I realized the loop was because I had a rule
match from src <localnet> for any action "outbound"
ordered before
match from any for domain <listdomains> action list_mda
but, unlike pf, smtpd is a first matching rule system.
Also, to make it work I still had to create a user table, so I ended up with
this:
--
/etc/mail/smtpd.conf:
table aliases file:/etc/mail/aliases
table list_virtual file:/etc/mda/list_virtual
table localnet { 10.0.0.0/8, 172.16.0.0/12 }
table mxdomains { mailthing.nmedia.net }
table list_domains { lists.nmedia.net }
listen on socket
listen on all
action local_mail mbox alias <aliases>
action outbound relay
action mxrelay relay backup mx mx.nmedia.net
action list_mda mda "/usr/local/bin/list-mda %{rcpt}" virtual <list_virtual>
match from any for domain <mxdomains> action mxrelay
match from any for rcpt-to <list_virtual> action list_mda
match ! rcpt-to <list_virtual> for domain <list_domains> reject
match from local for local action "local_mail"
match from local for any action "outbound"
match from src <localnet> for any action "outbound"
---
/etc/mda/list_virtual:
[email protected] _smtpd
[email protected] _smtpd
--
I'm not sure if this is the right way to implement my mini mailing list, as I
end up with a Delivered-To header for the mailing list and another on actual
final delivery.
At least mesages do get delivered to the list-mda program which does some
header stuff and then broadcasts them to the list members.
It's kinda weird that, even though I have a virtual table, I still have to
reject:
match from any for rcpt-to <list_virtual> action list_mda
match ! rcpt-to <list_virtual> for domain <list_domains> reject
Maybe the mda thing is overkill and I can just use aliases. Now that i'm
looking, that's what other mailing list managers seem to be doing with
opensmtpd.
My list-mda is a very simple program that reads a subject prefix and reply-to
header from a config file, along with the list recipients, and then sets up
the headers and blasts the email out. I wanted something simple that could
pledge and unveil (the unveil isn't going so well) and that would be
extremely minimal. No majordomo or mailman or sympa or whatever. If I really
want subscribe and unsubscribe, I can just build that later. As it is now, I
only want mailing lists for a small organization that won't change.