Saturday, April 30, 2011

postdrop: warning: uid=1234: File too large
sendmail: fatal: somebody@example.com(1234): message file too big
fetchmail: MDA returned nonzero status 75

I'm an old Luddite™ who still has email on their ISP and uses fetchmail(1) to get it onto the home network, as previously confessed. So last night I saw this on my ISP's server under /var/spool/mail/12/24/myuserid, much to my dismay:
$ ls -o
total 37760
-rw-------    1 myuserid   13404171 Apr  5 16:29 1302046178.9463_2.b.lds,S=13404171
-rw-------    1 myuserid   13404127 Apr  5 16:59 1302047989.1423_2.b.lds,S=13404127
-rw-------    1 myuserid   11769582 Apr 17 15:07 1303078027.25619_2.b.lds,S=11769582
Right, two messages over 3 weeks old, and one almost 2 weeks old. But why?
$ fetchmail
3 messages for <me> at ISP-pop-server.my-isp (38577880 octets).
postdrop: warning: uid=1234: File too large
sendmail: fatal: somebody@example.org(1234): message file too big
fetchmail: MDA returned nonzero status 75
reading message myuserid@localhost:1 of 3 (13404171 octets) not flushed
postdrop: warning: uid=1234: File too large
sendmail: fatal: somebody@example.org(1234): message file too big
fetchmail: MDA returned nonzero status 75
reading message myuserid@localhost:2 of 3 (13404127 octets) not flushed
postdrop: warning: uid=1234: File too large
sendmail: fatal: somebody@example.com(1234): message file too big
fetchmail: MDA returned nonzero status 75
reading message myuserid@localhost:3 of 3 (11769582 octets) not flushed
So these messages are too big for my Mac OS X's MDA. But apparently they're not too big for my ISP's MDA/MTA.

I searched on postdrop: warning: uid: File too large mac os x and found the answer here on ubuntuforums.org. Fortunately, postfix (which is what we have) has this parameter in the right place:

mini1:~ postman$ uname -a
Darwin mini1.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
mini1:~ collin$ grep message_size /etc/postfix/main.cf
message_size_limit = 10485760
mini1:~ collin$ 
So I'll just double it.
mini1:~ collin$ sudo vi /etc/postfix/main.cf663 mydomain_fallback = localhost
664 ### message_size_limit = 10485760  ... a bit too small
665 message_size_limit = 20971520
666 biff = no
667 mynetworks = 127.0.0.0/8
@
"/private/etc/postfix/main.cf" 669L, 26491C written
Then I guess I need to restart... Oh, but wait! On Snow Leopard postfix doesn't run continuously -- only when somebody tries to connect to port 25. So in the time it took me to think about this, fetchmail ran and connected to port 25, restarting postfix (Should have read my own posting first; it actually runs /usr/sbin/sendmail) -- which read the new message_size_limit, and accepted the messages, as I saw on the ISP's server afterwards:
$ ls -Ro /var/spool/mail/12/34/myuserid
/var/spool/mail/12/34/myuserid:
total 36
drwx------    2 myuserid   4096 Apr 30 11:01 cur
drwx------    2 myuserid  28672 Apr 30 11:01 new
drwx------    2 myuserid   4096 Apr 30 11:00 tmp

/var/spool/mail/12/34/myuserid/cur:
total 0

/var/spool/mail/12/34/myuserid/new:
total 0

/var/spool/mail/12/34/myuserid/tmp:
total 0
Yippee! Fortunately these weren't anything urgent or dire, but hopefully it'll be a long time before something like this happens again.

1 comment:

Unknown said...

I believe one could issue a

sudo postconf -ev message_size_limit = 20971520

instead of editing the file directly. This way you don't have to know the location of the main.cf file.