aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fetchmail-FAQ.html10
-rw-r--r--website/multidrop.de.html149
-rw-r--r--website/multidrop.html143
3 files changed, 302 insertions, 0 deletions
diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html
index 4e75156e..2c2a5cda 100644
--- a/fetchmail-FAQ.html
+++ b/fetchmail-FAQ.html
@@ -210,6 +210,7 @@ fetchmail seems to have been vanished.</a><br/>
<h2 id="C_M">Multidrop-mode problems</h2>
+<a href="#M0">M0. What about multidrop, anyways?</a><br />
<a href="#M1">M1. I've declared local names, but all my multidrop
mail is going to root anyway.</a><br/>
<a href="#M2">M2. I can't seem to get fetchmail to route to a local
@@ -2640,6 +2641,15 @@ fetch options.</p>
<hr/>
<h1>Multidrop-mode problems</h1>
+<h2><a id="M0" name="M0">M0. What about multidrop, anyways?</a></h2>
+
+<p>Multidrop is a way to receive mail for several receivers in one
+mailbox. It is sort of abusing the system (using address extensions
+would be more useful, where available) and has quite some
+requirements to work properly. I wrote a separate article to document
+this, it is avavailable <a href="multidrop.html"> in English </a>
+and <a href="multidrop.de.html"> in German.</a></p>
+
<h2><a id="M1" name="M1">M1. I've declared local names, but all my
multidrop mail is going to root anyway.</a></h2>
diff --git a/website/multidrop.de.html b/website/multidrop.de.html
new file mode 100644
index 00000000..e132a9d7
--- /dev/null
+++ b/website/multidrop.de.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+ <head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 1st April 2002), see www.w3.org">
+
+ <title>Voraussetzungen für funktionierendes Multidrop</title>
+ <meta name="author" content="Matthias Andree">
+ <meta http-equiv="Content-Type" content=
+ "text/html;charset=iso-8859-15">
+ <link rev="made" href="mailto:matthias.andree@gmx.de">
+ <style type="text/css">
+ <!--
+ body {
+ background-color: #ffffff;
+ color: #000000;
+ }
+ //-->
+ </style>
+ </head>
+
+ <body>
+ <a href="multidrop.html">Link to English-language version/Link zur englischen Sprachfassung</a>
+ <h1>Voraussetzungen für funktionierendes Multidrop</h1>
+
+ <address>
+ <a href="mailto:matthias.andree@gmx.de">Matthias Andree</a> 2003-10-12
+ </address>
+
+ <h2>Einleitung</h2>
+
+ <p>Viele Provider bieten ihren Kunden ein POP3-Multidrop oder
+ "domain-in-a-mailbox"-Schema an, um für mehrere Empfänger in
+ einer Domain die Mail "in einem Rutsch" abholen zu lassen.</p>
+
+ <p>Oft genug geht so ein Unterfangen dann bei der Mailabholung
+ schief, die Ursachen und Abhilfen dafür sollen hier näher
+ betrachtet werden.</p>
+
+ <h2>Eingangsbetrachtungen</h2>
+
+ <p>POP3, das Post-Office-Protokoll Version 3, war ursprünglich
+ dazu gedacht, Mail für einen einzelnen Benutzer zu
+ transportieren. Es erhält den sogenannten Umschlag
+ ("Envelope"), der die tatsächlichen Empfänger und Absender
+ angibt, nicht.</p>
+
+ <p>Nun wird oft der Absender im Header "Return-Path"
+ hinterlegt, bezüglich des Empfängers kocht sich jeder
+ Programmierer eines Mailservers seine eigene Suppe. Gängig sind
+ "gar nichts" (sendmail), "Delivered-To:" (qmail, evtl. mit
+ einem Präfix, Postfix), "X-Envelope-To:" (bestimmte
+ procmail-Setups) und "X-Original-To:" (neuere Postfix-Versionen
+ zusätzlich zum Delivered-To:).</p>
+
+ <p><strong>Wichtige Hintergrundinformation:</strong> Die
+ Mail-HEADER wie To:, Cc:, Bcc: sind für die Zustellung der Mail
+ NICHT RELEVANT. Die Mailzustellung erfolgt ausschließlich
+ anhand des UMSCHLAGS, wie bei der Sackpost auch!</p>
+
+ <p>Es ist zwar häufig so, dass der Umschlag bei der ersten
+ Einlieferung der Mail aus den Headern erzeugt wird, doch NUR
+ DER UMSCHLAG trägt, im Gegensatz zum HEADER (Briefkopf), die
+ vollständige Information:</p>
+
+ <ul>
+ <li>Bcc: wird bei erster Gelegenheit entfernt, er soll ja
+ beim Empfänger nicht mehr sichtbar sein</li>
+
+ <li>To: und Cc: werden bei Mailweiterleitungen nicht an das
+ Ziel angepasst</li>
+
+ <li>To: und Cc: enthalten bei Mailinglistenteilnahme die
+ Adresse der Liste und nicht die Adresse desjenigen, der die
+ Liste bestellt hat</li>
+ </ul>
+
+ <p>Der Umstand, mehrere Empfänger in einer Mailbox zu
+ vereinigen, erfordert nun, dass der tatsächliche Empfänger der
+ Mail hinterlegt wird, damit die Mail richtig zugestellt werden
+ kann. POP3 trifft hierfür keine Vorkehrungen, daher müssen sie
+ außerhalb des Protokolls eingerichtet werden. Es bietet sich
+ hierfür der Mailheader an.</p>
+
+ <h2>Voraussetzungen</h2>
+
+ <p>Unter bestimmten Voraussetzungen kann POP3-Multidrop dennoch
+ zuverlässig funktionieren. Diese sind:</p>
+
+ <ol>
+ <li>Der Provider MUSS für jeden Empfänger der eigenen Domain
+ eine Kopie der Mail in die Mailbox werfen.</li>
+
+ <li>Der Provider MUSS in JEDER Mail den sogenannten "Envelope
+ Recipient" hinterlegen. Welcher Header das ist, sieht man
+ entweder an der Mail oder kann es beim Provider erfragen.
+ Typisch wird man einen Header wie X-Original-To:,
+ X-Envelope-To: oder Delivered-To: finden.</li>
+
+ <li>Der POP3-Client (Mercury/32, fetchmail, getmail, ...)
+ MUSS den Header, in dem der "Envelope Recipient" hinterlegt
+ ist, zuverlässig erkennen und ausschließlich anhand seiner
+ die Mail zustellen.</li>
+
+ <li><strong>Der POP3-Client DARF KEINESFALLS die To: oder
+ Cc:-Header auswerten. Er DARF KEINESFALLS die Mail in einen
+ Befehl wie sendmail&nbsp;-t&nbsp;-oi stecken (sendmail mit
+ einer fixen, lokalen Mailadresse, z. B.
+ sendmail&nbsp;-oi&nbsp;hans ist hingegen
+ vertretbar).</strong></li>
+ </ol>
+
+ <h2>Erklärungen</h2>
+
+ <dl>
+ <dt>Ad 1:</dt>
+
+ <dd>Ist diese Voraussetzung nicht erfüllt, werden bei Mails,
+ die an mehrere Empfänger der eigenen Domain gehen, einige
+ Empfänger die Mail nicht bekommen.</dd>
+
+ <dt>Ad 2:</dt>
+
+ <dd>
+ Ist diese Voraussetzung nicht erfüllt, kommt es zu
+ Fehlzustellungen. Der Versuch, die Information aus den
+ Mailheadern selbst (To:, Cc:) zu entnehmen, ist gefährlich
+ und unzuverlässig:
+
+ <ul>
+ <li>Einerseits kann Mail an Mailinglisten zurückgeschickt
+ werden, deren Adresse oft im To:- oder Cc:-Header steht,
+ was eine Mailschleife auslöst, die unbedingt vermieden
+ werden muss (weil sie Kosten verursacht)</li>
+
+ <li>andererseits ist die Regenerierung von Empfängern,
+ die beim Absender im "Bcc:"-Header eingetragen waren,
+ nicht möglich, da der Bcc:-Header beim Transport entfernt
+ werden muss, wie der Name "Blind Carbon Copy" schon
+ andeutet.</li>
+ </ul>
+ </dd>
+ </dl>
+ <!-- vim: set filetype=html: -->
+ </body>
+</html>
+
diff --git a/website/multidrop.html b/website/multidrop.html
new file mode 100644
index 00000000..2de3efc3
--- /dev/null
+++ b/website/multidrop.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+ <head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 1st April 2002), see www.w3.org">
+
+ <title>Requisites for working multidrop mailboxes</title>
+ <meta name="author" content="Matthias Andree">
+ <meta http-equiv="Content-Type" content=
+ "text/html;charset=iso-8859-15">
+ <link rev="made" href="mailto:matthias.andree@gmx.de">
+ <style type="text/css">
+ <!--
+ body {
+ background-color: #ffffff;
+ color: #000000;
+ }
+ //-->
+ </style>
+ </head>
+
+ <body>
+ <a href="multidrop.de.html">Link zur deutschen Version/link to German-language version</a>
+
+ <h1>Requisites for working multidrop mailboxes</h1>
+
+ <address>
+ <a href="mailto:matthias.andree@gmx.de">Matthias Andree</a> 2004-05-27
+ </address>
+
+ <h2>Introduction</h2>
+
+ <p>Many ISPs offer a POP3 multidrop or "domain in a mailbox"
+ setup to their clients who can then fetch mail for multiple
+ recipients in their domain "in one go".</p>
+
+ <p>Often enough, such an undertaking goes awry during the mail
+ fetch, causes and remedies are to be presented in this
+ document.</p>
+
+ <h2>Initial Examination</h2>
+
+ <p>POP3, the Post Office Protocol version 3, was intended to
+ transport mail for a single recipient. It does not keep the
+ envelope that indicates the actual recipient and sender.</p>
+
+ <p>The envelope sender is often copied to the "Return-Path"
+ header, with respect to the envelope recipient, every
+ programmer of a mail server will have their own implementation.
+ Common solutions are "do nothing" (sendmail), "Delivered-To:"
+ (in qmail, potentially with a domain prefix; Postfix),
+ "X-Envelope-To:" (certain procmail-based setups) and
+ "X-Original-To:" (Postfix releases after 2002-10-25 will write
+ this in addition to Envelope-To:)</p>
+
+ <p><strong>Important background information:</strong> Mail
+ headers such as To:, Cc:, Bcc: are IRRELEVANT for routing and
+ delivery of the mail. Mail routing will only look at the
+ ENVELOPE - there is no difference from snail mail here.</p>
+
+ <p>We will frequently see that upon injection, the envelope is
+ created from the headers, but ONLY THE ENVELOPE carries, in
+ contrast to the HEADER, the full information:</p>
+
+ <ul>
+ <li>Bcc: is removed from the header - it is supposed to be
+ invisible to the recipients</li>
+
+ <li>To: and Cc: are not updated to reflect the new target
+ when mail is being redirected</li>
+
+ <li>To: and Cc:, in mailing list mail, contain the LIST
+ address and not the subscriber's address</li>
+ </ul>
+
+ <p>Dropping off mail for multiple distinct recipients in the
+ same mailbox requires the server to deposit the actual
+ recipient in the mail in order to achieve proper delivery. POP3
+ makes no provisions, so this must take place outside the
+ protocol, the mail header lends itself to the task.</p>
+
+ <h2>Requirements</h2>
+
+ <p>POP3 multidrop can work reliably all the same, provided that
+ some requirements are met. These are:</p>
+
+ <ol>
+ <li>The ISP MUST drop one copy per recipient in that
+ domain.</li>
+
+ <li>The ISP MUST deposit the envelope recipient in the mail
+ header. Which one your ISP chooses can be asked from their
+ tech support or you'll see it when looking at a mail header.
+ You'll typically find X-Original-To:, X-Envelope-To:,
+ Delivered-To:.</li>
+
+ <li>The POP3 client (Mercury/32, fetchmail, getmail, ...)
+ MUST reliably recognise the header where the envelope
+ recipient has been deposited and use ONLY this header for
+ mail delivery.</li>
+
+ <li><strong>The POP3 client MUST IN NO CASE evaluate To: or
+ Cc: headers. It MUST ON NO ACCOUNT feed the mail into a
+ command that is used for injection, such as
+ sendmail&nbsp;-t&nbsp;-oi (whereas sendmail with a fixed
+ local mail address, for instance, sendmail&nbsp;-oi&nbsp;joe,
+ is justifiable).</strong></li>
+ </ol>
+
+ <h2>Explanations</h2>
+
+ <dl>
+ <dt>Ad 1:</dt>
+
+ <dd>If this requirement is not met, mails to multiple
+ recipients of the multidrop domain will only reach one of the
+ recipients.</dd>
+
+ <dt>Ad 2:</dt>
+
+ <dd>
+ If this requirement is not met, delivery will be faulty.
+ Attempting to derive this information from the headers
+ (To:, Cc:) is dangerous and unreliable:
+
+ <ul>
+ <li>Mail for mailing lists (which have their addresses in
+ the To: or Cc: header) will loop, which must be
+ avoided</li>
+
+ <li>the regeneration of recipients that were placed in
+ the Bcc: header at the sender's site, is impossible
+ because the Bcc: header is removed for transport, as the
+ name "blind carbon copy" suggests.</li>
+ </ul>
+ </dd>
+ </dl>
+ <!-- vim: set filetype=html: -->
+ </body>
+</html>
+