Release Notes of older versions: (The `lines' figures total .c, .h, .l, and .y files under version control.) fetchmail-5.9.14 (Fri Sep 6 05:03:25 EDT 2002), 21932 lines: * Sunil Shetye's patch to eliminate multiple bounces. * Moritz Jodeit 's patch for re-exec with no args. * Sunil Shetye's patch to solve the re-exec problem with relative files. * Cygwin portability patch (use ROOT_UID) from Jason Tishler. * Workaround for the CAPA error problem is documented in the FAQ. * Updated Polish, Danish, and Catalan translations. * Sunil Shetye's patch to improve CAPA error handling. * Sunil Shetye's patch to improve handling of unreadable boxes in POP3. * Berkeley port fix for Kerberos IV. There are 518 people on fetchmail-friends and 680 on fetchmail-announce. fetchmail-5.9.13 (Sat Jun 22 17:53:00 EDT 2002), 21791 lines: * Cygwin port fixes for socket.c. * Matthias Andree's patches to: (a) clean up xmalloc types, (b) improve distclean, (c) use sendmail -i in configure.in and dump the fallback configuration, (d) turn fallback off by default. * Scott Gifford's dotted-quad patch. * Updated Danish translation. * RPM now built with SSL and IPv6 support, reflecting what's in RH 7.3. * Sunil Shetye's patches to send CAPA during POP3 sessions and improve the PS_RETAINED behavior slightly. * Yann Droneaud's fix to eliminate a socket leak on error. There are 506 people on fetchmail-friends and 669 on fetchmail-announce. fetchmail-5.9.12 (Tue Jun 4 14:57:47 EDT 2002), 21669 lines: * Brian Grayson's patch enabling compilation under AIX 4.1. * Federico G. Schwindt's patch to support BSD ELF systems. * Fix to Sunil Shetye's attributes patch. * Scott Bronson's patch to reap zombies after an MDA core dump. * New Japanese translation file. * Catalan support integrated. * Danish support updated. * Nalin Dahyabai's patch to prevent a malicious server from crashing fetchmail on a 64-bit machine. * Cygwin port patch from Jason Tishler. * Sunil Shetye's fix for password shrouding. * Various Debian fixes from HMH. * Arun A. Tharuvai's patch to avoid speaking KPOP to an IMAP server. * Added Richard Harris's PopDel.py utility to the contrib directory. There are 505 people on fetchmail-friends and 670 on fetchmail-announce. fetchmail-5.9.11 (Mon Apr 1 17:09:13 EST 2002), 21597 lines: * Updated Turkish and Japanese translations. * Added warning about auth failures on the GMX server. * HMH's Debian 5.9.10 patches: 1. Fix minor typo in FAQ 2. Fix partial implementation of ESMTP auth, and some minor fetchmailconf stuff 3. Add proper error reporting to bad logfile creation. patch by Sunil Shetye 4. Fix incredible aggravating bug that caused dataloss risks if 4xx errors were returned by the MTA 5. Corrected version of the fix-timeouts-for-ssl and descriptor leaking patches from Sylvain Benoist Also fix outdated comments in driver.c 6. Sunil Shetye's patch to stop fetchmail from trying to fetch twice with IMAP 7. Stop stupid complaint about turning off SSL being illegal without SSL support. 8. Byrial Jensen i18n fixes * Sunil Shetye's attribute patch. * HMH's revised but untested SMTP authentication patch. * Added GPL license exemption to COPYING for linking with OpenSSL. There are 489 people on fetchmail-friends and 654 on fetchmail-announce. fetchmail-5.9.10 (Sun Mar 10 15:09:57 EST 2002), 21529 lines: * Security fix: don't trust the message count passed back by the server. There are 481 people on fetchmail-friends and 646 on fetchmail-announce. fetchmail-5.9.9 (Sat Mar 9 08:54:28 EST 2002), 21508 lines: * Renamed misnamed tr.po and da.po files * Jakub Ulanowski's patch to fix SSL fingerprint handling. * Matt Kraai's patch for supporting STLS over POP3. * French translation updated. * Debian fixes merged. * Added maildrop (MDA shipped with courier) as fallback after procmail and sendmail (thanks to Alexander Lazic ). * ESMTP AUTH support from Wojciech Polak . There are 481 people on fetchmail-friends and 646 on fetchmail-announce. fetchmail-5.9.8 (Thu Feb 14 23:47:31 EST 2002), 21358 lines: * Added de translation catalog; updated da and tr catalogs. * vsprintf underflow fixes by Sunil Shetye. * Added warning about IMS POP3 server. * Matthias Andree's fix for a longstanding SSL hang bug. * Fix yacc syntax bug when building with SSL. * Sunil Shetye's patch for idle timeout during poll. * Applied HMH's fix for the "message delimiter found in headers" code path (Debian bug #128672). There are 459 people on fetchmail-friends and 641 on fetchmail-announce. fetchmail-5.9.7 (Sat Feb 2 00:33:40 EST 2002), 21330 lines: * Minor fixes by HMH. * Properly guard some transaction reporting in the SSL code. * Updated German (de) po file. Added Turkish (tr) po file. * Expunge edge case fix by Sunil Shetye. * Fixes for some odd IMAP and SMTP edge cases by Sunil Shetye. * UIDL bug fix by Matthias Andree. * Use smtpaddress, if present, to set the return path on warning mail. * Tell parser to object when SSL keyboard is used with SSL not compiled. * GSSAPI and ODMR fixes by Tom Hughes. There are 456 people on fetchmail-friends and 635 on fetchmail-announce. fetchmail-5.9.6 (Fri Dec 14 04:03:50 EST 2001), 21247 lines: * OPIE bug fixes by Jun Miyoshi . * Documented known IDLE bug in the todo.html file. * Sunil Shetye's fix for a timeout/reconnect bug. * LMTP fix from Toshiro HIKITA . * The duplicate-killer doesn't try to operate if we can get an actual recipient address from the trace headers. There are 416 people on fetchmail-friends and 629 on fetchmail-announce. fetchmail-5.9.5 (Thu Nov 8 14:14:35 EST 2001), 21162 lines: * Changed the logging logic along lines suggested by Jan Klaverstijn, * fetchmailconf looks first in the directory it's running from to find fetchmail. * Make sure we get a success status correctly from open_smtp_sink() and open_bsmtp_sink(). * Matthias Andree's env.c patch to refuse service when QMAILINJECT is defined. * Immediately abort if a non-empty QMAILINJECT environment variable is found. If it is set and contains f or i, qmail-inject or qmail's sendmail `compatibility' wrapper will rewrite From: or Message-ID: headers, respectively. En passant, fix the bug that program_name was not filled in before used when the user's ID had no PW entry, leading to (null) or crash when printing the error message. Patch by Matthias Andree. * NextStep and OpenStep port patch from Eric Sunshine. * Block signals during SockConnect() so we don't get a socket descriptor leak if we're hit by an alarm signal during connect(2). * Set queryname even when server is inactive; avoids a core-dump bug in the fetchids code. There are 396 people on fetchmail-friends and 627 on fetchmail-announce. fetchmail-5.9.4 (Wed Oct 3 07:47:45 EDT 2001), 21104 lines: * Finished license cleanup, all licenses in the distribution are now officially GPL-compatible. * Added a length check to from64tobits() after receiving a warning that it might create buffer overflows. No exploitable overflows were found by a careful case-by-case audit, and at minimum an exploit would have required that the mailserver be subverted or DNS be spoofed to enable a man-in-the-middle attack. There are 371 people on fetchmail-friends and 623 on fetchmail-announce. % Mailing list cleaned fetchmail-5.9.3 (Sun Sep 30 12:08:52 EDT 2001), 21075 lines: * Fix configuration error in handling of long options. * Thomas Moestl's patch to use querynames in UID files. * Timeout to deal with long socket closes (Sunil Shetye). * Move from RSA MD5 code to Colin Plumb's public-domain implementation (BSD classic license eliminated) * Rewrite strcasecmp() (BSD classic license eliminated). * getopt_long is back for Solaris and HP-UX systems. * Updated Danish po file. * Re-enable explicit bounce message on bad address. There are 393 people on fetchmail-friends and 622 on fetchmail-announce. fetchmail-5.9.2 (Wed Sep 26 12:47:00 EDT 2001), 21118 lines: * Enable code to build on Solaris again (long options won't work). * Move Hesiod lookups to just before DNS lookups. * Make sure the SICHLD handler is called when we run detached. * Make kerberos5 in OpenBSD (Federico Schwindt ). * Added FAQ item X8 on why mail sometimes gets an extra ) appended. There are 407 people on fetchmail-friends and 624 on fetchmail-announce. fetchmail-5.9.1 (Mon Sep 24 19:01:57 EDT 2001), 21120 lines: * Make -D short option for --smtpaddress active again. * Typo fix for Polish translation. * Make sure IMAP capability checks are caseblind. * Make sure suffix checks on akalists are properly caseblinded. * All warning mail now has a generated date stamp. * getopt.c and getopt1.c removed due to license incompatibility with OpenSSL. * End of poll cycle is now logged. * Sanity check now rejects SSL option if SSL support is not compiled in (resolves Debian bug #109796). * HMH's fix for the LMTP localhost/foo problem. * Mike Warfield's fix for using a combined SSL cert and key in a single file. * DNS lookups moved to just before the mailserver socket open, so fetchmail now works OK even if started up without Internet access. * Switched from _( to GT_( as a gettext macro, in order to avoid a conflict with the SSL library. There are 404 people on fetchmail-friends and 624 on fetchmail-announce. fetchmail-5.9.0 (Sun Aug 12 23:52:16 EDT 2001), 21062 lines: * Blush...# characters now go to stdout, same place as the dots. * Matthias Andree's patch to correct parsing of spaces in quoted usernames. There are 371 people on fetchmail-friends and 610 on fetchmail-announce. fetchmail-5.8.17 (Tue Aug 7 20:05:36 EDT 2001), 21056 lines: * SECURITY FIX: Fixed a security hole that is exploitable if the attacker can either subvert the mailserver or redirect to a fake one using DNS spoofing. Bugtraq announcement to follow soon. Thanks to Salvatore Sanfilippo . * Eliminated second bounce on failed RCPT TO address. * Always use fetchmail host's FQDN to identify the daemon when sending bounce messages. * Embarrassing bug of the month -- somehow, `skip' wasn't being interpreted! There are 367 people on fetchmail-friends and 608 on fetchmail-announce. fetchmail-5.8.16 (Fri Aug 3 18:55:54 EDT 2001), 21093 lines: * Handle ! in RFC2821 Return-Path addresses properly. * Better handling of BAD and NO responses to FETCH (thank Justin Guyett). * Fixed *yet another* build error due to breakage in the i18n code. There are 368 people on fetchmail-friends and 611 on fetchmail-announce. fetchmail-5.8.15 (Tue Jul 31 02:07:03 EDT 2001), 21075 lines: * Refuse mail that has no good addresses and can't be sent to postmaster. * Restore behavior of discarding mail on 550 (Debian bug #105237). * John Summerfield updated getfetchmail. * Cleanup patches by HMH. * Lock-file-name bug reported by Scott Johnson. * Updated Danish translation by Byrial Jensen. * Updated French translation by Thierry Vignaud. * Man page bugs pointed out by Andrew Benham. * POP3 end of session RSET on keep removed. * In IMAP, handle BAD and NO responses to FETCH gracefully. * Parse "no {syslog|invisible|showdots}" properly. * Change AC_DEFINE to AC_DEFINE_UNQUOTED appropriately in configure.in (Debian bug #104484). * Fixed bug in fetchmailconf plugin/plugout code (Debian bug #105987). There are 369 people on fetchmail-friends and 612 on fetchmail-announce. fetchmail-5.8.14 (Thu Jul 12 03:19:57 EDT 2001), 21058 lines: * Corrected Rob Braun's remote-build change, it broke the build with NLS. * Found (and killed) a subtle SMTP protocol error that was probably lurking behind a lot of the bug reports related to bounce mail, thanks to Quoc Luu. (Only manifested when the MTA rejected mail due to a bad RCPT TO address.) There are 357 people on fetchmail-friends and 607 on fetchmail-announce. fetchmail-5.8.13 (Tue Jul 10 17:00:50 EDT 2001), 21057 lines: * Correction for backslash-handling patch in rfc822.c. * Fix for Debian bug Bug#1038222: fetchmail conf fails to write file after configuration; move .fetchmailrc to .fetchmailrc.bak before overwriting. * Discard Return-Path headers consisting of a single @. * Make fetchmailconf dump plugin and plugout options properly. * Rob Braun's changes for building fetchmail outside its source directory There are 357 people on fetchmail-friends and 607 on fetchmail-announce. fetchmail-5.8.12 (Fri Jul 6 00:56:02 EDT 2001), 21052 lines: * Don't depend on having snprintf available. * Bug fix for envskip. * ODMR finally seems to be working. * Handle multiple backslashes within RFC822 address strings correctly. * Don't exit on a failure to DNS-resolve a mailserver name, just make it inactive. Exit only if all lookups fail. * Restore code to deal with SMTP error responses at RCPT TO time, but without issuing an RSET. This is intended to fix obscure bugs that show up in recent Postfix releases and sendmail configurations that delay antispam checks on the MAIL FROM line until RCPT TO time. There are 353 people on fetchmail-friends and 608 on fetchmail-announce. fetchmail-5.8.11 (Sun Jul 1 21:39:26 EDT 2001), 20973 lines: * Signal-processing fix for Debian bug #102711. * More ODMR patches from Matt Armstrong. There are 353 people on fetchmail-friends and 607 on fetchmail-announce. fetchmail-5.8.10 (Mon Jun 25 17:04:08 EDT 2001), 20922 lines: * More fixes for the new message-marking code from Thomas Moestl. * Fixes for ODMR code from Matt Armstrong. There are 355 people on fetchmail-friends and 603 on fetchmail-announce. fetchmail-5.8.9 (Sun Jun 24 20:30:49 EDT 2001), 20922 lines: * HMH's snprintf/strncat cleanup patch. * Fixes for Debian bugs #101792, #101950. * Updated Danish translation by Byrial Jensen. * ODMR fixes from Matt Armstrong . * The smtphost option has been split. It is no longer overloaded to set the list of domains to be queried in ETRN and ODMR modes. Instead, use the `fetchdomains' option. There are 353 people on fetchmail-friends and 599 on fetchmail-announce. fetchmail-5.8.8 (Wed Jun 20 17:22:26 EDT 2001), 20782 lines: * Fix bug that prevented messages from being marked oversized unless -v was on. * Byrial Jensen made the tracepoll information RFC822-conformant. * Reorder code to avoid accessing line buffers after they have been freed. * Steven Krings's patch to deal with over-long header lines. * Fix for Debian bug #101500. * Updated Danish translation by Byrial Jensen. * Chris Maio's patch for POP3 with BSMTP. * Patch from HMH resolves Debian bug #101530. There are 353 people on fetchmail-friends and 594 on fetchmail-announce. fetchmail-5.8.7 (Sun Jun 17 12:02:17 EDT 2001), 20749 lines: * Make fetchmailconf work properly again by fixing tracepolls mismatch. * HMH's fix for Debian bug #98127. * driver.c refactoring in preparation for streaming mode. There are 348 people on fetchmail-friends and 594 on fetchmail-announce. fetchmail-5.8.6 (Tue Jun 12 08:16:54 EDT 2001), 20676 lines: * Reject candidate headers for the MAIL FROM address that have \n in them. * Add capability to insert poll trace data in the Received line. * HMH's patch to prevent buffer overflow due to long headers. Addresses Debian bug #100394. * Brendan Kehoe's patch to avoid doing DNS lookups on skip entries. There are 347 people on fetchmail-friends and 592 on fetchmail-announce. fetchmail-5.8.5 (Tue May 29 20:01:39 EDT 2001), 20650 lines: * Interface option fix from Alexander Kourakos. * Fixes for i18n glitches and new Danish translation from Byrial Jensen. * Attempted fix for Harry McGavran's problems with the Kerberos V build. * Added fetchmailnochda.pl to the contrib directory. * Sunil Shetye's patches for the seen count on IMAP and auto protocol. There are 337 people on fetchmail-friends and 583 on fetchmail-announce. fetchmail-5.8.4 (Mon May 21 15:08:03 EDT 2001), 20636 lines: * SSL certificate options from Thomas Moestl . * Frantisek Brabec's patch for better UIDL error recovery. * Another zombie-leak patch from HMH. * Jorg de Jong's patch attempts to handle spaces in the ID part of UIDLs. * Eliminate use of -C in Makefile. There are 334 people on fetchmail-friends and 583 on fetchmail-announce. fetchmail-5.8.3 (Sat May 12 04:07:12 EDT 2001), 20502 lines: * The `localhost' special case of `via' is gone. Use `plugin %h' for talking to ssh instead. * Prevent POP3 code from authenticating multiple times on success. * Fixed IMAP password shrouding. * GCC warning cleanups from ahaas@neosoft.com. * Plug another hole that was letting zombies through. * SA_RESTART portability fix for SunOS. * Ignore Sender and Resent-Sender headers unless they contain @. There are 333 people on fetchmail-friends and 582 on fetchmail-announce. fetchmail-5.8.2 (Tue May 8 17:07:53 EDT 2001), 20481 lines: * HH's patches fixing Debian bug #90966 and addressing Debian bug #92554. * GSSAPI portability patch by Peter Fales. * Updated cs.po by Jiri Pavlovsky. * Michael Kjorling's patch to add server ID to authentication success/failure bugmail. * Kerberos build patch by HH. * Don't cough and die from failure to resolve a skipped host. Resolves Debian bug #92530 * Do aka suffix match even if DNS checking is enabled (Johannes Stille's bug). * SIGCHLD handler now sets SA_RESTART explicitly in order to avoid zombies from interrupted system calls. Debian bug #95659. There are 333 people on fetchmail-friends and 582 on fetchmail-announce. fetchmail-5.8.1 (Tue Apr 10 09:32:04 EDT 2001), 20511 lines: * Nalin Dahyabai's password parse and authentication fixes. * Vitezslav Samel's patch to Makefile.in to make parallel makes work. There are 314 people on fetchmail-friends and 569 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.8.0 (Mon Apr 2 15:18:33 EDT 2001), 20459 lines: * Documentation update for gold release. There are 312 people on fetchmail-friends and 568 on fetchmail-announce. fetchmail-5.7.7 (Wed Mar 28 20:24:48 EST 2001), 20459 lines: * More configure fixes -- include missing stub script in the distribution. There are 312 people on fetchmail-friends and 566 on fetchmail-announce. fetchmail-5.7.6 (Thu Mar 22 16:22:48 EST 2001), 20456 lines: * Fix POP2 and POP3 password shrouding. * Don't remove UIDL scratchlist on query completion (Frantisek Brabec's bug). * IMAP: don't just quit if GSSAPI or Kerberos IV fail, but try other methods. * Document the fact the IDLE and multiple folders don't play well together. Closes Debian bug#89908. There are 305 people on fetchmail-friends and 564 on fetchmail-announce. fetchmail-5.7.5 (Sat Mar 17 23:24:41 EST 2001), 20440 lines: * Nalin Dahyabhai's patch to make IPv6 build on older systems. * Restrict shrouding to just the password send so it won't leak info. * Move an #ifdef INET6_ENABLE to deal with libc5 headers. * Only DNS-probe entries that are active on this run. * Fix `nospambounce' recognition. * Updated French translation. * Yoshihiko SARUMARU's patch to keep kanji out of Received headers. * Include aclocal.m4 in the tarball (solves some build problems). * Added HMH's patch to support configuring a specific fallback MUA. There are 301 people on fetchmail-friends and 564 on fetchmail-announce. fetchmail-5.7.4 (Mon Mar 12 00:02:23 EST 2001), 20323 lines: * SECURITY FIX: unsecure tempfile creation bug in fetchmailconf, thanks to Colin Phipps for pointing this out. * Configure cleanup from HMH. * Documentation refresh. There are 295 people on fetchmail-friends and 563 on fetchmail-announce. fetchmail-5.7.3 (Sun Mar 11 17:01:56 EST 2001), 20323 lines: * Incorporate SA_LEN patch from Red Hat. * HMH's "no spambounce" patch for fetchmailconf. * John Bartlett's patch to make the driver code more tolerant of flaky POP3 servers (better handling of timeout at session start). * Make `fetchmail --configdump' work when there's a defaults entry. * Incorporated HMH's build fixes. * Added FALLBACK_MDA; fetchmail now looks for procmail or sendmail at build time and uses it if it can't open port 25 for local delivery. * Incorporated Red Hat fixes for GSSAPI, configure.in. * Bailing out on read-only messages breaks fetchmail -c. To avoid this, use EXAMINE rather than SELECT in that case. There are 295 people on fetchmail-friends and 563 on fetchmail-announce. fetchmail-5.7.2 (Sun Mar 4 19:05:57 EST 2001), 20167 lines: * NLS build fixed under Linux -- thanks to Nicolás Lichtmaier. Now builds with NLS by default, unavoidable side effect of fix. * Various cleanups and minor bugfixes in OTP support. * Corrected header error in SSL support. * Updated Spanish translation by Javier Kohen. * Incorporated Red Hat's 5.5.0 Kerberos V patch. * Incorporated Henrique Holschuh's fetchmailconf warning on local names with @. There are 290 people on fetchmail-friends and 563 on fetchmail-announce. fetchmail-5.7.1 (Sun Mar 4 00:30:04 EST 2001), 20167 lines: * Note: NLS build ability is broken! * FreeBSD port fixes. * Man page polished and updated. * Added --sslproto option from Peter Hedwig. * Fix KPOP support, which got broken in 5.6.8. Closes Debian bug #88288. There are 289 people on fetchmail-friends and 562 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.7.0 (Thu Mar 1 18:00:08 EST 2001), 20131 lines: * Updated Danish translation from Byrial Jensen. * Fixed bug in NTLM support. Separately, "auth ntlm" now works. * Imail server and vircom NTLM account added to test list. * Don't require Tkinter to read --configdump output. There are 283 people on fetchmail-friends and 562 on fetchmail-announce. fetchmail-5.6.8 (Thu Feb 22 02:57:31 EST 2001), 20110 lines: * `preauth' option changed back to `auth' * IMAP code now bails out if the server forces the mailbox read-only. * Fixed a core dump in Dave Zarzycki's new plugin code. * POP3 latency optimization: only do CAPA and set authentication capabilities from it once at start of run. There are 276 people on fetchmail-friends and 563 on fetchmail-announce. fetchmail-5.6.7 (Mon Feb 19 12:31:03 EST 2001), 20082 lines: * Fixed brown-paper-bag password bug (only showed up if it was necessary to prompt for a password). This fixes Debian bug #86350: Fetchmail doesn't ask for password. * In POP3, query for AUTH methods a la RFC2449. There are 276 people on fetchmail-friends and 561 on fetchmail-announce. fetchmail-5.6.6 (Thu Feb 15 20:43:47 EST 2001), 20083 lines: * Fixed locale setting; this should make i18n actually work. * Resolved Debian bug #85938: fetchmail asks for a password when using ETRN. * Resolved Debian bugs #85853 and #86047. POP3: Don't issue AUTH between USER and PASS, some servers choke on this. * Resolved Debian bug #85772 re Kerberos compilation. * Resolved Debian bug #85961: Wrong error message when local connection fails. * Serious pre-release regression testing begins. This version tested against 18 different POP3 and IMAP servers. There are 274 people on fetchmail-friends and 562 on fetchmail-announce. fetchmail-5.6.5 (Mon Feb 12 04:33:39 EST 2001), 20062 lines: * CRAM-MD5 authentication of IMAP and POP3 is working. Tested against IMAP4rev1 2000.287 and v2000.70 POP3 gateway at neo.netnea.com. * Full support for POP3 AUTH (RFC1734) with KERBEROS_IV, GSSAPI, OTP. This code has been completely refactored. In the process, it is possible I have broken GSSAPI, KERBEROS, and OPIE; this needs to be tested. The old IMAP-LOGIN, IMAP-GSS, and IMAP-K4 protocols are gone; fetchmail now uses these automatically when it detects the right capabilities. To prevent having fetchmail look for a password, specify a "preauth" option other than "password". * Noted that Debian bugs #78963, #63064, #81312, #78796, #78363, #78149, #68627, #67559, #63308, #63088, #71428 are fixed. * Resolved Debian bug #65505: fetchmail now returns a nonzero exit status when interrupted before a successful fetch. * configure --ssl works correctly again. There are 273 people on fetchmail-friends and 564 on fetchmail-announce. fetchmail-5.6.4 (Sun Feb 11 00:43:14 EST 2001), 20085 lines: * ODMR port fix for AIX. * Dave Zarzycki's fix for former FAQ item F5 (%h and %p not being expanded). * Dave Zarzycki's fix to reap zombie processes when nodetach is set. * Attempted fix for CRAM-MD5 problem with IMAP 2000. There are 276 people on fetchmail-friends and 564 on fetchmail-announce. fetchmail-5.6.3 (Wed Feb 7 10:56:21 EST 2001), 19901 lines: * VPATH build fixed (thanks to Harry McGavran). * Danny O'Brien's patch allowing preauth and idle to work together. * Fixed a bug in configure.in that was resulting in KERBEROS_IV being set when it should not have been (several reports). * FAQ change: mailing lists have moved to MailMan. * Deal with brain-dead netmind mail missing the RFC822 delimiter line. * ODMR (RFC 2645) support -- untested and probably buggy! There are 276 people on fetchmail-friends and 558 on fetchmail-announce. % Lists moved to MailMan fetchmail-5.6.2 (Fri Jan 5 16:45:47 EST 2001), 19744 lines: * Dave Bodenstab's fix for the lockfile re-exec problem. * Fixes for `principal' handling in fetchmailconf. * Make --with-included-gettext work again (Thanks to Albert Chin-A-Young). There are 287 people on fetchmail-friends and 567 on fetchmail-announce. fetchmail-5.6.1 (Mon Dec 11 23:11:59 EST 2000), 19718 lines: * More on ETRN in the FAQ. * Horst Klokow's patch to make interface check the remote IP address. * Roger Luethi's patch to write the UIDL file when you hit a fetchlimit. * Don Beusee's patch to eliminate wedging on authentication failure. Instead, fetchmail will now notify the user on the third failure, then continue polling silently until service is restored (at which time the user will get a notification). * Samuel Leo's patch to add LMTP capability to the smtphost option. * Fix UIDL handling on skip entries. * Add Don Beusee's `spambounce' option (default off). There are 281 people on fetchmail-friends and 563 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.6.0 (Sun Nov 26 22:11:09 EST 2000), 19625 lines: * Updated FAQ on IPv6 operation. * Enabled showdots to work from the command line. * Fixed a bug in fetchmailconf's handling of the `principal' option. * smtpname processing fixed. There are 288 people on fetchmail-friends and 575 on fetchmail-announce. fetchmail-5.5.6 (Sat Nov 11 14:22:24 EST 2000), 19563 lines: * Chip Salzenberg's patch to prevent wildcards in Common Names from causing spurious error messages (resolved Debian bug #75011). * Added --showdots option by Thomas Jarosch . * Added --principal option from R. Lindsay Todd" . * Spanish-language update from Javier Kohen. * Nalin Dahyabai's fix to handle untagged responses during imap-gss authentication. * Koyama Mituru's patch for improved spam handling under qmail; checks for a 553 reponse to RCPT TO. * Added FAQ item F5 of %h and %p interpolation from Matthias Andree. There are 279 people on fetchmail-friends and 568 on fetchmail-announce. fetchmail-5.5.5 (Tue Oct 17 17:50:46 EDT 2000), 19523 lines: * Killed a nasty segfault due to double-freeing of the header block. * Updated Danish internationalization by Byrial Jensen. * Added FAQ item X7 on attachment hangs. There are 277 people on fetchmail-friends and 558 on fetchmail-announce. fetchmail-5.5.4 (Sun Oct 8 10:57:37 EDT 2000), 19518 lines: * Fall back on the computed queryname if we need the DNS name of a a host and can't get it. Resolves Debian bug #69199. * Andrej Borsenkow's fix for configuration with new SOCKS. * Pavel Roskin's fix to build the RPM without libcrypto (Red Hat changed the library name to libk5crypto in 6.2). * Peter Backes's sm-hybrid patch added to contrib; more FAQ item T1 changes. * Emiliano's patch to make dropdelivered and envelope interact properly. * In fetchmailconf, always reset the port number when changing protocols. * Patrick Bihan-Faou's changes to use sysctl() for interface checking so fetchmail doesn't have to be suid kmem. There are 273 people on fetchmail-friends and 557 on fetchmail-announce. fetchmail-5.5.3 (Tue Sep 26 17:56:32 EDT 2000), 19278 lines: * Added skip size reporting as suggested by Franck Pommereau. * Don't terminate on failed DNS lookup of host, go to next entry. * Danish localization support, courtesy of Byrial Jensen. * Fix reference to freed message header block (thanks to Andrew Morton) There are 280 people on fetchmail-friends and 557 on fetchmail-announce. fetchmail-5.5.2 (Thu Sep 7 23:00:24 EDT 2000), 19243 lines: * Horst von Brand's security and specfile patches. * Major changes to FAQ item T1. * Minor correction to FAQ item K3 by Malte Kiesel. * Added to FAQ R1, on enabling sendmail in RH 6.9. * Resolved Debian bugs #66110, #70862. There are 291 people on fetchmail-friends and 553 on fetchmail-announce. fetchmail-5.5.1 (Sun Aug 20 23:43:03 EDT 2000), 19241 lines: * Fix a finger error in the dot-termination fix for 5.5.0. * Javier Kohen's update for es.po. * Jiri Pavlovsky's cs.po update. * Added to FAQ item on K3 a recipe using the new plugin %h option. * Fixed a nasty typo in FAQ item T1 -- the old version didn't generate correct Delivered-To hacks. Thanks to Peter 'Rattacresh' Backes for spotting this. There are 291 people on fetchmail-friends and 537 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.5.0 (Sat Aug 12 12:47:21 EDT 2000), 19241 lines: * Fix pop3.c to avoid trouble with spurious dot terminations. There are 293 people on fetchmail-friends and 541 on fetchmail-announce. fetchmail-5.4.5 (Mon Aug 7 03:25:23 EDT 2000), 19238 lines: * Dave Zarzycki's patch to enhance plugins, adding %h and %p. * Vitezslav Samel's patch to fix a Y2K bug in lsmgen.sh. * Fixed a fatal typo in fetchmailconf. * Resolved Debian bug #67559. It was a misdiagnosis. * Resolved Debian bugs #62115, #61983, #68627, #61983. * Return PS_NOMAIL when no server entries are active. * pt_BR Update from George Godoy. * David Taylor's fixes for the UIDL code. There are 290 people on fetchmail-friends and 538 on fetchmail-announce. fetchmail-5.4.4 (Sun Jul 23 15:56:16 EDT 2000), 19172 lines: * Guenther H. Leber's fix to show expunge parameters for POP3 in fetchmail -V. * Richard Gooch's fixes to use sigaction(2) in sink.c and daemon.c * Petr Kristof's fix for sslcert configuration in fetchmailconf. * Jiri Pavolvsky's updated cs.po. * Cyrille Lefevre 's patch for IPV6, resolving FreeBSD Problem Report ports/19996. * Added John Summerfield's pop2test to contrib. * In the fetchmail RPM spec, stop compressing the man pages. Turns out rpm-4.0 does a find(1) over the stuff to be installed and gzip(1)s the manpages it finds. This gets messed up by the explicit symlink among manpages in the spec file, which rpm redoes and gets all wrong. * Added Antoine Beaupre's dropdelivered option. There are 292 people on fetchmail-friends and 544 on fetchmail-announce. fetchmail-5.4.3 (Sun Jul 2 14:24:28 EDT 2000), 19080 lines: * Fixed Debian bug #63667, fetchmailconf: doesn't write .fetchmailrc properly. * RFC2177 IDLE should now be done even when there are no messages. * Joerg Plate's SSL typo fix. * Try to limit the damage bad UIDL handling can do by refusing to mess with the UIDL state if there has been an error. * Better isafile test -- bizarrely enough, Linux ptys have S_ISBLK. * Includes for SSL now use the openssl directory, which has been standard since OpenSSL 0.9.3. If this breaks your build, upgrade your SSL. There are 286 people on fetchmail-friends and 535 on fetchmail-announce. fetchmail-5.4.2 (Wed Jun 28 07:21:04 EDT 2000), 19069 lines: * Julian Haight's fix for his 5.4.1 patch, which created a potential memory leak. * Minor bug fixes for SSL by Wolfram Kleff. * Be more clever about when we suppress progress dots. There are 290 people on fetchmail-friends and 534 on fetchmail-announce. fetchmail-5.4.1 (Tue Jun 6 23:24:22 EDT 2000), 19051 lines: * Julian Haight added support for arbitrary SMTP RCPT TO: control using: --smtpname user@host. Should be useful for sites running multiple virtual domains without local users, such as a cyrus IMAP installation. * Julian Haight added hostaddr reporting in the "Received: from" clause. * NT material added to FAQ item O9. * Commented out the socket-shutdown code that was causing mystery hangs under Red Hat 6.2. We can live with a socket leak (assuming it comes back) nmore easily than we can live with fetchmail getting wedged in place. * Werner Almesberger sent minor bug fixes for BSMTP. There are 290 people on fetchmail-friends and 526 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.4.0 (Sat May 13 18:24:21 EDT 2000), 18977 lines: * Matthias Scheler's fix for SSL under IPV6 * Added FAQ material on SSL's "RPNG not seeded" message and on ssh tunnelling. * Resolved Debian bug #63667. There are 287 people on fetchmail-friends and 516 on fetchmail-announce. fetchmail-5.3.8 (Fri Apr 21 03:47:14 EDT 2000), 18977 lines: * Fixed brown-paper-bag bugs involving rcfile name initialization. * In fetchmailconf, don't permit editing of a blank server entry. There are 288 people on fetchmail-friends and 513 on fetchmail-announce. fetchmail-5.3.7 (Sun Apr 16 03:46:13 EDT 2000), 18975 lines: * Updated and corrected version of contrib/domino. * Galician translation added, courtesy of Jesus Bravo Alvarez . * Spanish translation updated, courtesy of Javier Kohen. * Removed an unnecessary Kerberos check that seemed to be causing lossage. * FETCHMAILHOME environment variable introduced to optionally override the normal $HOME location of fetchmail's rc, id, and pid files. * Fixed a bug in the SEARCH UNSEEN code that resulted in only half the available messages getting fetched each run. There are 290 people on fetchmail-friends and 511 on fetchmail-announce. fetchmail-5.3.6 (Sat Apr 8 03:54:04 EDT 2000), 18947 lines: * Autoprobe now recognizes Domino IMAP servers and warns the user. * Add a needed pclose(3) call in interface.c (thank Matthias Andree). * In IMAP, use SEARCH UNSEEN instead of flag queries to count and identify unseen messages (thanks to Alexis Lê-Quôc ). * Added contrib/domino, a workaround for the Domino attachment problem. * Added contrib/toprocmail, which demonstrates how a plugin can display selected mail headers. * French internationalization update from Guy Brand. * IMAP PREAUTH fix from Todd Sabin . * Fetchmail now runs on BeOS, thanks to David Reid . There are 288 people on fetchmail-friends and 511 on fetchmail-announce. fetchmail-5.3.5 (Wed Mar 29 18:17:19 EST 2000), 18840 lines: * Back out the InterChange workaround, it breaks operation with M$ Exchange. * Update for cs.po from Jiri Pavlovsky. * Prevent spurious hostname matches in fetchmailconf. * Ultrix 4.5 port patches from Simon Burge . * Add bug warning to FAQ about Lotus Domino. * Suppress monitor check just after being woken by signal. There are 293 people on fetchmail-friends and 511 on fetchmail-announce. fetchmail-5.3.4 (Wed Mar 22 15:55:51 EST 2000), 18819 lines: * Added FAQ item on performance under load. * Fix Debian bug #60202 (segfaults when given command line arguments). This only applied to `antispam', as it turned out. * Work around InterChange's bug with attachments as suggested by paul666@mailandnews.com. * Enable checks on multiple folders. There are 294 people on fetchmail-friends and 504 on fetchmail-announce. fetchmail-5.3.3 (Mon Mar 13 16:34:29 EST 2000), 18763 lines: * Fixed reporting of listener timeouts. * Configure now supports SOCKS5, thanks to Alan Schmitt. * Fix a minor bug in preauthenticated IMAP, thanks to Urban Boquist . * Try to support suffix matching in aka lists. There are 285 people on fetchmail-friends and 504 on fetchmail-announce. fetchmail-5.3.2 (Mon Mar 6 21:41:23 EST 2000), 18695 lines: * Added experimental support for RFC2177 IDLE command extension of IMAP. * Updated fr.po. * Fixed a bug in fetchmailconf's handling of envelope skip prefixes. * Don't nuke .fetchids when authorization failure keeps us from getting URLs. * Added FAQ item X6 on dropped and mangled attachments, thanks to Rob Funk. * Teach configure.in to link the RSA reference library if available. * Disable saving of Message-IDs into UIDL lists. There are 290 people on fetchmail-friends and 500 on fetchmail-announce. fetchmail-5.3.1 (Sun Mar 5 23:02:42 EST 2000), 18648 lines: * Use remotename@hostname for MAIL FROM if we have not been able to deduce a Return-Path. * Fix the attempted fix for Joop Susan's ENOTCONN bug. * Added FAQ material on a Microsoft Exchange bug, on forwarding to a different host than the one fetchmail runs on, and on using ssh for a secure passwordless connection. Removed the FAQ entry on popclient. * Jun-ichiro itojun Hagino sent a fix for IPv6. * Fix Red Hat 6.2beta bug 9982: fetchmailconf now automatically pups up an edit panel whenever a new user or site is created. * Fix Red Hat 6.2beta bug 9987: Deal gracefully with the possibility that we might be running as a subprocess with stdin not attached to a tty, and thus unable to query for a password. * Resolved all current Debian bugs classed `important'; #43139, #44744, #44760, #44774, #43140, #50990. * Resolved Debian ordinary bugs #17769, #34383, #38303, #39732, #51674, #53386, #53732, #58553. * Resolved Debian wishlist bug #26630. * Resolution of #59281 (still loops on Ctrl-C) involved a small change in behavior; SIGPIPE now terminates the current poll cycle. There are 289 people on fetchmail-friends and 502 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.3.0 (Tue Feb 22 08:53:31 PST 2000), 18618 lines: * Horst von Brand's improvements to the specfile generator. * Joop Susan's improvements in error status reporting. * Only emit progress dots when stdout is connected to a tty. * Fix for GNATS bug 16468, "INET6 breaks fetchmail preconnect" by Munechika SUMIKAWA . * Lexical analyzer now understands that -?[0-9]*[a-zA-Z] is not a number. There are 293 people on fetchmail-friends and 498 on fetchmail-announce. fetchmail-5.2.8 (Mon Feb 14 19:16:46 EST 2000), 18571 lines: * Attempted fix for Joop Susan's ENOTCONN bug. * Fix for NO response during SIZE fetches for M$ Exchange IMAP server. * Thomas Zajic sent a change that copes with GMX X-UIDLs. * Fix fetchmailconf's handling of ssl attributes when SSL is not configured. * Handle IMAP folder names with embedded spaces. * cs.po update from Jiri Pavlovsky. * Make -d0 -v work when -a and -k are on. * UID handling has been broken since 5.2.5. This version should work. Thanks to Bruce Hauge for testing. There are 287 people on fetchmail-friends and 504 on fetchmail-announce. fetchmail-5.2.7 (Sun Feb 6 20:45:41 EST 2000), 18517 lines: * Updated FAQ. * Updated es.po. * Disable mail notification on server unreachable. This turned out to be a very bad idea. There are 276 people on fetchmail-friends and 493 on fetchmail-announce. fetchmail-5.2.6 (Sat Feb 5 00:01:53 EST 2000), 18517 lines: * Close down sockets using shutdown(2) and discarding read data until we get a TCP FIN. With any luck this will squash our socket leak. * Open the lockfile with O_SYNC, so we know the file has been written before close (sigh...NFS might still betray us...). * Added Martijn Lievaart's sendmail hacks for multidrop to the contrib directory. * Fix bug in processing of plugout option. * AIX port tweak from Dave Marquardt . * Add support for `ssh' preauth type to suppress password prompts at startup. * Support for RFC2449 extended POP3 responses [IN-USE] and [LOGIN-DELAY]. * Log bounced messages via syslog (Debian bug #50184). * Add scrollbars on fetchmailconf help windows (Debian bug #51770). * Notify user by mail when pop server nonexistent (Debian bug #47143). * Debian buglist cleanup. There are 274 people on fetchmail-friends and 494 on fetchmail-announce. fetchmail-5.2.5 (Mon Jan 31 02:02:48 EST 2000), 18445 lines: * Fixed bugs in BSMTP generation reported by Jaap Lutz. * Make fetchmailconf better at handling backslashes in usernames and passwords. * Jochen Hayek's patch to handle spaces in UID usernames. There are 279 people on fetchmail-friends and 497 on fetchmail-announce. fetchmail-5.2.4 (Mon Jan 17 02:37:58 EST 2000), 18445 lines: * Fix bug introduced in 5.2.2 that stopped --syslog from working. * Update for es.po, fr.po, cs.po. * Message-string macros eliminated from driver.c so gettext can see them. * Various useful to version reporting & configure.in fixes by Chip Salzenberg. * Bernhard Rosenkraenzer's fix for broken Kerberos V configuration. * Make --logfile work in foreground. There are 282 people on fetchmail-friends and 489 on fetchmail-announce. fetchmail-5.2.3 (Tue Jan 4 01:56:11 EST 2000), 18421 lines: * Ken Estes's patch to check for unreachable UIDL file due to bad NFS mount. * Jorge Godoy's replacement pt_BR.po and various minor translation fixes. * Javier Kohen's replacement for es.po. * Munechika SUMIKAWA's patch to make IPv6 version build when POP2 is enabled. * Russian translation removed; it was badly garbled. * Added Rick van Rein's fetchmaildistrib script to the contrib directory. * Gunther Leber's cleanup patches. * Note to translators: The bodies of the login-error and timeout-error form letters have been changed in driver.c. There are 280 people on fetchmail-friends and 483 on fetchmail-announce. fetchmail-5.2.2 (Sun Dec 26 09:31:07 EST 1999), 18365 lines: * Arrange for fetchmail to restart itself quietly when the rc file is touched. * Improvements to IPv6 code from Jun-ichiro itojun Hagino . * Drastic simplification of UIDL code, suggested by Ken Estes. There are 280 people on fetchmail-friends and 482 on fetchmail-announce. fetchmail-5.2.1 (Sun Dec 19 23:08:53 EST 1999), 18330 lines: * Added FAQ item R10 on timeouts during messages. * Fixed indentation problem in fetchmailconf. * Federico Schwindt's patch to fix broken SSL configuration. * Fixes to use fetchmail with IPv6 enabled on glibc without inet6-apps installed; thanks to Arkadiusz Mis'kiewicz. * Interpret IMAP PREAUTH tag correctly (from Joerg Dorchain). * Upgraded to version 0.21 of smbutil.c. FAQ item S2 now documents how to set a domain name. There are 282 people on fetchmail-friends and 479 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.2.0 (Tue Nov 30 14:24:25 EST 1999), 18302 lines: * fetchmailconf now complains and exits gracefully when not run under X. * configure.in port patch for OpenBSD from Federico G. Schwindt. * configure.in port patch for Heimdal from Leif Johansson * configure.in fix for OpenSSL configuration problems. * Teach fetchmail about the buggy FTGate server. * cs.po update from Jiri Pavlovsky. * Edmund Grimley's patch to uid.c to fix the `uidl keep expunge 1' case. * Abort startup if the configuration directory is nonexistent; this probably means an NFS mount of user's home directory failed. * Added warnings and FAQ items about the MailMax server, which doesn't download attachments. There are 278 people on fetchmail-friends and 472 on fetchmail-announce. fetchmail-5.1.4 (Sun Nov 7 17:40:21 EST 1999), 18302 lines: * Mike Pearce's patch to fix a compile-time error recently introduced into the socket code when HAVE_INET_ATON is off. * Added warning to fetchmailconf autoprobe about a flaky Netscape IMAP server. * Disable duplicate suppression when there is only one recognized recipient. There are 276 people on fetchmail-friends and 460 on fetchmail-announce. fetchmail-5.1.3 (Sun Oct 31 12:19:52 EST 1999), 18290 lines: * Grant Edwards's patch to correct NTLM behavior. * James Brister's fix for IP-address hostnames. * Updated config.guess and config.sub. * Backed out the 5.1.0 change to quote usernames with embedded spaces. It actually breaks things. * Added to fetchmailconf a warning about Imail IMAP servers. * SSL patches by Michael Warfield merged in. Distribution still contains no crypto code. There are 274 people on fetchmail-friends and 456 on fetchmail-announce. fetchmail-5.1.2 (Thu Oct 7 09:46:07 EDT 1999), 17906 lines: * Joe Loughry sent a patch to handle multihomed machines. * Changed mimedecode default to `off'; it seems that doing RFC2047 decoding on headers throws away information that the MUA may need to see. * Change Received header parsing to no longer demand an embedded dot in a mailhost address. * Incorporated Grant Edwards's ntlmlib-0.2 with fixes for byte-order problems. There are 264 people on fetchmail-friends and 451 on fetchmail-announce. fetchmail-5.1.1 (Wed Sep 29 11:52:06 EDT 1999), 17827 lines: * Added workaround, fetchmailconf warning, and FAQ about Novell GroupWise. * Consistently show dummy arguments on manual page. * Fix lexer to permit `antispam -1'. * John Cigas's delay patch to avoid a timing problem with plugins. * During IMAP authentication, canonicalize both name and password. * -A has been retired (goes with authenticate -> preauthenticate change). * Check for both fetchall and keep on in daemon mode; reject this. * Fixed a logfile bug dumping IMAP-LOGIN and IMAP-CRAM-MD5. * Tolerate a tunable constant number of authorization failures before complaining and wedging. There are 264 people on fetchmail-friends and 447 on fetchmail-announce. ------------------------------------------------------------------------------ fetchmail-5.1.0 (Wed Sep 22 01:27:42 EDT 1999), 17767 lines: * CRAM-MD5 code now doublequotes usernames with embedded spaces. This will probably fail (the RFCs don't support quoting) but it's better than nothing and works with at least one server. * Federico G. Schwindt's fix for NetBSD/OpenBSD --with-kerberos. * auth keyword and option changed to preauth. * Correct the exit value when .fetchmailrc permissions are wrong. * getmail/gotmail scripts by Thomas Nesges added to contrib. * Guenther H. Leber's fix for a potential uid.c buffer overflow. * Todd Sabin's option to force IMAP authentication type; enables working around some broken servers. There are 266 people on fetchmail-friends and 444 on fetchmail-announce. fetchmail-5.0.8 (Tue Sep 14 06:56:50 EDT 1999), 17711 lines: * Todd Sabin's patch to accept spaces in CRAM-MD5 names. * Fix to CRAM endianness patch, by Dan Root via Lawrence Rogers. * Suppress duplicates by message ID in multidrop mode. * NTLM support for querying Microsoft Exchange servers, from Grant Edwards. * Lexer fix by Brian Boutel. There are 264 people on fetchmail-friends and 441 on fetchmail-announce. fetchmail-5.0.7 (Sat Aug 21 04:26:13 EDT 1999), 17571 lines: * RPA support works again. * Added debian_rc startup/shutdown script to contrib/. * Yet another monitor option fix. * Various small option-processing fixes. * Teach fetchmailconf about HP OpenMail. * SunOS compilation fixes. * Steve Dodd's fix to not send bouncemail on transient errors. * Don Willis's improved UID parsing. * Fetchmail now logs and recovers from SIGPIPE errors produced by broken socket streams or MDAs. The current poll cycle is terminated. There are 256 people on fetchmail-friends and 433 on fetchmail-announce. fetchmail-5.0.6 (Mon Aug 2 14:04:23 EDT 1999), 17528 lines: * Czech internationalization support (thanks to Jiri Pavlovsky). * Russian internationalization support (but I couldn't read the contributor name in the headers!) * Update of the French internationalization support by Guy Brand. * Lexer fix for the `nokeep' problem by Robert de Bath (thanks to David "Hi! I'm an obnoxious twerp" Ashley for stimulating this). * Lexer states added to tell the lexer to return a string after a `username' or `password' keyword, courtesy of Brian Boutel. * Interface option fix from Bill Currie. * 554 added to default antispam values (for Postfix). * In UID files, split on *rightmost* @ as some dialups actually embed @ in usernames. * Detect Intermail server's "wait a few minutes" message and cope. * Patches for Heimdal implementation of GSSAPI from Leif Johansson . Somebody should test this against the MIT version. * Fix IMAP authentication code to not rely on the challenge code accepting multiple writes; thanks to Kevin Turner . Warning: CompuServe changed their POP3 system on 31 July 1999. In doing so, they broke fetchmail's RPA support. Nobody has sent me either code that works with the new system or a spec for it yet. There are 263 people on fetchmail-friends and 421 on fetchmail-announce. fetchmail-5.0.5 (Sat Jun 26 14:41:27 EDT 1999), 17411 lines: * Merged in official OpenBSD port patches. * Added Spanish and German descriptions to spec (thanks to Horst von Brand). * Moved MIME decoding earlier to avoid messing with header length after offsets have been calculated. * Make the .fetchmail_pid lockfile with O_EXCL. Duhh... * New FAQ item R8 on startup failures under Red Hat 6.0 and Debian. * IMAP now skips the authorization step on a PREAUTH response. * Fix bug in defaulting of IMAP expunge period with non-LOGIN auth modes. There are 260 people on fetchmail-friends and 414 on fetchmail-announce. fetchmail-5.0.4 (Fri Jun 11 18:32:58 EDT 1999), 17378 lines: * Fixed compilation error on systems without vnsprintf. * No more GIFs! RPM is now patent-encumbrance-free. * Fix yet another annoying qmail \n bug (thanks to Paul Gilmore). * There is now a documented return code 13 for termination on fetchlimit. * Added qpopper 2.53 warning to the FAQ and fetchmailconf. * Fix fetchmailconf to handle window-manager destroy notifications. * Todd Sabin's RFC2195 support for AUTH=CRAM-MD5 under IMAP. * New FAQ material on single-drop use with Daemon, thanks to Phil Hunt. * Fix memory leak triggered by UIDL usage, and a .fetchids-trashing bug. There are 261 people on fetchmail-friends and 407 on fetchmail-announce. fetchmail-5.0.3 (Sun May 2 23:39:22 EDT 1999), 17241 lines: * Added FAQ item about things to check if --monitor fails with pppd. * Fixed Matthias Andree's SMTP error bug. There are 257 people on fetchmail-friends and 380 on fetchmail-announce. fetchmail-5.0.2 (Thu Apr 29 22:09:46 EDT 1999), 17239 lines: * The IMAP driver now sets SEEN at deletion time, in case the server ships DSNs when that bit is set (HP OpenMail does this). * Delay between POP3 subsessions to allow the server time to release locks. * Improved environment-query logic to handle mutiple names per UID. (This also fixes the no-pidfile bug introduced in 5.0.1.) * FAQ now includes the location of SSL patches. Th
#!/usr/bin/env python
#
# A GUI configurator for generating fetchmail configuration files.
# by Eric S. Raymond, <esr@snark.thyrsus.com>.
# Requires Python with Tkinter, and the following OS-dependent services:
#	posix, posixpath, socket
#
# TO DO: Arrange for save and quit buttons to clean up all frames dependent
# on the current ones.
version = "1.0"

from Tkinter import *
from Dialog import *
import sys, time, os, string, socket, getopt

#
# Define the data structures the GUIs will be tossing around
#
class Configuration:
    def __init__(self):
	self.poll_interval = 0		# Normally, run in foreground
	self.syslog = FALSE		# Use syslogd for logging?
	self.logfile = None		# No logfile, initially
	self.idfile = os.environ["HOME"] + "/.fetchids"		# Default idfile, initially
	self.invisible = FALSE		# Suppress Received line & spoof?
	self.servers = []		# List of included sites
	Configuration.typemap = (
	    ('poll_interval',	'Int'),
	    ('syslog',		'Boolean'),
	    ('logfile',		'String'),
	    ('idfile',		'String'),
	    ('invisible',	'Boolean'))

    def __repr__(self):
	str = "";
	if self.syslog != ConfigurationDefaults.syslog:
	   str = str + ("set syslog\n")
	elif self.logfile:
	    str = str + ("set logfile \"%s\"\n" % (self.logfile,));
	if self.idfile != ConfigurationDefaults.idfile:
	    str = str + ("set idfile \"%s\"\n" % (self.idfile,));
	if self.poll_interval > 0:
	    str = str + "set daemon " + `self.poll_interval` + "\n"
	for site in self.servers:
	    str = str + repr(site)
	return str

    def __str__(self):
	return "[Configuration: " + repr(self) + "]"

class Server:
    def __init__(self):
	self.pollname = None		# Poll label
	self.via = None			# True name of host
	self.active = TRUE		# Poll status
	self.interval = 0		# Skip interval
	self.protocol = 'auto'		# Default to auto protocol
	self.port = 0			# Port number to use
	self.uidl = FALSE		# Don't use RFC1725 UIDLs by default
	self.auth = 'password'		# Default to password authentication
	self.timeout = 300		# 5-minute timeout
	self.envelope = 'Received'	# Envelope-address header
	self.envskip = 0		# Number of envelope headers to skip
	self.qvirtual = None		# Name prefix to strip
	self.aka = []			# List of DNS aka names
	self.dns = TRUE			# Enable DNS lookup on multidrop
	self.localdomains = []		# Domains to be considered local
	self.interface = None		# IP address and range
	self.monitor = None		# IP address and range
	self.netsec = None		# IPV6 security options
	self.users = []			# List of user entries for site
	Server.typemap = (
	    ('pollname',  'String'),
	    ('via',       'String'),
	    ('active',    'Boolean'),
	    ('interval',  'Int'),
	    ('protocol',  'String'),
	    ('interval',  'Int'),
	    ('port',      'Int'),
	    ('uidl',      'Boolean'),
	    ('auth',      'String'),
	    ('timeout',   'Int'),
	    ('envelope',  'String'),
	    ('envskip',   'Int'),
	    ('qvirtual',  'String'),
	    # leave aka out
	    ('dns',       'Boolean'),
	    # leave localdomains out
	    ('interface', 'String'),
	    ('monitor',   'String'),
	    ('netsec',   'String'))

    def dump(self, folded):
	str = ""
	if self.active:   str = str + "poll"
	else:             str = str + "skip"
	str = str + (" " + self.pollname)
	if self.via:
	    str = str + (" via \"%s\"\n" % (self.via,));
	if self.protocol != ServerDefaults.protocol:
	    str = str + " with proto " + self.protocol 
	if self.port != defaultports[self.protocol] and self.port != 0:
	    str = str + " port " + `self.port`
	if self.timeout != ServerDefaults.timeout:
	    str = str + " timeout " + `self.timeout`
	if self.interval != ServerDefaults.interval: 
	    str = str + " interval " + `self.interval`
	if self.envelope != ServerDefaults.envelope or self.envskip != ServerDefaults.envskip:
	    if self.envskip:
		str = str + " envelope " + self.envskip + " " + self.envelope
	    else:
		str = str + " envelope " + self.envelope
	if self.qvirtual:
	    str = str + (" qvirtual \"%s\"\n" % (self.qvirtual,));
	if self.auth != ServerDefaults.auth:
	    str = str + " auth " + self.auth
	if self.dns != ServerDefaults.dns or self.uidl != ServerDefaults.uidl:
	    str = str + " and options"
	if self.dns != ServerDefaults.dns:
	    str = str + flag2str(self.dns, 'dns')
	if self.uidl != ServerDefaults.uidl:
	    str = str + flag2str(self.uidl, 'uidl')
	if folded:        str = str + "\n    "
	else:             str = str + " "

	if self.aka:
	     str = str + "aka"
	     for x in self.aka:
		str = str + " " + x
	if self.aka and self.localdomains: str = str + " "
	if self.localdomains:
	     str = str + ("localdomains")
	     for x in self.localdomains:
		str = str + " " + x
        if (self.aka or self.localdomains):
	    if folded:
		str = str + "\n    "
	    else:
		str = str + " "

	if self.interface:
            str = str + "interface \"" + self.interface + "\""
	if self.monitor:
            str = str + "monitor \"" + self.monitor + "\""
	if self.netsec:
            str = str + "netsec \"" + self.netsec + "\""
	if self.interface or self.monitor or self.netsec:
	    if folded:
		str = str + "\n"

	if str[-1] == " ": str = str[0:-1]

	for user in self.users:
	    str = str + repr(user)
	str = str + "\n"
	return str;

    def __repr__(self):
	return self.dump(TRUE)

    def __str__(self):
	return "[Server: " + self.dump(FALSE) + "]"

class User:
    def __init__(self):
	self.remote = os.environ["USER"]# Remote username
	self.localnames = [self.remote,]# Local names
	self.password = None		# Password for mail account access
	self.mailboxes = []		# Remote folders to retrieve from
	self.smtphunt = []		# Hosts to forward to
	self.smtpaddress = None;	# Append this to MAIL FROM line
	self.preconnect = None		# Connection setup
	self.postconnect = None		# Connection wrapup
	self.mda = None			# Mail Delivery Agent
	self.antispam = 571;		# Listener's spam-block code
	self.keep = FALSE		# Keep messages
	self.flush = FALSE		# Flush messages
	self.fetchall = FALSE		# Fetch old messages
	self.rewrite = TRUE		# Rewrite message headers
	self.forcecr = FALSE		# Force LF -> CR/LF
	self.stripcr = FALSE		# Strip CR
	self.pass8bits = FALSE		# Force BODY=7BIT
	self.mimedecode = FALSE		# Undo MIME armoring
	self.dropstatus = FALSE		# Drop incoming Status lines
	self.limit = 0			# Message size limit
	self.fetchlimit = 0		# Max messages fetched per batch
	self.batchlimit = 0		# Max message forwarded per batch
	self.expunge = 1		# Interval between expunges (IMAP)
	User.typemap = (
	    ('remote',      'String'),
	    # leave out mailboxes and localnames
	    ('password',    'String'),
            # Leave out smtphunt
	    ('smtpaddress', 'String'),
	    ('preconnect',  'String'),
	    ('postconnect', 'String'),
	    ('mda',         'String'),
	    ('antispam',    'Int'),
	    ('keep',        'Boolean'),
	    ('flush',       'Boolean'),
	    ('fetchall',    'Boolean'),
	    ('rewrite',     'Boolean'),
	    ('forcecr',     'Boolean'),
	    ('stripcr',     'Boolean'),
	    ('pass8bits',   'Boolean'),
	    ('mimedecode',  'Boolean'),
	    ('dropstatus',  'Boolean'),
	    ('limit',       'Int'),
	    ('fetchlimit',  'Int'),
	    ('batchlimit',  'Int'),
	    ('expunge',     'Int'))

    def __repr__(self):
	str = "    "
	str = str + "user \"" + self.remote + "\" there ";
	if self.password:
            str = str + "with password \"" + self.password + '" '
	if self.localnames:
            str = str + "is"
            for x in self.localnames:
		str = str + " " + x
            str = str + " here"
	if (self.keep != UserDefaults.keep
		or self.flush != UserDefaults.flush
		or self.fetchall != UserDefaults.fetchall
		or self.rewrite != UserDefaults.rewrite 
		or self.forcecr != UserDefaults.forcecr 
		or self.stripcr != UserDefaults.stripcr 
		or self.pass8bits != UserDefaults.pass8bits
		or self.mimedecode != UserDefaults.mimedecode
		or self.dropstatus != UserDefaults.dropstatus):
	    str = str + " options"
	if self.keep != UserDefaults.keep:
	    str = str + flag2str(self.keep, 'keep')
	if self.flush != UserDefaults.flush:
	    str = str + flag2str(self.flush, 'flush')
	if self.fetchall != UserDefaults.fetchall:
	    str = str + flag2str(self.fetchall, 'fetchall')
	if self.rewrite != UserDefaults.rewrite:
	    str = str + flag2str(self.rewrite, 'rewrite')
	if self.forcecr != UserDefaults.forcecr:
	    str = str + flag2str(self.forcecr, 'forcecr')
	if self.stripcr != UserDefaults.stripcr:
	    str = str + flag2str(self.stripcr, 'stripcr')
	if self.pass8bits != UserDefaults.pass8bits:
	    str = str + flag2str(self.pass8bits, 'pass8bits')
	if self.mimedecode != UserDefaults.mimedecode:
	    str = str + flag2str(self.mimedecode, 'mimedecode')
	if self.dropstatus != UserDefaults.dropstatus:
	    str = str + flag2str(self.dropstatus, 'dropstatus')
	if self.limit != UserDefaults.limit:
	    str = str + " limit " + `self.limit`
	if self.fetchlimit != UserDefaults.fetchlimit:
	    str = str + " fetchlimit " + `self.fetchlimit`
	if self.batchlimit != UserDefaults.batchlimit:
	    str = str + " batchlimit " + `self.batchlimit`
	if self.expunge != UserDefaults.expunge:
	    str = str + " expunge " + `self.expunge`
        str = str + "\n"
        trimmed = self.smtphunt;
        if trimmed != [] and trimmed[len(trimmed) - 1] == "localhost":
            trimmed = trimmed[0:len(trimmed) - 1]
        if trimmed != [] and trimmed[len(trimmed) - 1] == hostname:
            trimmed = trimmed[0:len(trimmed) - 1]
        if trimmed != []:
            str = str + "    smtphost "
            for x in trimmed:
                str = str + " " + x
                str = str + "\n"
	if self.mailboxes:
	     str = str + "    folder"
	     for x in self.mailboxes:
		str = str + " " + x
	     str = str + "\n"
        for fld in ('smtpaddress', 'preconnect', 'postconnect', 'mda'):
            if getattr(self, fld):
                str = str + " %s \"%s\"\n" % (fld, `getattr(<