Post by Thomas GohelThomas 'PointedEars' Lahn meinte zum Thema "Re: Mail ausschließlich über
BCC versenden, To-Header ignorieren - wie geht das?"
Es heisst Einleitungs_zeile_, nicht Einleitungsroman. Der Betreff steht
bereits im Subject-Headerfeld (siehe unten) meiner Nachricht und (da Du das
Subject nicht geändert hast) auch Deiner Nachricht. Tatsächlich muss kein
Headerfeldwert im Message Body dupliziert werden; jedoch kann die vorherige
Nachricht verlorengehen (durch Expires u. a.) und der Name des Vorposters
dient der einfachen Zuordnung der Zitatebenen beim Lesen des Postings.
Bitte halt Dich an diese sinnvolle Konvention und kürz die Einleitung auf
das Notwendigste: den Namen.
<http://einklich.net/usenet/usenet1.htm> ff.
Hallo. Dies hier ist im Unterschied zu E-Mail (von den diskutierten
Mailinglisten abgesehen) kein 1:1-Kommunikationsmedium, sondern eine
Diskussions*gruppe*. Wenn Du postest, sprichst Du also immer alle
potentiellen Leser an. Das sollte sich in Deinem Text niederschlagen. Beim
Antworten ist es durchaus akzeptabel, eine solche Begrüssung wegzulassen;
niemand wird Dich deshalb schief ansehen. Hingegen wirkt eine solche
persönliche Begrüssung aus den genannten Gründen auf langjährige Netznutzer
eher befremdlich.
Post by Thomas GohelPost by Thomas 'PointedEars' LahnPost by Thomas HochsteinDas ist schon deshalb so nicht sinnvoll, weil die Länge von
Headerfeldwerten aus praktischen Gründen begrenzt ist, und eine
Mailingliste tausende Abonnenten haben kann.
Dann setzt man mehrere BCC-Header ... Ja, das geht.
Nach welchem RFC?
Ehrlich gesagt: Keine Ahnung. Die üblichen Verdächtigen wären aber
wie immer RFC 821/2821. ;-)
Nein, die *Struktur* von Internet-Nachrichten ist nicht in RFC 821/2821/5321
(Simple Mail *Transfer* Protocol) definiert, sondern in RFC 822/2822/5322.
Aktuell ist diesbezüglich RFC 5322, und dort finde ich nur
| The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains […]
| There are three ways in which the "Bcc:" field is used. […]
usw. Es gibt AFAICS keine Hinweise darauf, dass eines der "Destination
Address Fields" (To, Cc und Bcc) mehrfach vorkommen dürfte.
Post by Thomas GohelIn der Praxis kannst Du aber seit 1982 soviele To/Cc/Bcc-Header nutzen
wie Du möchtest und auch für jeden Empfänger einen einzelnen Header
nutzen, zumal je Empänger eh ein einzelnes "RCPT-TO" erzeugt wird.
Syntax, die (bis zum Beweis des Gegenteils) nicht mal ansatzweise durch
technische Standards gestützt wird, sollte nicht zum E-Mail-Versand
benutzt werden. Be conservative in what you send.
Post by Thomas GohelAls Limit gilt nur die 1000-Zeichen Grenze pro Zeile pro einzelnem
Header. Wenn es robust sein soll, würde ich eine entfaltete Header-
zeile mit mehr als 1000 Zeichen nicht benutzen.
Hier gibt es offenbar ein Missverständnis, auch aufgrund falsch verwendeter
Begriffe.
Der Header einer Internet-Nachricht besteht aus Headerzeilen oder (gemäss
Standard und Quasi-Standards) Header*feldern* (header fields). Jedes
Headerfeld besteht aus einem Namen und einem Wert, die (mindestens) durch
Doppelpunkt voneinander getrennt sind.
In Abschnitt 2.1.1 "Line Length Limits" von RFC 5322 wird beschrieben, dass
Nachrichten aus Kompatibilitätsgründen keine *Zeilen* länger als 1000
Zeichen (einschliesslich des CR+LF für das Zeilenende) haben sollten, und
für die Anzeige nicht mehr als 78 Zeichen (ohne CR+LF) in einer Zeile haben
sollten (eine Konvention, die ja auch im Usenet Anwendung findet):
| 2.1.1. Line Length Limits
|
| There are two limits that this specification places on the number of
| characters in a line. Each line of characters MUST be no more than
| 998 characters, and SHOULD be no more than 78 characters, excluding
| the CRLF.
|
| The 998 character limit is due to limitations in many implementations
| that send, receive, or store IMF messages which simply cannot handle
| more than 998 characters on a line. Receiving implementations would
| do well to handle an arbitrarily large number of characters in a line
| for robustness sake. However, there are so many implementations that
| (in compliance with the transport requirements of [RFC5321]) do not
| accept messages containing more than 1000 characters including the CR
| and LF per line, it is important for implementations not to create
| such messages.
|
| The more conservative 78 character recommendation is to accommodate
| the many implementations of user interfaces that display these
| messages which may truncate, or disastrously wrap, the display of
| more than 78 characters per line, in spite of the fact that such
| implementations are non-conformant to the intent of this
| specification (and that of [RFC5321] if they actually cause
| information to be lost). Again, even though this limitation is put
| on messages, it is incumbent upon implementations that display
| messages to handle an arbitrarily large number of characters in a
| line (certainly at least up to the 998 character limit) for the sake
| of robustness.
Das hat _nichts_ mit der Länge eines Headerfeld*wertes* oder des (gesamten)
*Headers* der Internet-Nachricht zu tun. Insbesondere können
Headerfeldwerte über mehrere Zeilen gehen; der zweiten, dritten usw. Zeile
des Wertes muss jedoch Whitespace vorangehen, damit eine Unterscheidung
zwischen Headerfeldwert-Komponente und Headerfeldname einfach möglich ist
(RFC 5322, 2.2.3 "Long Header Fields"). Ein Headerfeld darf also länger als
1000 Zeichen sein, und folglich auch der Header einer Internet-Nachricht,
der ja aus Headerfeldern besteht.
Wenn ein MTA oder sonst eine gebräuchliche Software eine praktische Grenze
definiert, ist das etwas *anderes* als wenn das so in einem Internet-
Standard spezifiziert ist. Offensichtlich lehnt INN (gem. Michael Vogel in
<news:4e8ad8de$0$7615$***@newsspool1.arcor-online.net>) Header ("bis
zur ersten Leerzeile") ab einer gewissen Grösse ab. Nun wäre es sinnvoll
und notwendig, diese "gewisse Grösse" einmal zu definieren, um Rückschlüsse
auf die Maximallänge eines Headerfelds und schliesslich eines
Headerfeldwerts eines NetNews-Artikels ziehen zu können. Freilich liesse
das immer noch keine Aussage zu MTAs und E-Mail zu, denn INN ist ein
Newsserver und muss/sollte sich stattdessen an RFC 5536 "NetNews Article
Format" halten.
Post by Thomas GohelWenn man aber direkt als Mailingliste per SMTP mit dem Mailserver
kommuniziert, kann man sich diese üblen To/Cc/Bcc Hacks aber komplett
ersparen.
AISB.
Post by Thomas GohelPost by Thomas 'PointedEars' LahnPost by Thomas HochsteinEs ist eine in den meisten Fällen unsinnige Verschwendung von
Ressourcen, bei einer Mail an eine Mailingliste mit 1.000
Teilnehmern dann 1.000 neue Mails zu generieren. Stattdessen wird
genau diese eine Mail identisch an alle Teilnehmer ausgeliefert, so
wie es auch Michael vorhat.
Letztlich werden so aber 1000 Mailkopien generiert.
Irgendwie sind es in der Endabrechnung immer 1000 Mails die in 1000
Postfächern landen <g>. Idealerweise optimiert der MX aber die Über-
tragung des Inhaltes bei gleicher Empfänger-Domain, so das in der Praxis
z.B. bei GMX 50 User in einem Rutsch abgefertigt werden.
Soifz. [psf 10.1] Ich habe nichts Gegenteiliges behauptet.
Post by Thomas GohelPost by Thomas 'PointedEars' LahnPost by Thomas HochsteinEs gibt keinen "SMTP-`Envelope-To'-Headerfeldwert" in diesem Sinne.
Doch, gibt es.
Nein, das nennt sich bei SMTP schlicht RCPT-TO. Die Headerfelder des
Mailclients sind dagegen Bestandteil des DATA-Feldes im SMTP-Dialog
und für die SMTP-Übertragung völlig irrelevant. Die Sicherung des
RCPT-TO in den Header der Mail ist optional und ein konfigurierbares
Features einiger MTAs. In den meisten Fällen erfolgt die Sicherung
des RCPT-TO in einen sogenannten X-Header (z.B. X-Envelope-To), also
einen ungenormten Header.
Der *SMTP-Befehl* `RCPT TO' ist mir bekannt; aufgrund der beim Schreiben
eines automatisierten E-Mail-Adressen-Checkers gewonnenen Erfahrung darf ich
ohne Übertreibung behaupten, SMTP verhandlungssicher – wenn auch nicht
fliessend – zu sprechen.
Leider finde ich das Beispiel nicht mehr, in der ich `Envelope-To' (sic!)
vor dem SMTP-Payload gelesen hatte. Es ist möglich, dass das nur Teil einer
internen Darstellungsform war oder ich mich verlesen habe (`Envelope-From').
Meine frühere Aussage wird überprüfbar richtig, wenn man sich
"-Headerfeldwert" wegdenkt oder den Begriff als "`RCPT TO'-Befehlsparameter"
versteht.
Post by Thomas GohelPost by Thomas 'PointedEars' LahnOffensichtlich hast Du die Frage überhaupt nicht verstanden. Es ging
darum, *keinen* To-Header zu generieren, und das mit *PHP* zu
erreichen; konkret, mit mail().
Rein technisch wird kein To-Header für die SMTP-Übertragung benötigt,
da SMTP nur irgendeinen RCPT-TO benötigt (woher dieser auch immer kommen
mag), um die Mail irgendwie zustellen zu können.
Ach[tm]! Liest hier eigentlich irgendjemand *sinnentnehmend*, was ich
*tatsächlich* schreibe? :-(
Post by Thomas GohelIn der Praxis scheitert die Idee aber an diversen Plausibilitäts-
Checks der am Transfer beteiligten Software. Eine gute Idee wäre
also dann doch wieder einen korrekten To-Header zu setzen. ;-)
Bloss funktioniert das *mit mail()* nicht so wie Michael möchte. Die
korrekte Antwort auf die Frage
| Leider versendet [mail()] immer auch an die Adresse im To-Header. Lässt
| sich das vermeiden?
welche hier im Gegensatz zu allem anderen in dieser Diskussion on-topic ist,
ist daher *Nein*. (Das war meine Antwort.)
Es sei denn, man sendet eben mit mail() einen `To'-Header mit einer
Reflektor-Adresse (oder `To' mit `undisclosed-recipients;' – was mir
durchaus bekannt war – und Bcc-Reflektoradresse, was aber nicht sinnvoll
ist), und der Reflektor/MLM/whatever übernimmt die tatsächliche Auslieferung
an die Abonnenten, wobei er als Envelope-To die Abonnentenadresse(n)
verwendet und als `To' der Internet-Nachricht seine eigene Adresse bzw. die,
welche er in der Ursprungsnachricht vorfand (daher *Reflektor*).
--
PointedEars
Please do not Cc: me. / Bitte keine Kopien per E-Mail.