changelog for "mkvalidrcptto" http://qmail.jms1.net/scripts/mkvalidrcptto.shtml 2012-09-16 jms1 - Added mkvalidrcptto.reject functionality, to create "-" entries, which will make the patch explicitly reject mail sent to that address. This allows you to reject "user-xyz@domain" while still accepting "user-default@xyz". The code to support this has been in the combined patch since v7.0, however on 2012-07-04 I noticed it wasn't in the stand-alone validrcptto patch. 2010-02-01 jms1 - added "-r" option to show a report of what domains are found and how they were classified (i.e. local, alias, virtual, smtp, or unknown) - added comments in the code to explain the options 2008-09-13 jms1 - NO CHANGES to the "mkvalidrcptto" script itself. - re-arranged this changelog file to list changes in reverse chronological order, since that's how most other "changelog" files seem to do it. 2008-07-14 jms1 - fixed the code for virtual/local users with extensions noted above. http://www.ornl.gov/lists/mailing-lists/qmail/2008/06/msg00105.html if anybody wants to read the thread about the problem. 2008-07-04 jms1 - adding checks (long overdue) for domain names which are listed in both "locals" (or "me") and "virtualdomains", or which are listed in both "smtproutes" and "locals" (or "me"), or both "smtproutes" and "virtualdomains". - working on a fix for the code which identifies a virtual/local user to satisfy the right side of a virtualdomains line, so that it handles names with extensions (i.e. "joe-list" would search first for "joe-list", then for "joe".) thanks to Christopher Weimann for pointing out the problem, and for helping to test the various tries at fixing it. 2007-06-18 jms1 - adding logic to the "-c blah.cdb" code so that if the cdb file already contains the same data which would be written (i.e. if the data hasn't changed) then it doesn't write a new file. this way the time stamp of the cdb file will reflect the last time it was re-written. also adding "-d" option to enable debug messages. 2007-06-06 jms1 - adding options to change output format. with no options it just prints the list, one address per line. with "-m", the output is suitable for feeding directly into "cdbmake". with "-c blah.cdb", it will create "blah.cdb" directly. 2007-06-02 jms1 - adding a warning message for vpopmail domains which don't have "bounce-no-mailbox" associated with them. thanks to Joey DiJulio and Patrick "marlowe" MacDonald for the suggestion. 2007-03-06 jms1 - there seems to be a rash of people adding blank lines to their "rcpthosts" and "morercpthosts" files... adding explicit error messages about this. 2006-12-11 jms1 - adding logic to correctly handle cases where somebody puts a normal email address (instead of a domain) in the virtualdomains file. 2006-11-29 jms1 - adding logic to work around the case where users/cdb just plain doesn't exist (which can happen on systems which don't use vpopmail etc.) thanks to "Eric d'Alibut" on djb's qmail mailing list for pointing it out. 2006-03-26 jms1 - fixed a minor typo in the text of an error message (which does not affect how the script works.) Thanks to Robin Bowes for pointing it out. 2006-02-05 jms1 - adding an "exclude" list, for addresses which you may not want to include in the output (i.e. private mailing list aliases and things like that.) also fixed a bug in the code which handles the user-ext separator character. 2006-01-12 jms1 - making the script work correctly in the unlikely case that the user-ext separator character was changed, either by changing conf-break before compiling qmail, or specifying a custom value in the users/cdb file. 2006-01-11 jms1 - vpopmail has a "--enable-qmail-ext" option which changes how mailbox names are handled. if vpopmail is running WITH this option, every vpopmail mailbox has an implied "-default" alias whether there's a .qmail-user-default file there or not. thanks to robin bowes for pointing this out. 2006-01-08 jms1 - fixed a typo, thanks to "marlowe" for pointing it out. 2005-12-29 jms1 - adding an array of numeric uid's (empty by default) which will be ignored when system uid's are scanned. thanks to roman volf for the suggestion. 2005-12-07 jms1 - after reviewing qmail-send.c and controls.c, it turns out that the "me" becoming part of "locals" only happens if the "control/locals" file does not exist... otherwise an empty "control/locals" file means that there are no locals. updating the script to duplicate this logic. also replacing ":" with "." in .qmail filenames. thanks to jeff hedlund for pointing me towards the "me" problem, and for pointing out my oversight with the ":" thing. 2005-11-29 jms1 - now treats missing vpopmail directory as a warning rather than a fatal error. 2005-10-24 jms1 - adding a "-n" switch to generate a list without the system accounts (i.e. no "locals" or "me" domains will be printed.) note that "fastforward" aliases are considered local, since they are processed through the local delivery mechanism. 2005-08-03 jms1 - turns out if vpopmail is compiled with support for mysql, the "valias -s" command doesn't list aliases which exist by virtue of .qmail-blah files... which rather sucks, because this is how ezmlm sets up the aliases it needs, by creating .qmail-blah files. thanks again to Roman Volf for pointing this out. 2005-07-17 jms1 - domains listed in smtproutes are currently listed as just "@domain", meaning the entire domain is accepted without any checks done for individual userid's. adding code so that you can create a directory full of files named for the domains, containing userid's which exist in that domain. thanks to roman volf for the suggestion. 2005-06-30 jms1 - when vpopmail stores everything in a mysql database, aliases are apparently not represented by .qmail files at all. it looks like we have no choice but to use the vpopmail command-line tools to get the lists of mailboxes and aliases in the domain. thanks to Rob Pitt for telling me that this wasn't working (i don't use vpopmail with mysql so i had no way to know that this would be a problem.) 2005-06-29 jms1 - translating ":" to "." in .qmail-* filenames... i forgot that qmail-local does this. somebody emailed me to remind me about this, but i can't find the email so i don't know who to thank for reminding me about this... 2005-06-23 jms1 - changed the search pattern when reading "vuserinfo -D" to get a vpopmail domain's mailbox list, instead of recognizing \w+ it now uses \S+ which should allow "." in mailbox names 2005-06-18 jms1 - finishing support for .qmail-* files in local user home directories... i don't ever use local users for mailboxes myself, so it wasn't an issue for me, but somebody out there may be doing it, so... 2005-06-09 jms1 - adding support for "fastforward" aliases. 2005-05-09 jms1 - changing the vpopmail user info process. instead of reading vpasswd.cdb, using "vuserinfo -D {domain}" and parsing that output. this should include mysql user information for people who are using vpopmail with mysql. Thanks to Roman Volf on the qmailrocks mailing list for pointing this out. 2005-05-04 jms1 - cleaned up the code a little bit. holding the output in memory until the whole thing is done so that partial output doesn't become an issue. it also makes it possible to create a cdb file directly, but i don't think i'm going to do that- i like the "chaining" approach better, piping this script's output through "cdbmake-12" to produce the cdb file. 2005-04-20 jms1 - initial release