
What Ruud posted is certainly good stuff but I got the impression from Robert's postings that this is overkill. On Thu, 14 May 2020, at 22:26, Robert Moskowitz wrote:
Does procmail default lock the local delivery mail file as I have been told postfix and other MTAs do?
In case of files, yes.
If I run `procmail -f $MAILTO` where procmail is getting the mail file from STDIN.
That's fine. It does not change the default locking.
Or do I add something like the following to my script:
exec 100>/var/spool/mail$USER.lock || exit 1 flock -w 120 100 || exit 1
Not needed.
And do I also need -d $MAILTO on the above procmail call?
Not as long as $MAILTO is your own address. On Fri, 15 May 2020, at 09:31, Robert Moskowitz wrote:
Se also https://linux.die.net/man/5/procmailrc which mentions using lock files.
I am piping the output of a formail command into procmail. No receipts.
Piping formail also doesn't change the fact that procmail has its default locking when delivering to files. But I did not get your remark about receipts.
It was that man page that clued me into needing to do something about locking the access to /var/spool/mail/$USER file.
It should work in most cases. Of course there are pathological cases like spool dirs mounted on network file systems or uncommon mail delivery agents (not that I know any).
But what is the 'common' lock file name? The examples in the above mask the file which is the lock file.
/var/spool/mail/$USER.lock but see the manpages for details or run an strace if you want to be sure. I am actually not sure procmail creates a $LOCKEXT (defaults to .lock) file but I also did not bother to check. In any case quoting from procmail(1) Whenever procmail itself opens a file to deliver to, it consistently uses the following kernel locking strategies: fcntl(2). -- -- Andreas Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. --- Glenn T. Seaborg, 1968, quoting Marie Curie; cf. https://todayinsci.com/C/Curie_Marie/CurieMarie-Quotations.htm