Re: [courier-users] Courier-Imap problem
Hi Sam, I am using courier-authdaemon as my authentication module. The test account is Maildirectory is in /home/test/Maildir. The exim4 maildir_home configuratioon in /etc/exim4/conf.d/transport is as shown below: maildir_home: debug_print = T: maildir_home for [EMAIL PROTECTED] driver = appendfile directory = ${home}/Maildir delivery_date_add envelope_to_add return_path_add=true maildir_format=true mode = 0600 mode_fail_narrower = false And the courier configuration file in /etc/default is shown below: MAILDIR=. Kindly help. Thanks, George [EMAIL PROTECTED] writes: Hello, I have installed courier-imap/exim/squirrelmail on a debian server. However I am having a problem with courier-imap. Please see below the output when I test the imap server:- efinity:~# telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information. AB LOGIN test test AB OK LOGIN Ok. BC SELECT inbox * BYE [ALERT] Fatal error: No such file or directory Connection closed by foreign host Please note the Maildir directory exists for use help. The maildir does not exist at the location that you've configured the server to look for. Any help? Nope. Since you have not even indicated what authentication module you're using, and provided absolutely no details regarding the configuration of the test account, nobody can help you. --- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Courier-Imap problem
Hi all, I resolved the problem by renaming the /etc/default/courier file and thus forcing the courier-Imap to use it's deafult maildir settings. Thanks Sam for your pointers. George Hi Sam, I am using courier-authdaemon as my authentication module. The test account is Maildirectory is in /home/test/Maildir. The exim4 maildir_home configuratioon in /etc/exim4/conf.d/transport is as shown below: maildir_home: debug_print = T: maildir_home for [EMAIL PROTECTED] driver = appendfile directory = ${home}/Maildir delivery_date_add envelope_to_add return_path_add=true maildir_format=true mode = 0600 mode_fail_narrower = false And the courier configuration file in /etc/default is shown below: MAILDIR=. Kindly help. Thanks, George [EMAIL PROTECTED] writes: Hello, I have installed courier-imap/exim/squirrelmail on a debian server. However I am having a problem with courier-imap. Please see below the output when I test the imap server:- efinity:~# telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information. AB LOGIN test test AB OK LOGIN Ok. BC SELECT inbox * BYE [ALERT] Fatal error: No such file or directory Connection closed by foreign host Please note the Maildir directory exists for use help. The maildir does not exist at the location that you've configured the server to look for. Any help? Nope. Since you have not even indicated what authentication module you're using, and provided absolutely no details regarding the configuration of the test account, nobody can help you. --- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users --- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Courier-Imap problem
Hello, I have installed courier-imap/exim/squirrelmail on a debian server. However I am having a problem with courier-imap. Please see below the output when I test the imap server:- efinity:~# telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information. AB LOGIN test test AB OK LOGIN Ok. BC SELECT inbox * BYE [ALERT] Fatal error: No such file or directory Connection closed by foreign host Please note the Maildir directory exists for use help. Any help? Thanks, George. --- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Debugging of SMTP dialog
I've recently started noticing that people using dial-up connections to send mail via SMTP through my server (courier-0.44.2.20040114) are very frquently getting their PPP connections dropped somewhere during the SMTP dialog. This doesn't happen when receiving mail via POP3, nor is is there any problem when the clients' connections are via non-dialup links. I'm trying to debug this situation, and it would be extremely helpful if I could see a detailed log of the SMTP dialog on the server side. As far as I can tell, Courier doesn't log any of this information, but perhaps I'm missing something. Does Courier provide any facilities that would allow me to view the details of the SMTP dialog? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Message not found when running cancelmsg?
Ricardo Kleemann [EMAIL PROTECTED] writes: Hi, I'm confused about the relation between mailq and cancelmsg. I have a significantly large number of messages that I had previously canceled via cancelmsg, and at the time, cancelmsg did not indicate any errors. However, after a number of days these messages (their message IDs) still appear in mailq, but if I try to cancel them again I get a Message not found error. So why does mailq still show them as being in the queue? I can't seem to be able to flush these messages from mailq. So mailq still shows about 10,000 messages as being in the queue, even though cancelmsg reports them as not found How can I fix this? Thanks Ricardo After you do a cancelmsg, did you do a courier flush? That causes the queue to be flushed immediately. Without it, the queue gets flushed whenever Courier decides to periodically do it on its own, which may be much later. However, even with the courier flush, I occasionally have seen messages stay in the queue for hours, and even after Courier is stopped and restarted. If that is the behavior that you are experiencing, then you are witnessing what might be a bug. -- Courier User [EMAIL PROTECTED] --- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Does courier / maildrop unset SENDER if it's empty?
Roland [EMAIL PROTECTED] writes: --On Mittwoch, 14. Januar 2004 10:08 -0500 Courier User [EMAIL PROTECTED] wrote: But the point is still there: TDMA is supposed to return challenges to unknown senders which is just not possible with bounces. And tdma especially trolls for bounces with exactly those challenges. The line in .mailfilter should be something like: cc | test \$SENDER\ tdma-filter TMDA functions properly if the SENDER variable is (empty string) as opposed to being completely unset. The cc command above works fine. What do you expect to achieve by sending a challenge for a received bounce ? Doing such stupid things actually is typical for those sending back challenges to everything received (preferably on a unfiltered catchall), and they really deserve the 100% false positive rate... Roland That's not the reason for making sure that SENDER is set to an empty string. I never said anything about sending a challenge to an empty sender, nor do I recall reading that anyone else said that. The reason for this is that TMDA throws an exception and aborts its processing if the SENDER variable is unset. If SENDER is an empty string, then TMDA functions fine. This allows a TMDA rule such as this: from drop This rule never gets executed when TMDA aborts with an exception during the missing SENDER variable case. Think before you start throwing the word stupid around. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Proper handling of SENDER with TMDA in maildroprc - WAS RE: Re: Does courier / maildrop unset SENDER if it's empty?
Mitch \(WebCob\) [EMAIL PROTECTED] writes: I object to the word stupid, particularly because I think you are missing something - there are valid reasons to process messages with no sender - but there ARE some that don't need to be processed... I think I see what you are saying... No, you're giving him too much credit. He was incorrectly thinking that every message that is piped into TMDA will cause a challenge to be sent. This just isn't true, and before he calls people stupid, he should investigate what TMDA _really_ does. For Roland and anyone else who doesn't know this: TMDA will _decide_ whether a challenge needs to be sent. And only if it's deemed appropriate to send the challenge, it will do so. This decision is made via TMDA's own heuristics as well as rules that each user can set up. One of the rules that we can use is this one: fromdrop That means to drop (i.e., do not challenge, and in fact, do not even deliver) messages that have an empty SENDER field. We can also do things like this: fromaccept # accept the message without a challenge ... or this: fromdeliver=~/.garbage # store in a local file without # a challenge ... and there are many other possibilities. Maybe I'm doing something DUMB here... maybe I'm running tmda when I don't need to in this case - I think I see what you are saying, but if I change it to not run for enpty SENDER, then a spammer sending mail from won't be processed - right? Neither would a bounce (generated by TMDA to a non-existant remote user) Here is the code at present: LOCKTMDA=$HOME/.tmda.lock flock $LOCKTMDA { SH_SENDER=escape($SENDER) cc | env SENDER='$SENDER' /usr/local/tmda/bin/tmda-filter if ($EXITCODE != 0) { EXITCODE=0 exit } } #continue processing if TMDA approves message Currently, if EXITCODE !=0, then tdma-filter has done something with the message... I don't need to deliver, so I set my EXITCODE and exit If it IS 0, then I should continue to deliver it. Are you proposing I bypass TDMA when the SENDER is empty? You could do that if you want to save machine cycles. Or you could use the fromdrop rule from within TMDA to have the same effect. It's up to you. In either case, no challenge will be sent out. Would that allow bounces through? Would it allow UNWANTED bounces through? Currently TMDA eats bounces generated by it's confirmation messages, but I wonder if it won't also eat bounces that the user may want to see... I might have to try to force that to see... Thanks m/ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Roland Sent: Thursday, January 15, 2004 2:12 AM To: [EMAIL PROTECTED] Subject: Re: [courier-users] Re: Does courier / maildrop unset SENDER if it's empty? --On Mittwoch, 14. Januar 2004 10:08 -0500 Courier User [EMAIL PROTECTED] wrote: But the point is still there: TDMA is supposed to return challenges to unknown senders which is just not possible with bounces. And tdma especially trolls for bounces with exactly those challenges. The line in .mailfilter should be something like: cc | test \$SENDER\ tdma-filter TMDA functions properly if the SENDER variable is (empty string) as opposed to being completely unset. The cc command above works fine. What do you expect to achieve by sending a challenge for a received bounce ? Doing such stupid things actually is typical for those sending back challenges to everything received (preferably on a unfiltered catchall), and they really deserve the 100% false positive rate... Roland --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users --- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users -- Courier User [EMAIL PROTECTED] --- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn ___ courier-users
[courier-users] Re: Does courier / maildrop unset SENDER if it's empty?
Roland [EMAIL PROTECTED] writes: --On Dienstag, 13. Januar 2004 12:37 -0800 Mitch \\(WebCob\\) [EMAIL PROTECTED] wrote: Hi Roland - thanks - but if you read the followups I got it to work - the problem is that courier DELETES empty env's which have to be forced before calling programs that depend on their existance - not the value they contain. cc | env SENDER='$SENDER' /usr/local/tmda/bin/tmda-filter was: to | SENDER='$SENDER' /usr/local/tmda/bin/tmda-filter I referred to the single quote which will prevent any variable expansion under sh. Test for yourself: $ SENDER='$SENDER' env | grep SENDER I am surprised expansion within single-quotes works with env... It's because the variable $SENDER is expanded by _maildrop_ as the cc command is being generated. The command that gets passed to the shell, therefore is this: env SENDER='' /usr/local/tmda/bin/tmda-filter (assuming that SENDER is unset or the null string) But the point is still there: TDMA is supposed to return challenges to unknown senders which is just not possible with bounces. And tdma especially trolls for bounces with exactly those challenges. The line in .mailfilter should be something like: cc | test \$SENDER\ tdma-filter TMDA functions properly if the SENDER variable is (empty string) as opposed to being completely unset. The cc command above works fine. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Does courier / maildrop unset SENDER if it's empty?
Mitch \(WebCob\) [EMAIL PROTECTED] writes: Jason on TMDA list mentioned these threads: See http://thread.gmane.org/gmane.mail.imap.courier.general/13703 http://thread.gmane.org/gmane.mail.maildrop/1831 they quote this code which deletes empty env vars...: and some external programs rely on the existance of those env's even if empty! It's more than just _some_ programs. For one example out of many, any program built with the standard C libraries in Unix is apt to be affected by this behavior, as the getenv() function returns different values for a missing environment variable and one that is set to . Many programs behave differently depending on this return value. The following snippet of code in the SetVar function in maildrop/varlist.C illustrates this behavior: if (value.Length() == 0)// Delete variable { Variable **v; for (v= varlist[n]; *v; v= (*v)-next) if ( (*v)-name == var ) { Variable *vv= (*v); (*v)= vv-next; delete vv; break; } return; } Could someone (Sam?) explain why that 'delete' statement exists? Is there part of maildrop or courier that depends on this odd behavior? They suggest: xfilter env VARIABLE=$VARIABLE /usr/local/bin/your-command WHICH SEEMS TO WORK? BUT, Sam told me a little while ago that env didn't pipe std in (I was delivering a cc to it to capture some stuff) so I thought that meant it wouldn't work here... Confused... Try this on your machine: % echo foo | /usr/bin/env A=B /bin/cat foo As you can see, foo was output, which means that at least my env does indeed allow stdin to get piped through (on FreeBSD 4.0). -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Does courier / maildrop unset SENDER if it's empty?
Roland [EMAIL PROTECTED] writes: --On Dienstag, 13. Januar 2004 09:55 -0800 Mitch \\(WebCob\\) [EMAIL PROTECTED] wrote: I'm trying to call TMDA, and I get an error that SENDER is not set during one of it's processes... it IS set during the others... the difference in the messages (from the logs) is that in this case from is showing as Someone on the TMDA list says it is maildrop unsetting the RMPTY env vars... I tried changing my code to reset it, but it isn't working (syntax error) to | SENDER='$SENDER' /usr/local/tmda/bin/tmda-filter This wont ever work, and there is also absolutely no point to pipe mails with empty sender into tmda. This works fine if you use env as follows: to | /usr/bin/env SENDER='$SENDER' /usr/local/tmda/bin/tmda-filter TMDA works fine with a SENDER environment variable set to the empty string (). It just fails when the SENDER variable has been completely removed from the environment, as the following command (counter-intuitively) does within maildrop: SENDER= Using the above command (with /usr/bin/env) guarantees that TMDA works from within maildrop. I know, because that's what I had to do on my host to get it working. use |env to see what variables are available, and import those you need in maildrop. Roland -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Does courier / maildrop unset SENDER if it's empty?
Sam Varshavchik [EMAIL PROTECTED] writes: Courier User writes: Could someone (Sam?) explain why that 'delete' statement exists? Is there part of maildrop or courier that depends on this odd behavior? Because if variable FOO is not defined, $FOO defaults to an empty string. Logically, the converse should also be true. But the converse varies greatly from the way that most software that I know of functions. It seems contrary to the principle of least surprise (PoLS) to have A be equivalent to B, instead of C: A: (in maildrop) SENDER= B: (in an xfilter program) getenv(SENDER) == NULL /* contrary to PoLS */ C: (in an xfilter program) getenv(SENDER) != NULL /* adheres to PoLS */ In other words, in most software I know of, A = C. But in maildrop, A = B. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Logging exact SMTP dialog?
Is there any way to get a log of the exact SMTP dialog that Courier is managing? A certain site is having problems connecting to my server, and I suspect that this site is doing something incorrect during the SMTP dialog. I'd like to see a log of the exact commands that this site is sending, in order to confirm or reject this hypothesis. Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Logging exact SMTP dialog?
Jeff Jansen [EMAIL PROTECTED] writes: On Monday 17 November 2003 16:41, Rodrigo Severo wrote: Courier User wrote: Is there any way to get a log of the exact SMTP dialog that Courier is managing? I don't think Courier has this functionality but that would certainly be welcome. And not only for smtp, but also for imap, pop3... Can't you fire up a sniffer and watch the entire transaction (assuming it's not encrypted)? Jeff Jansen Of course I could use a sniffer or something similar. I was just asking whether Courier already has this capability. It would be a nice feature, IMHO. -- Courier User [EMAIL PROTECTED] --- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Setting environment variable in maildrop to deletes it?
In trying to debug some problems in a program that I'm invoking via xfilter in maildrop, I have realized that the following construct in a maildrop recipe file doesn't do exactly what I expected: VARIABLE= In this case, maildrop completely removes the environment variable called VARIABLE. I was expecting that it would cause that variable to exist and to be bound to an empty string. The following snippet of code in the SetVar function in maildrop/varlist.C illustrates this behavior: if (value.Length() == 0)// Delete variable { Variable **v; for (v= varlist[n]; *v; v= (*v)-next) if ( (*v)-name == var ) { Variable *vv= (*v); (*v)= vv-next; delete vv; break; } return; } Obviously, this code was written for a reason. I'm wondering what that reason is, since a non-existent environment variable is not the same as one that exists and contains an empty string. Even though maildrop appears to treat these two cases identically, child processes invoked via xfilter and other means could have problems with this. This happens because environment variables are inherited by child processes, which in the general case cannot be counted on to look at these two instances as being equivalent ... and in quite a few common cases, they do not. For one example out of many, this behavior could cause a problem in any C program that might be called via xfilter, because the standard getenv() library function in C returns NULL if the environment variable does not exist, but it returns a pointer to an empty string in the case that it does (and is set to ). What do you folks think of the following proposal (since I'm already working [albeit slowly] on a set of new functions for maildrop): Invoking the following within maildrop would cause the variable to be set to an empty string instead of being deleted. VARIABLE= A new function called unset() or something similar would be used to completely remove a variable from the environment; i.e., unset(VARIABLE) Inside of maildrop itself, these two constructs would behave identically, since the program seems to not make a distinction between these two cases. However, inside of programs invoked via xfilter etc., these two constructs would cause different effects. And this way, at least the behavior will be clearer to the writers and maintainers of maildrop recipes. Thoughts? -- Courier User [EMAIL PROTECTED] --- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: Setting environment variable in maildrop to deletes it?
On Sun, 9 Nov 2003, Courier User wrote: In trying to debug some problems in a program that I'm invoking via xfilter in maildrop, I have realized that the following construct in a maildrop recipe file doesn't do exactly what I expected: VARIABLE= In this case, maildrop completely removes the environment variable called VARIABLE. I was expecting that it would cause that variable to exist and to be bound to an empty string. A new function called unset() or something similar would be used to completely remove a variable from the environment; i.e., unset(VARIABLE) I guess I'd prefer unset VARIABLE to unset(VARIABLE) to have a closer analogue to VARIABLE=foo rather than set(VARIABLE,foo) and so on. The maildrop software already has an infrastructure for implementing functions of the form function([arg,...])The unset capability could be easily implemented using this infrastructure. To do it without parentheses seems to be a more complicated task, as it probably would involve a major overhaul of this infrastructure. -- Courier User [EMAIL PROTECTED] --- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] More headers in undeliverable mail notices?
When an undeliverable mail notice returns to the sender, only the following 5 headers of the original message seem to be present in the original message attachment: From Subject To Date Reply-To For filtering purposes, it would be nice if this notice would contain certain other selected headers from the original message. Is there any way that I can configure Courier to include more of those headers here? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: More headers in undeliverable mail notices?
On Tue, Oct 14, 2003 at 06:34:58PM -0400, Sam Varshavchik wrote: Courier User writes: When an undeliverable mail notice returns to the sender, only the following 5 headers of the original message seem to be present in the original message attachment: From Subject To Date Reply-To A delivery status notification includes the complete headers from the original message. Perhaps your mail client only shows these five headers by default, just like it shows only these five headers on the message itself, unless instructed otherwise. Ah ... that indeed is the case. Thank you. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Proposing new functions for maildropfilter
On Sun, Oct 05, 2003 at 08:57:56PM -0500, Carlos Paz wrote: Gordon Messmer wrote: [ ... ] Many useful, fail-safe maildrop recipes are bloated with expensive forks for file test operations, but who cares! maildrop itself is not ... should we go back to writing machine code? anything else is starting to seem bloatware ... File check operations are very useful and I fail to see the excessive complexity added to the language parser/global code to support them. If this features were added under an optional build flag, I'd bet that almost everyone would enable it on installation. my 2 cents. Well, I respect the wide range of opinions about this suggestion that have been expressed here. It seems to me that there's enough interest in my proposal that I will now start writing a maildrop patch as our discussions continue. I can always stop work on it. I'll leave out unlink/rename/rmdir, as these are more controversial. Also, I agree with the person who pointed out that these occur a lot less frequently under normal maildrop usage, and therefore an occasional fork of a shell for them does not cause much of a problem. I agree about an optional build flag, and I'll incorporate that into my patch (does anyone here understand the details of autoconf and want to give me some help with it when the time comes? ... if so, contact me via private email). -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Proposing new functions for maildropfilter
On Wed, Oct 01, 2003 at 10:32:19PM -0400, Sam Varshavchik wrote: Eduardo Roldan writes: I think that the conditional functions (the ones you only use in the IF statement) proposed by [EMAIL PROTECTED] shold be in maildrop because in a tyipical filter these are evaluated each time a message is delivered. Define typical filter. To me a typical filter means: depending on the message's contents, deliver to this folder, or that folder. Or, perhaps, discard the message; or maybe forward it. These things can be accomplished entirely by the existing facilities in maildrop. When you start doing things like checking if an external file exists, creating or removing directories, I think you're getting beyond what a typical mail filter does. Well, I'm running a system where some users use TMDA and others don't. Currently, I have the following recipe in my etc/maildroprc (see below) to decide whether or not to do TMDA filtering for a given user. For every message that comes into my system, I could get rid of a fork/exec to the shell and all the overhead for redirecting the ignored output back to mailfilter, if I could do something like this: exception { # Both ~/.tmda/config and ~/.tmda/crypt_key must both exist before # it's recommended to run TMDA. if ( isfile($HOME/.tmda/config) isfile($HOME/.tmda/crypt_key) ) { # do the rest of the stuff to filter through TMDA (see below) } } This is perfectly valid mail filtering, and I'm sure that similar things are done at lots of sites. The suggested functions are much more efficient in terms of system resources than the all the fork/exec/redirect stuff that has to be done today. And the maildrop code is lot clearer and therefore more maintainable with the use of functions such as these. Here's the code I currently have in etc/maildroprc. Note the ugliness in the top 10 or so lines: DOTMDA=0 exception { # Do a double check: ~/.tmda/config and ~/.tmda/crypt_key must # both exist before it's recommended to run TMDA. INVOKE=`/bin/test -f $HOME/.tmda/config 2/dev/null` if ( $RETURNCODE == 0 ) { INVOKE=`/bin/test -f $HOME/.tmda/crypt_key 2/dev/null` if ( $RETURNCODE == 0 ) { DOTMDA=1 } } } if ( $DOTMDA != 0 ) { EXITCODE=0 if ( X$SENDER eq X ) { # Needed to keep tmda from barfing SENDER= } exception { xfilter /usr/local/tmda/bin/tmda-filter -p } if ( $RETURNCODE != 0 ) { EXITCODE=$RETURNCODE exit } } -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: To user@domain.com and user-whatever@domain.com without dot-courier?
On Mon, Sep 29, 2003 at 06:22:56PM -0400, Sam Varshavchik wrote: Courier User writes: Assume that I have an email user on my system whose address is [EMAIL PROTECTED] I know I can use .courier and .courier-default in that user's HOME directory to control the delivery of email not only to [EMAIL PROTECTED], but also to all possible variants of the following form: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] etc. But as a sysadmin, I would like to control this outside of the users' HOME directories, so that I can force certain mail processing for all users. Is there any way to configure Courier so that all these random variant addresses can be handled for each given user without the use of ~/.courier, ~/.courier-default, and their cousins? You can create a script that creates a soft link from every account's .courier-foo file to a global default file. Yes, I know I can do that, but I was hoping that I didn't have to. Oh well ... -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: To user@domain.com and user-whatever@domain.com without dot-courier?
On Tue, Sep 30, 2003 at 08:40:20AM +0200, Mirko Zeibig wrote: On Mon, Sep 29, 2003 at 06:22:56PM -0400, Sam Varshavchik wrote: Courier User writes: [ ... ] But as a sysadmin, I would like to control this outside of the users' HOME directories, so that I can force certain mail processing for all users. Is there any way to configure Courier so that all these random variant addresses can be handled for each given user without the use of ~/.courier, ~/.courier-default, and their cousins? You can create a script that creates a soft link from every account's .courier-foo file to a global default file. What about creating a .courier-default file specifying maildrop as MDA and having a centralized maildroprc in /etc/courier/maildroprc? Thank you. Where would this .courier-default file reside? Would it be a soft link from every account's HOME directory to a central location? If so, I already have something like this in place. I'm trying to avoid putting all those links in the users' HOME directories, if at all possible. Sth. like: --- SHELL=/bin/ash DEFAULT=./Maildir ALL_LIST=$DEFAULT.MessagesForAll if (/^To:[EMAIL PROTECTED]/) to $ALL_LIST/ to $DEFAULT -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: To user@domain.com and user-whatever@domain.com without dot-courier?
On Tue, Sep 30, 2003 at 05:22:51AM -0400, Courier User wrote: On Mon, Sep 29, 2003 at 06:22:56PM -0400, Sam Varshavchik wrote: Courier User writes: Assume that I have an email user on my system whose address is [EMAIL PROTECTED] I know I can use .courier and .courier-default in that user's HOME directory to control the delivery of email not only to [EMAIL PROTECTED], but also to all possible variants of the following form: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] etc. But as a sysadmin, I would like to control this outside of the users' HOME directories, so that I can force certain mail processing for all users. Is there any way to configure Courier so that all these random variant addresses can be handled for each given user without the use of ~/.courier, ~/.courier-default, and their cousins? You can create a script that creates a soft link from every account's .courier-foo file to a global default file. I thought of another possibility, but it didn't work for me. I created this file and put delivery instructions in it: COURIERHOME/etc/aliasdir/[EMAIL PROTECTED]:com I ran makealiases, and I even restarted Courier, but addresses of the following forms did not get recognized: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] etc. What did I do wrong? -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: To user@domain.com and user-whatever@domain.com without dot-courier?
On Tue, Sep 30, 2003 at 07:14:32AM -0700, Gordon Messmer wrote: Courier User wrote: On Tue, Sep 30, 2003 at 08:40:20AM +0200, Mirko Zeibig wrote: What about creating a .courier-default file specifying maildrop as MDA and having a centralized maildroprc in /etc/courier/maildroprc? Where would this .courier-default file reside? Would it be a soft link from every account's HOME directory to a central location? If so, I already have something like this in place. I'm trying to avoid putting all those links in the users' HOME directories, if at all possible. If you want to use maildrop as the delivery agent, change the setting for DEFAULTDELIVERY in /etc/courier/courierd. I already have DEFAULTDELIVERY set exactly in that manner. The problem is that I need to accept mail not only for [EMAIL PROTECTED], but also, for [EMAIL PROTECTED]. In order to do that, I need to put .courier-default into the HOME directory for user, and as far as I know, if [EMAIL PROTECTED] is to be processed in exactly the same manner as [EMAIL PROTECTED], .courier-default must contain the following line: |preline maildrop I know that I can have a central version of .courier-default and then have a symbolic link for this in each user's HOME directory, but the purpose of my starting this thread is to ask if there's a way to allow [EMAIL PROTECTED] to be handled the same as [EMAIL PROTECTED] _without_ having to create these links in each and every HOME directory. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Enabling local filtering on virtual domains accounts?
On Mon, Sep 29, 2003 at 07:53:23AM -0400, Sam Varshavchik wrote: Courier User writes: If I don't have an smtpfilter step (i.e., no smtpfilter or smtpfilter-default or smtpfilter-ext file exists), do exit codes 0 and 99 from rcptfilter both identically cause the message to be passed on for further processing, such as subsequent courierfilter, COURIERHOME/etc/maildroprc, or $HOME/.courier processing, or is the Yes. message unconditionally whitelisted without further processing? Similarly, if there is indeed an smtpfilter step that gets invoked (due to an rcptfilter step returning error code 99), and if that smptfilter step returns with an exit code of 0, will further processing take place, or is the message unconditionally whitelisted at that moment? Once a message is accepted for delivery, everything that normally takes place otherwise, does. That includes $HOME/.courier, etc... Thanks for the info. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Feature idea
On Sat, Sep 27, 2003 at 10:28:19PM -0700, Gordon Messmer wrote: Zenon Panoussis wrote: Something like courier's MAXRCPT, but counting per day instead of per message. Something that says no single IP in the range a.b.c.d/x can send to more than 1000 recipients per day, no matter what. A default limit which no normal user will ever run into, but which would all the same make the service useless to any spammer. This would allow ISPs to put a limit to their own customers, while still accepting any amount of mail from foreign servers. That, in turn, would invalidate the whole concept of throwaway accounts. ... First mail server to offer the feature wins the year's anti-spam awards ;) I didn't get around to working on that for a while, but the filter only took about an hour to write: http://phantom.dragonsdawn.net/~gordon/courier-patches/courier-pythonfilter/ The ratelimit version included in 0.4 should work. I wouldn't recommend using the dialback filter at this point, though. There are some problems with it that I'm beginning to think are just a deadlock in python itself. If you install the software, exclude that filter. I've been following this thread, and I just want to publically congratulate you on your courier-pythonfilter package, which I just now looked at for the first time. I'm now going to incorporate your package into my Courier setup. Keep up the good work! -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Enabling local filtering on virtual domains accounts?
I host a number of virtual domains whose mail recipients are mapped to local, shell-based email accounts on my server. I have no locals file, and all my domains are listed in esmtpacceptmailfor and hosteddomains. Since nothing exists in locals, I cannot enable local filtering via localmailfilter(7). I keep forgetting the exact reason why I don't use locals ... it has to do with the fact some important capability that I need doesn't work the way I want for accounts whose domains are in locals. I'm sure I'll remember the reason for this as soon as I send off this message. :) But anyway, given the fact that I don't use locals, is there any kind of trick which will allow me to use local mail filtering with these accounts whose domains don't appear in locals? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Enabling local filtering on virtual domains accounts?
On Sun, Sep 28, 2003 at 02:29:26PM -0400, Sam Varshavchik wrote: Courier User writes: I host a number of virtual domains whose mail recipients are mapped to local, shell-based email accounts on my server. I have no locals file, and all my domains are listed in esmtpacceptmailfor and hosteddomains. Since nothing exists in locals, I cannot enable local filtering via localmailfilter(7). The only difference between locals and hosteddomains is that the actual mailbox names must include @domain, in case of hosteddomains. In all other respects, the accounts may be used in the same identical way. You should be able to create .mailfilters, and installed rcptfilter/smtpfilter files for either locals or hosteddomains-based accounts. Hmmm ... well then, something else must not be working at my site. Thanks. If there's a .courier or a .courier-default file in the recipient's HOME directory, will that somehow override the localmailfilter processing? I keep forgetting the exact reason why I don't use locals ... it Because with locals you cannot have a different mailbox for each local mailbox name. So that if both example.com and domain.com are in locals, [EMAIL PROTECTED] and [EMAIL PROTECTED] is the same exact mailbox, foo. Using hosteddomains allows you to have separate [EMAIL PROTECTED] and [EMAIL PROTECTED] mailboxes. Ah yes ... now I remember. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Enabling local filtering on virtual domains accounts?
On Sun, Sep 28, 2003 at 04:10:36PM -0400, Sam Varshavchik wrote: Courier User writes: If there's a .courier or a .courier-default file in the recipient's HOME directory, will that somehow override the localmailfilter processing? No. localmailfilter occurs when the message is received from the sending mail server, before it is even accepted for local delivery. $HOME/.courier is not even in the picture yet. OK. Well, I got it working ... it was a problem with the specific user ID I was using to test it. This brings up another question. In the localmailfilter(7) man page, it states that for local delivery filtering, maildrop will be invoked as follows: HOME=$HOME FILTER -D uid/gid -M filter (where FILTER is, in this case, the full pathname for maildrop) However, as part of some debugging, I noticed that the following arguments are actually being passed to maildrop, at least in the rcptfilter case: -D uid/gid -M rcptfilter domain.com ip-addr [EMAIL PROTECTED] I presume that the final three arguments are the values of the following environment variables, respectively: TCPREMOTEHOST TCPREMOTEIP SENDER Is that correct? Also, can it be assumed that if BLOCK2 is also set, that it, too, will be appended as an argument to maildrop in this case? In general, can I count on these arguments always being passed to maildrop during rcptfilter and smptfilter calls, in the local filtering case? If so, should the documentation be upgraded to state that this is the case? Thanks. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Message-specific retry rules for sending?
On Sun, Sep 14, 2003 at 12:08:04AM -0400, Sam Varshavchik wrote: Courier User writes: Is there a way to control the number of times that a message is attempted to be resent by looking at the message itself? [ ... ] Is there any way to put this kind of processing within the message re-sending flow in Courier? Only by writing a custom script, and using cancelmsg. I can easily write a custom script, and I understand cancelmsg. But I'm not sure where this custom script would live. How can such a script determine that the sending of a given message has been retried a number of times? Would it have to read the logs to get this information, or is there another way? I already wrote a script that can retrieve a message from the queue, given its queue ID, so at least that part of the work is done. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Message-specific retry rules for sending?
On Sat, Sep 13, 2003 at 11:14:30PM -0700, Matthew Parke Bostrom wrote: I can easily write a custom script, and I understand cancelmsg. But I'm not sure where this custom script would live. How can such a script determine that the sending of a given message has been retried a number of times? Would it have to read the logs to get this information, or is there another way? Hi, I don't know exactly what you are trying to do, or how much percision you need. You might be able to write a cron job that would look at the control files. I think every time courier attempts to deliver a message, the attempt is written in the message's control file. http://www.courier-mta.org/queue.html -Matthew. Thank you. And yes, I was thinking of doing this with cron, but I was hoping that there would be a way to cause my script to get invoked every time courieresmtp runs. I'm using perlfilter, but the control files are not yet complete at the time it runs. And besides, this filter gets invoked from within submit and not apparently during retry attempts; this is handled ultimately by courieresmtp, which doesn't seem to have a way to use pluggable filters like submit has with perlfilter. But after reading your message, I got an idea: the syslog that I'm running allows for messages to be piped through pluggable scripts, and I'm already piping mail.info through such a script for other purposes. In that script, all I have to do is look for lines like this (split after the initial comma for ease of reading): Sep 14 10:16:50 myhost courieresmtp: id=00A2AB37.3F7D9481.00016801, from=[EMAIL PROTECTED],addr=[EMAIL PROTECTED],status: deferred If deferred appears at the end, I can do the moral equivalent of a recursive grep through the $localstatedir/msgq tree for the message's unique id (in this case, 00A2AB37.3F7D9481.00016801). This will allow me to locate the control file, a hypothetical version of which I have listed at the end of this message. In the control file, I can count the number of I0 R Connection refused lines or look at the timestamp on the D, C, or A lines following them. If this message has been retried more than a certain number of times or perhaps for longer than a given time period, I can then look into the message file itself, which will be a file located under the appropriate $localstatedir/msgs subdirectory, and whose name is gotten by replacing the leading C of the control file name with D. I can search for a special header in this message file to see if it's a TMDA challenge message. If so, I would then call cancelmsg and also locally blacklist the domain (in this case, [EMAIL PROTECTED]). Or something like that. :) Anyway, this is pretty complicated to do within syslog processing, so I should probably fork off a new process to do everything beginning with the grep-like thing every time I detect a deferred message. So barring any ability to install a filter inside of courieresmtp, this is how I think I'm going to tackle the problem. Does anyone have any other ideas? Thanks. This is the hypothetical control file that I referred to above: [EMAIL PROTECTED] fdns; localhost (localhost [127.0.0.1]) e t M00A2AB37.3F7D9481.00016801 [EMAIL PROTECTED] R N E1064153544 p1063577544 W1063563144 A1063548745 I0 R Connection refused D0 1063548745 C1063548745 A1063549045 I0 R Connection refused D0 1063548911 C1063548911 A1063549211 I0 R Connection refused D0 1063549010 C1063549010 A1063550810 -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Message-specific retry rules for sending?
On Sun, Sep 14, 2003 at 09:48:49AM -0700, Mitch (WebCob) wrote: Interesting idea - would like to hear how this turns out. Thanks. Well, I did what I specified below, and it works. I have it set up so that if a TMDA challenge is undelivered after N attempts (where N is configurable; currently, it's 12, which takes up around 150 minutes), the message is canceled and the original sender is added to a local blacklist. Thanks again for your suggestion, which got me on this track. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Courier User Sent: Sunday, September 14, 2003 8:22 AM To: [EMAIL PROTECTED] Subject: Re: [courier-users] Re: Message-specific retry rules for sending? On Sat, Sep 13, 2003 at 11:14:30PM -0700, Matthew Parke Bostrom wrote: I can easily write a custom script, and I understand cancelmsg. But I'm not sure where this custom script would live. How can such a script determine that the sending of a given message has been retried a number of times? Would it have to read the logs to get this information, or is there another way? Hi, I don't know exactly what you are trying to do, or how much percision you need. You might be able to write a cron job that would look at the control files. I think every time courier attempts to deliver a message, the attempt is written in the message's control file. http://www.courier-mta.org/queue.html -Matthew. Thank you. And yes, I was thinking of doing this with cron, but I was hoping that there would be a way to cause my script to get invoked every time courieresmtp runs. I'm using perlfilter, but the control files are not yet complete at the time it runs. And besides, this filter gets invoked from within submit and not apparently during retry attempts; this is handled ultimately by courieresmtp, which doesn't seem to have a way to use pluggable filters like submit has with perlfilter. But after reading your message, I got an idea: the syslog that I'm running allows for messages to be piped through pluggable scripts, and I'm already piping mail.info through such a script for other purposes. In that script, all I have to do is look for lines like this (split after the initial comma for ease of reading): Sep 14 10:16:50 myhost courieresmtp: id=00A2AB37.3F7D9481.00016801, from=[EMAIL PROTECTED],addr=[EMAIL PROTECTED],status: deferred If deferred appears at the end, I can do the moral equivalent of a recursive grep through the $localstatedir/msgq tree for the message's unique id (in this case, 00A2AB37.3F7D9481.00016801). This will allow me to locate the control file, a hypothetical version of which I have listed at the end of this message. In the control file, I can count the number of I0 R Connection refused lines or look at the timestamp on the D, C, or A lines following them. If this message has been retried more than a certain number of times or perhaps for longer than a given time period, I can then look into the message file itself, which will be a file located under the appropriate $localstatedir/msgs subdirectory, and whose name is gotten by replacing the leading C of the control file name with D. I can search for a special header in this message file to see if it's a TMDA challenge message. If so, I would then call cancelmsg and also locally blacklist the domain (in this case, [EMAIL PROTECTED]). Or something like that. :) Anyway, this is pretty complicated to do within syslog processing, so I should probably fork off a new process to do everything beginning with the grep-like thing every time I detect a deferred message. So barring any ability to install a filter inside of courieresmtp, this is how I think I'm going to tackle the problem. Does anyone have any other ideas? Thanks. This is the hypothetical control file that I referred to above: [EMAIL PROTECTED] fdns; localhost (localhost [127.0.0.1]) e t M00A2AB37.3F7D9481.00016801 [EMAIL PROTECTED] R N E1064153544 p1063577544 W1063563144 A1063548745 I0 R Connection refused D0 1063548745 C1063548745 A1063549045 I0 R Connection refused D0 1063548911 C1063548911 A1063549211 I0 R Connection refused D0 1063549010 C1063549010 A1063550810 -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL
[courier-users] Message-specific retry rules for sending?
Is there a way to control the number of times that a message is attempted to be resent by looking at the message itself? The reason this is desirable to me is as follows: On my server some of the users are utilizing TMDA, which is a challenge-response spam prevention system. When spam arrives with a SENDER address that refuses a connection, the sending of the challenge keeps getting retried in the normal way by Courier. However, in the case of these special messages, I'd like cause the retries to abort early, and the message to be sent through a special filter which causes the faulty SENDER address (or domain) to be locally blacklisted. The rest of the outgoing email should be handled in the normal way. I can identify these TMDA messages via a special header, and I know how to write the blacklisting filter. My question is this: Is there any way to put this kind of processing within the message re-sending flow in Courier? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Subdomain matches when user is specified in badfrom?
The bofh documentation makes it clear that the following cases are covered by the badfrom command: badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. badfrom @domain Reject all mail with the return address of [EMAIL PROTECTED]. badfrom @.domain Reject all mail with the return address of [EMAIL PROTECTED]. However, the following case is not specifically mentioned, and so can I therefore assume that it is not covered? ... badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Subdomain matches when user is specified in badfrom?
On Sun, Sep 07, 2003 at 05:09:44PM -0400, Sam Varshavchik wrote: Courier User writes: However, the following case is not specifically mentioned, and so can I therefore assume that it is not covered? ... badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. Correct. It is not covered. Thank you. Was this case omitted for a specific reason, or was it left out as an oversight? If there was no specific reason for this omission, is there any chance that this case will be offered in a future release of Courier? -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Subdomain matches when user is specified in badfrom?
On Sun, Sep 07, 2003 at 05:49:55PM -0400, Sam Varshavchik wrote: Courier User writes: On Sun, Sep 07, 2003 at 05:09:44PM -0400, Sam Varshavchik wrote: Courier User writes: However, the following case is not specifically mentioned, and so can I therefore assume that it is not covered? ... badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. Correct. It is not covered. Thank you. Was this case omitted for a specific reason, or was it left out as an oversight? This case was simply not implemented. If there was no specific reason for this omission, is there any chance that this case will be offered in a future release of Courier? If someone else does this, I'll look at the patch. How about this (based on 0.43.1)? *** courier/bofh.c.orig Sun Sep 7 18:21:53 2003 --- courier/bofh.c Sun Sep 7 19:03:56 2003 *** *** 220,225 --- 220,247 return (chkbadlist(pp, bofh_spamtrap)); } + static int chkusersubdom(const char *p, const char *d, const char *name) + { + const char *dn, *dn1, *d2; + int lp, ln, ldp, ldn; + if (p == NULL || d == NULL || d = p || d[1] != '.' + || name == NULL || (dn = strrchr(name, '@')) == NULL) + { + return (0); + } + + lp = d - p; + ln = dn - name; + if (lp != ln || strncmp(p, name, ln) != 0) + { + return (0); + } + + return ((ldn = strlen(dn1 = dn + 1)) 0 +(ldp = strlen(d2 = d + 2)) = ldn +strcmp(d2 + (ldp - ldn), dn1) == 0); + } + static int chkbadlist(const char *pp, struct bofh_list *b) { char *p=courier_malloc(strlen(pp)+1); *** *** 235,241 for (; b; b=b-next) { if ((d strcmp(d, b-name) == 0) ! || /* Entire domain */ strcmp(p, b-name) == 0 || (d strncmp(b-name, @., 2) == 0 (ll=strlen(b-name+1)) l --- 257,265 for (; b; b=b-next) { if ((d strcmp(d, b-name) == 0) ! || /* Entire domain with user ID */ ! chkusersubdom(p, d, b-name) ! || /* Entire domain without user ID */ strcmp(p, b-name) == 0 || (d strncmp(b-name, @., 2) == 0 (ll=strlen(b-name+1)) l -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Subdomain matches when user is specified in badfrom?
On Sun, Sep 07, 2003 at 07:05:17PM -0400, Courier User wrote: On Sun, Sep 07, 2003 at 05:49:55PM -0400, Sam Varshavchik wrote: Courier User writes: On Sun, Sep 07, 2003 at 05:09:44PM -0400, Sam Varshavchik wrote: Courier User writes: However, the following case is not specifically mentioned, and so can I therefore assume that it is not covered? ... badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. Correct. It is not covered. Thank you. Was this case omitted for a specific reason, or was it left out as an oversight? This case was simply not implemented. If there was no specific reason for this omission, is there any chance that this case will be offered in a future release of Courier? If someone else does this, I'll look at the patch. How about this (based on 0.43.1)? [ ... ] Correction: *** courier/bofh.c.orig Sun Sep 7 18:21:53 2003 --- courier/bofh.c Sun Sep 7 19:17:23 2003 *** *** 220,225 --- 220,247 return (chkbadlist(pp, bofh_spamtrap)); } + static int chkusersubdom(const char *p, const char *d, const char *name) + { + const char *dn, *dn1, *d1; + int lp, ln, ldp, ldn; + if (p == NULL || d == NULL || d = p || d[1] != '.' + || name == NULL || (dn = strrchr(name, '@')) == NULL) + { + return (0); + } + + lp = d - p; + ln = dn - name; + if (lp != ln || strncmp(p, name, ln) != 0) + { + return (0); + } + + return ((ldn = strlen(dn1 = dn + 1)) 0 +(ldp = strlen(d1 = d + 1)) = ldn +strcmp(dn1 + (ldn - ldp), d1) == 0); + } + static int chkbadlist(const char *pp, struct bofh_list *b) { char *p=courier_malloc(strlen(pp)+1); *** *** 235,241 for (; b; b=b-next) { if ((d strcmp(d, b-name) == 0) ! || /* Entire domain */ strcmp(p, b-name) == 0 || (d strncmp(b-name, @., 2) == 0 (ll=strlen(b-name+1)) l --- 257,265 for (; b; b=b-next) { if ((d strcmp(d, b-name) == 0) ! || /* Entire domain with user ID */ ! chkusersubdom(p, d, b-name) ! || /* Entire domain without user ID */ strcmp(p, b-name) == 0 || (d strncmp(b-name, @., 2) == 0 (ll=strlen(b-name+1)) l -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Subdomain matches when user is specified in badfrom?
On Sun, Sep 07, 2003 at 07:19:29PM -0400, Courier User wrote: On Sun, Sep 07, 2003 at 07:05:17PM -0400, Courier User wrote: On Sun, Sep 07, 2003 at 05:49:55PM -0400, Sam Varshavchik wrote: Courier User writes: On Sun, Sep 07, 2003 at 05:09:44PM -0400, Sam Varshavchik wrote: Courier User writes: However, the following case is not specifically mentioned, and so can I therefore assume that it is not covered? ... badfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. Correct. It is not covered. Thank you. Was this case omitted for a specific reason, or was it left out as an oversight? This case was simply not implemented. If there was no specific reason for this omission, is there any chance that this case will be offered in a future release of Courier? If someone else does this, I'll look at the patch. How about this (based on 0.43.1)? [ ... ] Correction: [ ... ] ... and here are the diffs for the documentation: *** courier/doc/courier.8.in.orig Sun Sep 7 19:23:47 2003 --- courier/doc/courier.8.inSun Sep 7 19:27:41 2003 *** *** 187,192 --- 187,196 Reject all mail with the return address of [EMAIL PROTECTED]. .TP + \fBbadfrom [EMAIL PROTECTED] + Reject all mail with the return + address of [EMAIL PROTECTED]. + .TP \fBbadfrom [EMAIL PROTECTED] Reject all mail with the return address of [EMAIL PROTECTED]. *** courier/doc/courier.html.in.origSun Sep 7 19:23:29 2003 --- courier/doc/courier.html.in Sun Sep 7 19:26:29 2003 *** *** 497,502 --- 497,520 badfrom TT CLASS=REPLACEABLE I + [EMAIL PROTECTED]/I + /TT + /TT + /DT + DD + P + Reject all mail with the return + address of TT + CLASS=LITERAL + #60;[EMAIL PROTECTED]#62;/TT + ./P + /DD + DT + TT + CLASS=LITERAL + badfrom TT + CLASS=REPLACEABLE + I @domain/I /TT /TT -- Courier User [EMAIL PROTECTED] --- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Hashcash and Courier?
I'd like to experiment with hashcash. Do any of you have any thoughts about the feasibility of doing this under Courier? And has anyone actually implemented any hashcash systems under Courier? For those of you who don't know what hashcash is, you can find information and other links here: http://www.cypherspace.org/~adam/hashcash/ Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Using maildrop to send to an IMAP subfolder?
Is there any way I can use the to or cc syntax in maildrop to remail a message to another user's IMAP subfolder? For example, suppose that at the domain mydomain.com there are two users, one named me and one named him. I know that the following line in the ~/.mailfilter file for user me will send an incoming message off to user him: to [EMAIL PROTECTED] But if user me wants the message to be sent to the INBOX.foobar folder of user him, is there any way to cause this to happen using to, or any of the other standard maildrop commands? Also, is there any way for user me to put a command into his own ~/.mailfilter file that will cause an incoming message to be stored in _his_ _own_ INBOX.foobar folder (i.e., for the same user me)? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Using maildrop to send to an IMAP subfolder?
On Fri, Jun 06, 2003 at 10:22:16AM -0400, Sam Varshavchik wrote: Courier User writes: [ ... ] But if user me wants the message to be sent to the INBOX.foobar folder of user him, is there any way to cause this to happen using to, or any of the other standard maildrop commands? No. Also, is there any way for user me to put a command into his own ~/.mailfilter file that will cause an incoming message to be stored in _his_ _own_ INBOX.foobar folder (i.e., for the same user me)? Yes: to Maildir/.foobar/. Thank you very much. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Using maildrop to send to an IMAP subfolder?
On Fri, Jun 06, 2003 at 11:15:14AM -0400, Courier User wrote: On Fri, Jun 06, 2003 at 10:22:16AM -0400, Sam Varshavchik wrote: Courier User writes: [ ... ] But if user me wants the message to be sent to the INBOX.foobar folder of user him, is there any way to cause this to happen using to, or any of the other standard maildrop commands? No. Given that maildrop doesn't offer a command for doing this, I wrote my own. The Perl source code of a quick-and-dirty, preliminary version of this utility is attached. This utility requires the Mail::IMAPClient perl module. Assuming that the utility is called 'toimap', it's invoked as follows: /path/to/toimap user [ folder ] ... where 'user' is the imap user ID, with an optional folder name appended, as follows: '[EMAIL PROTECTED]'. In the absence of a '@host' suffix, 'localhost' is used. ... and where 'folder' is an optional folder name. In its absence, it will default to 'INBOX'. If the folder name is specified as 'INBOX.whatever', then it will be used verbatim. If it's specified as 'whatever', then the folder will be 'INBOX.whatever'. The message is assumed to be available on STDIN. There is an empty routine in this Perl script called 'getpass'. I left it as an exercise to the reader to implement this routine. It takes a user and a host, and it returns a password. I recommend this be written in a very secure fashion. To use this utility inside of maildrop, do the following: cc |/path/to/toimap [EMAIL PROTECTED] [ folder ] or to |/path/to/toimap [EMAIL PROTECTED] [ folder ] -- Courier User [EMAIL PROTECTED] #!/usr/bin/perl # -*- perl -*- use Mail::IMAPClient; $0 =~ s:^.*/::; my $program = $0; my $imapInbox = 'INBOX'; my $host = 'localhost'; my $errorRC = 77; unless (scalar(@ARGV) 0) { stop(usage: $program [EMAIL PROTECTED] [ folder ]\n); # notreached } my $user = shift(@ARGV); my $folder = shift(@ARGV); if (!isset($folder)) { $folder = $imapInbox; } elsif ($folder !~ m/^$imapInbox\./) { $folder = $imapInbox.$folder; } if ($user =~ m/^(.+?)\@(.+)$/) { $user = $1; $host = $2; } my $imap = Mail::IMAPClient-new(); unless (defined($imap)) { stop($program: unable to instantiate Mail::IMAPClient object\n); # notreached } unless ($imap-Server($host) $imap-connect(User = $user, Password = getpass($user, $host))) { stop(unable to connect: [EMAIL PROTECTED]); # notreached } unless ($imap-IsConnected() $imap-IsAuthenticated()) { stop(connection failed: [EMAIL PROTECTED]); # notreached } unless ($imap-append($folder, join('', STDIN))) { stop(failed to append: [EMAIL PROTECTED]); # notreached } quit(0); # notreached sub quit { my $code = shift; unless (defined($code)) { $code = 0; } if ($imap) { if ($imap-IsConnected() || $imap-IsAuthenticated()) { $imap-logout(); } $imap = undef; } exit($code); } sub handler { quit($errorRC); # notreached } sub stop { my $message = shift; if (defined($message)) { $message =~ s:\r+::g; $message =~ s:\n+$::g; if ($message =~ m/\S/) { print $message\n; } } quit($errorRC); # notreached } sub isset { my $item = shift; return (defined($item) $item =~ m/\S/); } # # Return the password associated with a given user on # a given host. The implementation of this is left as # an exercise to the reader. # sub getpass { my $user = shift; my $host = shift; # Get the password, given the user and the host. my $pswd = undef; return ($pswd); } __END__
Re: [courier-users] Re: Using maildrop to send to an IMAP subfolder?
On Fri, Jun 06, 2003 at 12:19:30PM -0400, Courier User wrote: On Fri, Jun 06, 2003 at 11:15:14AM -0400, Courier User wrote: On Fri, Jun 06, 2003 at 10:22:16AM -0400, Sam Varshavchik wrote: Courier User writes: [ ... ] But if user me wants the message to be sent to the INBOX.foobar folder of user him, is there any way to cause this to happen using to, or any of the other standard maildrop commands? No. Given that maildrop doesn't offer a command for doing this, I wrote my own. The Perl source code of a quick-and-dirty, preliminary version of this utility is attached. This utility requires the Mail::IMAPClient perl module. Assuming that the utility is called 'toimap', it's invoked as follows: /path/to/toimap user [ folder ] ... where 'user' is the imap user ID, with an optional folder name appended, as follows: '[EMAIL PROTECTED]'. In the absence of a '@host' suffix, 'localhost' is used. CORRECTION: should read thus: ... with an optional HOST name appended ... [ ... etc. ... ] -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] I broke the ability to handle user-foo@domain.com
Certain users on my sysetm use TMDA, which will send messages to addresses in this form: [EMAIL PROTECTED], where the normal user address is [EMAIL PROTECTED], and whatever is an arbitrary string. I used to be able to trap these user-confirm-whatever addresses via ~/.courier and ~/.courier-default containing this line: |preline /usr/local/tmda/bin/tmda-filter However, this no longer works: I now get 550 User unknown errors when these user-confirm-whatever emails come in. I also created a ~/.courier-confirm-default file with the same contents, but I still get 550 User unknown. I've been fooling around with my Courier configuration lately, and I must have broken something that controls the acceptance of messages addressed in this way, but I can't figure out what I did to break this. I have domain.com in hosteddomains and domain.com and .domain.com in esmtpacceptmailfor. I have nothing in locals. I ran makehosteddomains and makeacceptmailfor. I even restarted courier. But still I get 550 User unknown for these addresses. Can anyone tell me what controls the acceptance of these user-confirm-whatever emails besides the things that I already mentioned, so I can undo whatever I did to break this? Thanks in advance. -- Courier User [EMAIL PROTECTED] --- This SF.net email is sponsored by: ObjectStore. If flattening out C++ or Java code to make your application fit in a relational database is painful, don't do it! Check out ObjectStore. Now part of Progress Software. http://www.objectstore.net/sourceforge ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] mail from: with a spoofed local address
I'm using Courier 0.38.1. Occasionally I receive mail from an SMTP connection from a foreign host (i.e., it doesn't appear in locals or hosteddomains or me) whose mail from: was specified with a spoofed local address, i.e., mail from: [EMAIL PROTECTED] ... where user is a valid local user and mydomain.com is one of the domains in locals or hosteddomains or me. Could someone point me to the place in the Courier documentation (which I have perused) that describes how I can block this kind of spam? Thank you very much in advance. -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Problem in courierctl.start (was: DEFAULTDELIVERY ignored [ ... ] )
Well, after much painstaking debugging, I figured out why DEFAULTDELIVERY was being ignored. The problem was in share/courierctl.start, and because of this problem, the variables in etc/courierd were never getting set when Courier started up. My system is freebsd 4.0, and on this system, the following line in courierctl.start does not work the way it was intended (note that this is one long line in that script ... I split it here for clarity in this message): /usr/bin/env - /bin/sh -c set -a ; . ${sysconfdir}/courierd; \ ${libexecdir}/courier/courierd I don't know if this is a bug or a feature of /bin/sh on my system, but the set -a and the . ${sysconfdir}/courierd portions never get executed within this construct. So, I made the following change to courierctl.start, and all of the sudden, DEFAULTDELIVERY started working fine: /usr/bin/env - /bin/sh _EOD_ set -a . ${sysconfdir}/courierd ${libexecdir}/courier/courierd _EOD_ After realizing that this is a problem, I searched for other scripts that might be using the same construct, and I found a three more that I changed in the same manner: share/imapd share/pop3d share/pop3d-ssl I believe that this here document construct should work under all implementations of the Bourne shell, in which each of these scripts is written. An alternative to this here document method would be to use the construct found in share/esmtpd within each of these four scripts (see the final 15-20 lines of share/esmtpd). Either way, I strongly request that the following non-portable construct be removed from all scripts in the next release of Courier: /usr/bin/env - /bin/sh -c blah; blah; blah ... Thank you. On Sat, Jun 08, 2002 at 11:43:27AM -0400, Courier User wrote: I'm running Courier 0.38.1. Summary: I've been trying to get the DEFAULTDELIVERY option in etc/courierd working, but no matter what I do, it seems to be ignored. However, when I put the same information into ~/.courier, it works fine. I've spent the past hour or so searching through the archives of this mailing list, and although there have been other people reporting this problem, no solution that was suggested had worked for me. I'm hoping that someone here could help me figure out what I'm doing wrong, since I want to use DEFAULTDELIVERY and do not want to have to maintain a ~/.courier file for each of the users on my system. Details: In /usr/local/share/courier/etc/courierd I have the following (NOTE: there are no leading spaces in any of these entries in all of the files I mention here ... I'm just indenting them here in this message for clarity): DEFAULTDELIVERY=| /usr/local/share/courier/bin/maildrop MAILDROPDEFAULT=./Maildir In /usr/local/share/courier/etc/maildrop I have this: /usr/local/share/courier/bin/maildrop In /usr/local/share/courier/etc/maildropfilter I have this: /usr/local/share/courier/bin/maildrop In /usr/local/share/courier/etc/maildroprc I have this: logfile /tmp/test.log log It worked! In /usr/local/share/courier/etc/authdaemonrc I have this: authmodulelist=authcustom authcram authuserdb authpam authpwd When I start up courier, I'm running authdaemond.plain Also, whenever I make changes, I completely shut down Courier and then start it again. In other words, I do a stop followed by a start, and I do NOT use restart. After I shut down Courier, I always use ps to make sure that there are no stray Courier-related daemons running, and there never are. Only then do I start Courier again via start. Without any ~/.courier file in the user's HOME directory, all email sent to the user gets delivered properly to his or her Maildir, but nothing appears in the /tmp/test.log file. However, if I put the following into a user's ~/.courier file ... | /usr/local/share/courier/bin/maildrop ... then, the words It worked! do indeed get appended to /tmp/test.log whenever that user receives email through Courier. Any ideas as to what I'm doing wrong? Thanks in advance. -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Problem in courierctl.start (was: DEFAULTDELIVERY ignored [ ... ] )
On Sun, Jun 09, 2002 at 11:09:51AM -0400, Sam Varshavchik wrote: Courier User writes: [ ... ] Either way, I strongly request that the following non-portable construct be removed from all scripts in the next release of Courier: /usr/bin/env - /bin/sh -c blah; blah; blah ... I have strong doubts about your theory. The -c flag to /bin/sh is very portable and should work everywhere. You'll find it documented in your man page. Ditto for the -a flag. Let's find out what the real problem is, instead of making guesses. Here is a small subset of the group of tests that I performed on my freebsd 4.0 system before posting my previous message: 1% echo echo foo /tmp/xxx 2% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar bar 3% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar foo bar 4% /usr/bin/env - /bin/sh -c (. /tmp/xxx; echo bar) bar 5% echo T=foo; export T /tmp/xxx 6% /usr/bin/env - /bin/sh -c T=bar; export T; . /tmp/xxx; /usr/bin/env T=bar 7% /usr/bin/env - /bin/sh -c T=bar; export T; . /tmp/xxx; /usr/bin/env T=foo Note that the presence of the ampersand changes the behavior. Furthermore, when I start Courier using the -c flag in share/courierctl, and when I do ps auexwww | egrep 'courier[d]', none of the variables set in etc/courierd appear in the environment. However, when I start Courier using the here document in share/courierctl, then all variables set in etc/courierd appear in the environment when I do a ps auexwww | egrep 'courier[d]'. And finally, when I insert /bin/date /tmp/xyz as the first line of etc/courierd, nothing gets put into the xyz file when I start Courier using -c in share/courierctl; however, when I start courier using the here document in share/courierctl. You may not get these same results on your own system, but I consistently get them on mine. As you can see, this is not due to guesses. Thank you very much. -- Sam -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Problem in courierctl.start (was: DEFAULTDELIVERY ignored [ ... ] )
On Sun, Jun 09, 2002 at 12:21:40PM -0400, Courier User wrote: Here is a small subset of the group of tests that I performed on my freebsd 4.0 system before posting my previous message: [ ... ] I tried some new tests, and they shed some more light on this problem: 1% echo echo foo /tmp/xxx 2% /usr/bin/env - /bin/sh -c . /tmp/xxx ; (echo bar ) foo bar 3% echo T=foo; export T /tmp/xxx 4% /usr/bin/env - /bin/sh -c T=bar; export T; . /tmp/xxx; (/usr/bin/env ) T=foo Note that enclosing the final command in parentheses along with its ampersand fixes the problem on my system. Therefore, I just now put the following command as the final line in share/couierctl.start (again, this is a single line in the original script ... I just split it here in this message for ease of readability): /usr/bin/env - /bin/sh -c set -a ; . ${sysconfdir}/courierd; \ ( ${libexecdir}/courier/courierd ) [ note the parentheses ] I then completely shut down Courier, made sure all the processes were really dead, and then started it up again. And this time, all of the variables in etc/courierd did indeed appear in the environment of courierd when I do a ps aeuxwww | egrep 'courier[d]', and the DEFAULTDELIVERY instructions in etc/courierd are now indeed being honored. Therefore, using this parentheses method is an alternative to the here document method that I mentioned in my earlier messages. And because of all this, I stand by my original statement that the following construct that is contained in a few Courier startup scripts is not portable: /usr/bin/env - /bin/sh -c blah; blah; blah ... However, the following construct seems more portable. /usr/bin/env - /bin/sh -c blah; blah; ...; (blah ) And for reference purposes, here's the set of tests that I described in my previous message: 1% echo echo foo /tmp/xxx 2% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar bar 3% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar foo bar 4% /usr/bin/env - /bin/sh -c (. /tmp/xxx; echo bar) bar 5% echo T=foo; export T /tmp/xxx 6% /usr/bin/env - /bin/sh -c T=bar; export T; . /tmp/xxx; /usr/bin/env T=bar 7% /usr/bin/env - /bin/sh -c T=bar; export T; . /tmp/xxx; /usr/bin/env T=foo ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Problem in courierctl.start (was: DEFAULTDELIVERY ignored [ ... ] )
On Sun, Jun 09, 2002 at 12:59:49PM -0400, Sam Varshavchik wrote: Courier User writes: Here is a small subset of the group of tests that I performed on my freebsd 4.0 system before posting my previous message: 1% echo echo foo /tmp/xxx 2% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar bar 3% /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar foo bar You may not get these same results on your own system, but I consistently get them on mine. As you can see, this is not due to guesses. Your claim that the -c or the -a options are not portable was certainly a guess. This looks like an internal sh bug. This bug is fixed in FreeBSD 4.5. Well, I'm sure there are people who are running versions of FreeBSD that are older than 4.5. For them, this sh bug makes the current share/courierctl.start script non-portable. The parentheses fix that I described in my subsequent message will make this portable. bash-2.05$ uname -a FreeBSD usf-cf-x86-freebsd-1.cf.sourceforge.net 4.5-STABLE FreeBSD 4.5-STABLE #5: Tue Apr 30 11:22:09 PDT 2002 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC i386 bash-2.05$ echo echo foo /tmp/xxx bash-2.05$ /usr/bin/env - /bin/sh -c . /tmp/xxx; echo bar foo bash-2.05$ bar Although the shell doesn't wait for the background process to finish, this should work just fine. It doesn't work fine on my freebsd 4.0 system: the foo never gets printed. -- Sam -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
Re: [courier-users] Re: Problem in courierctl.start (was: DEFAULTDELIVERY ignored [ ... ] )
On Mon, Jun 10, 2002 at 08:11:25AM +1200, Juha Saarinen wrote: On Sun, 9 Jun 2002, Courier User wrote: Upgrading the OS's on the servers used by an entire ISP that serves many users is not a trivial task. It cannot be done quickly. Nevertheless, it should be done as quickly as possible. Otherwise, you'll waste heaps of time working around obscure bugs like the one you described, and patching for security holes. ;-) Agreed. For example, we are working on our OS upgrade, and it's likely to take place within the next few weeks. And as for this sh bug: there are other sh bugs that people have happily been coding around for years. For example: using ... ${1+$@} ... instead of ... $@ ... due to an ancient bug that still exists in some versions of sh that are floating around. Of course people should upgrade their OS's. But I don't see why it is so important to avoid making a small and effective change to share/courierctl.start that will prevent this bug from biting people in the future. And as I mentioned before, I'm not convinced that pre 4.5 freebsd versions are the only OS versions which have this sh bug. It seems likely to me that many sh's that stemmed from the original BSD 4.[1-4] code could also have this problem. So why not just put the parens around '${libexecdir}/courier/courierd ' in the final line of share/courierctl.start and be done with it? It took less than a minute to do that on my system, and I'm sure that it would take no longer than that to do the same thing in the Courier code base. -- Juha Saarinen -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] DEFAULTDELIVERY ignored, but ~/.courier works
I'm running Courier 0.38.1. Summary: I've been trying to get the DEFAULTDELIVERY option in etc/courierd working, but no matter what I do, it seems to be ignored. However, when I put the same information into ~/.courier, it works fine. I've spent the past hour or so searching through the archives of this mailing list, and although there have been other people reporting this problem, no solution that was suggested had worked for me. I'm hoping that someone here could help me figure out what I'm doing wrong, since I want to use DEFAULTDELIVERY and do not want to have to maintain a ~/.courier file for each of the users on my system. Details: In /usr/local/share/courier/etc/courierd I have the following (NOTE: there are no leading spaces in any of these entries in all of the files I mention here ... I'm just indenting them here in this message for clarity): DEFAULTDELIVERY=| /usr/local/share/courier/bin/maildrop MAILDROPDEFAULT=./Maildir In /usr/local/share/courier/etc/maildrop I have this: /usr/local/share/courier/bin/maildrop In /usr/local/share/courier/etc/maildropfilter I have this: /usr/local/share/courier/bin/maildrop In /usr/local/share/courier/etc/maildroprc I have this: logfile /tmp/test.log log It worked! In /usr/local/share/courier/etc/authdaemonrc I have this: authmodulelist=authcustom authcram authuserdb authpam authpwd When I start up courier, I'm running authdaemond.plain Also, whenever I make changes, I completely shut down Courier and then start it again. In other words, I do a stop followed by a start, and I do NOT use restart. After I shut down Courier, I always use ps to make sure that there are no stray Courier-related daemons running, and there never are. Only then do I start Courier again via start. Without any ~/.courier file in the user's HOME directory, all email sent to the user gets delivered properly to his or her Maildir, but nothing appears in the /tmp/test.log file. However, if I put the following into a user's ~/.courier file ... | /usr/local/share/courier/bin/maildrop ... then, the words It worked! do indeed get appended to /tmp/test.log whenever that user receives email through Courier. Any ideas as to what I'm doing wrong? Thanks in advance. -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] Re: courier-users -- confirmation of subscription -- request 623605
On Sat, May 25, 2002 at 05:38:55PM -0700, [EMAIL PROTECTED] wrote: courier-users -- confirmation of subscription -- request 623605 We have received a request from 216.27.138.216 for subscription of your email address, [EMAIL PROTECTED], to the [EMAIL PROTECTED] mailing list. To confirm the request, please send a message to [EMAIL PROTECTED], and either: - maintain the subject line as is (the reply's additional Re: is ok), - or include the following line - and only the following line - in the message body: confirm 623605 (Simply sending a 'reply' to this message should work from most email interfaces, since that usually leaves the subject line in the right form.) If you do not wish to subscribe to this list, please simply disregard this message. Send questions to [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] I can't disable authmysql for the life of me.
I have installed courier-0.38 on my freebsd-4.0 system. I was successfully able to build and install it (esmptd, pop3d, imapd, authdaemond), and everything is running fine, except for one problem: no matter what I have tried to do in order to disable authmysql, several instances of authdaemond.mysql get started every time I start up my courier software. Now, I have read in the documentation that if the configuration process detects the existence of mysql on my system, the authmysql authentication will be built and included within courier. This can be disabled (according to the INSTALL documentation) by running the configure script with the --without-authmysql option. Well, mysql is indeed installed on my system, so I followed those instructions and indeed supplied the --without-authmysql option to configure. However, once the build and installation were completed, the authdaemon.mysql processes were still getting started when I initiated courier. So, I reconfigured, this time supplying the following options, just for the hell of it: --without-authmysql --disable-authmysql --without-authmysqld --disable-authmysqld But after rebuilding, reinstalling, and restarting, the same authdaemond.mysql processes were happily running. And yes, I indeed did a make clean and then deleted the config.cache file each time before re-running the configure script. Also, I always made sure that I stopped all courier processes before restarting ... and each time, I verfied that the authdaemond.mysql processes were indeed not running right before I did the restart. Furthermore, inside of /usr/local/share/courier/etc/authdaemonrc, the following lines exist, without any mention of authmysql: authmodulelist=authcustom authcram authuserdb authpam authpwd authmodulelistorig=authcustom authcram authuserdb authpam authpwd In /usr/local/share/courier/etc/authdaemonrc.dist, these lines are identical. The only places where references to mysql exist within the directory /usr/local/share/courier/etc are within the authmysqlrc and authmysqlrc.dist files. So ... can anyone offer me any suggestions as to how I can get rid of these authdaemond.mysql processes? Thanks in advance. -- Courier User [EMAIL PROTECTED] ___ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
[courier-users] SASL with Courier IMAP?
Forgive me if this is a FAQ, but I couldn't find it in the archives or any documentation. Of course, I have to admit that I only looked through the subjects of a few thousand archive messages, since I couldn't find a searchable archive for this mailing list. I notice some minimal information in the INSTALL documentation concerning the use of SASL for Courier's IMAP authentication, but I'm not sure how to make this work, or whether it even works at all. Has anyone been able to get Courier IMAP to authenticate via SASL, and if so, could you point me to the appropriate HOWTO or documentation? Thank you in advance. -- Courier User [EMAIL PROTECTED] ___ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] ___ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users