Due to some issues with Comcast flagging some email I’ve been sending via IPv6 as Spam I wanted to keep mail from being sent this way. Comcast publishes this document explaining how to keep IPv6 mail from being blocked, but I’ve got some rDNS issues to sort out before I can work through all of those. So, in the mean time I simply wanted to stop
It took a bit to figure out how to disable IPv6 in the base Sendmail, but now that I’ve got it done I figured I’d share. This is in 9.0-RELEASE, but I’m sure it applies to many other recent FreeBSD Versions:
Edit /etc/make.conf to ensure that IPv6 is turned off for Sendmail compiles. Add this line to the file:
SENDMAIL_CFLAGS= -UNETINET6
Rebuild Sendmail as described here in the FreeBSD Handbook:
# cd /usr/src/lib/libsmutil
# make cleandir && make obj && make
# cd /usr/src/lib/libsm
# make cleandir && make obj && make
# cd /usr/src/usr.sbin/sendmail
# make cleandir && make obj && make && make install
Then, go into your Sendmail config directory (/etc/mail), and if you haven’t so before, run make all to build your machine-specific Sendmail config files.
Edit hostname.mc and locate the line that reads DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O') and comment it out by adding a dnl in front of it:
dnl DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
Compile the Sendmail config and restart Sendmail:
make install
make restart
And, now you’re done! Look at /var/log/maillog to ensure that mail is no longer being delivered via IPv6.