DISCLAIMER: There is no guarantee that I know what I am talking about. Use at your own risk.
Things I have cooked up for sendmail 8.12, 8.13 and related


Dec 16 2004, Sendmail 8.13.2

New version of skip-rshecks patch avoids conflict with badrcpt_shutdown patch and is diffed against 8.13.2
Important: apply this patch BEFORE badrcpt_shutdown.


Dec 14 2004, Sendmail 8.13.1

milter-rrres V10

This is an update to the previous version 9 fixing important bugs with ruleset flag handling. More details can be found in the Changes file.

Dec 16 2004
Updated tarball includes patch to apply against Sendmail 8.13.2 as well.


Dec 09 2004, Sendmail 8.13.1

milter-rrres V9

This is an update to the previous version 8 fixing a critical bug. More details can be found in the Changes file.


Dec 07 2004, Sendmail 8.13.1

milter-rrres V8

This is an update to the previous version 7. More details can be found in the Changes file.


Nov 15 2004, Sendmail 8.13.1

milter-rrres V7

This is an update to the previous version 6. More details can be found in the Changes file.


Oct 26 2004, Sendmail 8.13.1

badrcpt-shutdown.v1, BadRcptShutdown option.

This patch adds to options to sendmail.
BadRcptShutdown -- when the number of bad recipients reaches this threshold sendmail will consider closing the SMTP connection with a 421 code.
BadRcptShutdownGood -- the percentage of bad recipients out of total that needs to be matched or exceeded before sendmail will shutdown the connection. If 100, then sendmail will never shut the connection down if it has already accepted any recipients. If 0, sendmail will shut down the connection the recipient after BadRcptShutdown bad recipients have been reached.

To turn this on compile sendmail with -D_FFR_BADRCPT_SHUTDOWN
You also need to add -D_FFR_BADRCPT_SHUTDOWN to the m4 commandline before proccessing your mc file.


Oct 20 2004, Sendmail 8.13.1

skip-rscheck.v1, SkipRSChecks option.

This patch adds an option that allows one to select which of the check* rulesets sendmail will NOT call. The rulesets will NOT be altered in any way. It is presumed that the configurer has another method of calling those rulesets, perhaps from a milter using the milter-rrres patch(below).

After patching sendmail compilation with -D_FFR_SKIP_RSCHECKS is neccessary to turn this feature on.
The sendmail cf option "SkipRSChecks" can be .mc defined like this:
define(`confSKIP_RS_CHECKS', `')dnl
where as arguments one puts in the letter corresponding to below rulesets.

E for check_eoh
L for check_relay
P for check_compat
S for try_tls
H for all the header rulesets
C for tls_client
M for check_mail
R for check_rcpt
V for check_vrfy
N for check_ertn
D for check_data
O for check_eom


Oct 19 2004, Sendmail 8.13.1

Revision 6 of milter_rwsets_rcpt_rewrite_eagain_spike (milter-rrres) patch.

This revision of the patch adds the ability for milter rulesets to rewrite data sent to milters, flags and calling changes for smfi_rewrite(), smfi_vrewrite() and a new feature of Spiked Rejects.

Spiked rejects prevent any rejection of a milter from being proccessed as such by the MTA. Should the milter negotiate this with the MTA, the MTA will continue sending milter commands until message end after a spiked rejection.

See the enclosed Changes file for much more details, as well as the original Documentation.

The patch, revision 6


Oct 16 2004, Sendmail 8.13.1

This is an experimental patch to allow you to return error strings containing \n to sendmail from the access db or from ruleset checks. They will trigger multiline SMTP replies. I am currently not very sure if I handled enhanced DSN codes correctly.
The \n in the error string will be converted to a space before logged.
To use this patch please recompile sendmail with -D_FFR_MULTILINE_ERRORS

First Version: Oct 16, 2004.
Second Version: Oct 16, 2004. This one handles -X better.

Oct 26, 2004 -- New version fixes breakage to manual multiline replies sendmail already does (such as in response to EHLO command)
V3 of multiline patch

Oct 27, 2004 -- New version of patch repeats Enhanced status code for each line as per rfc2034 section 4.
V4 of multiline patch

Oct 28, 2004
This version detects already multilined msgs such as from smfi_setmlreply(). Also includued are some cleanups, proper handling of non smtp coded msgs and one less call to memchr.
V5 of multiline patch

Oct 30, 2004 -- This version is better optimized and now supports escaping the newline in access db or rulesets.
V6 of multiline patch

Dec 10, 2004
Apparently you will quickly run into cataddr() or prescan() errors with longer error messages. The fix is to increase MAXNAME to a larger value. The sendmail source warns about doing this, but it works. If anyone would happen to know what specific issues can be triggered by this, I would appreciate it.

Dec 16, 2004 -- This version is diffed against sendmail 8.13.2 and fixes handling of a trailing newline.
It also includes the increased MAXNAME.
V8 of multiline patch


Oct 16 2004, Libmilter and Sendmail 8.13.1

As announced in this google post.
This provides the features of milter command ruleset processing, proper envrcpt ordering of operations, libmilter function smfi_rewrite and EAGAIN flow control.

First Version: Oct 16, 2004.

Dec 11 2003,  Sendmail 8.12

I put up some scripts that I find usefull in a Linux environment for managing sendmail.

Dec 11 2003, vacation, Sendmail 8.12
I am sure many people have come up with patches to support intervals under 1 day. Here is mine.

To turn this on you need the environment -D_FFR_MIN_INTERVAL.
You can also put this into your site.config.m4 file:
APPENDDEF(`conf_vacation_ENVDEF', `-D_FFR_MIN_INTERVAL')dnl
Dec 11 2003,  Sendmail 8.12

I put up some scripts that I find usefull in a Linux environment for managing sendmail.

Nov 30 2003,  Sendmail 8.12

It seems that with one more line added to contrib/dnsblaccess.m4 you could use it for whitelisting with dns lists.
Here is the example;
(add this right before the error line, at the bottom before divert. Mind the tabs versus spaces issue)
R<WHITELIST> $*         $#OK

Now you can do things like this.

dnl Sendmail.mc file
HACK(`dnsblaccess',`exemption.ahbl.org',`',`',`ttec.wl.ahbl')dnl
HACK(`dnsblaccess',`query.bondedsender.org',`',`',`ttec.wl.bondedsender')dnl

#access map file
ttec.wl.bondedsender:127.0.0.10 WHITELIST
ttec.wl.bondedsender:           OK

ttec.wl.ahbl:127.0.0.2          WHITELIST
ttec.wl.ahbl:                   OK

May 28 2003, Sendmail for NT 3

An Aestiva HTML/OS bash script generator.
You must save this as, this is the format that HTML/OS expect to process files in.

I used this to port my userbase from sendmail for NT 3 to a typical RedHat Linux setup. Comment put in and cleaned up a bit.
It should be trivial to write this in any other script language.

March 9 2003, Sendmail 8.12.8

Version 3 of virtuser match localpart patch.
I fixed up some quotes and hopefully avoid any breakage of virtuser_entire_domain.
More importantly, this changes the sequencing so that in the following

myalias@mydomain.com    myalias
myalias@                            error:nouser The email address %1@%2 is not valid on this system.    
@mycustomersdomain.com   mycustomers@someothedomain.com

The bottom line has higher precedence than the second.


November 21 2002, Sendmail 8.12.6

Version 2 of virtuser match localpart patch.
This one passes more parameters so when you match on local part your error message could say this:
cust1list@ error:nouser The email address of %1 @ %2 is invalid on the system.


November 20 2002, Sendmail 8.12.6

A patch to m4/proto.m4 which will instruct the virtusertable to match entries that look like this:
joe@ joesbox@thisdomain.com
my-list@ error:nouser This list is only available as my-list@foo.org
#an entry to make sure the alias entry for the mailing list does get attention...
my-list@foo.org my-list

Add this line to sendmail.mc after patching.
define(`_MY_DIRTY_VIRTUSER_LOCALPART_HACK_')dnl
May 15 2002

March 15 2002 ,Sendmail 8.12.3

A quick fix to makemap.c which will ignore a line begining with '\r'. This may help those moving files between dos/windows systems. A better fix would probaly be to ignore all lines which start with whitespace (of which '\r' is a part of).

March 15 2002 ,Sendmail 8.12.3

Some changes to savemail.c which restore the previous behavior of including the returned message reason instead of the hard to filter/categorize "Postmaster Notify: See transcript for details". If anyone can elucidate me as to why they changed that behavior, I would appreciate it. Even if it is in the changelog.

March 15 2002 ,Sendmail 8.12.3

Oct 16, 2004 NEW VERSION
Fixes handling of localpart only users and does better job on IPv6 rcpts.


While migrating to a two server solution, one for sending and recieving smtp and one for being the mail storage/pop3 server, I attempted to use these sendmail features in combination with FEATURE(`bestmx_is_local') (to make my life easier of course...[We virtual host a lot]): MAIL_HUB,LUSER_RELAY, LOCAL_RELAY,PRESERVE_LUSER_HOST, STICKYHOST and you name it. None of them worked, they rewrote the rcpt to:user@virtdomain  to be user@the.popserver

Now this would break all my virtusers even if it left my aliases alone. After posting to comp.mail.sendmail, I tried this patch to cf/m4/proto.m4 and these lines to my .mc file (instead of all the crap above - probaly doesnt work with luser_relay)

define(`MAIL_HUB',`esmtp:my.pop.server')dnl
define(`_PRESERVE_HOST_ON_LOCAL')dnl
feature(`bestmx_is_local')dnl

My freeRADIUS stuff
My Qpopper stuff
My ClamAv stuff
My Sendmail Milter Stuff