Discussion:
Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?
(zu alt für eine Antwort)
Michael Vogel
2011-10-01 13:05:42 UTC
Permalink
Moin!

Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.

Leider versendet die Mail-Funktion immer auch an die Adresse im
To-Header. Lässt sich das vermeiden?

Michael
Thomas 'PointedEars' Lahn
2011-10-02 03:02:32 UTC
Permalink
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
RTFM. Mailinglisten funktionieren so nicht. Das 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.

Stattdessen muss die Mailinglisten-Software für jeden Abonnenten eine Kopie
der E-Mail generieren. Dies geschieht üblicherweise durch das Senden an
eine Reflektor-Adresse. Im SMTP-`Envelope-To'-Headerfeldwert der vom
Reflektor für jeden Empfänger generierten E-Mail (d. h. auf dem
Briefumschlag) steht dann die Adresse des Abonnenten; im übernommenen `To'-
Headerfeldwert (d. h. dem Briefkopf) steht die Reflektor-Adresse – denn
diesen Briefkopf bekommt nur der Empfänger der E-Mail, nicht aber die
vermittelnden MTAs (Poststellen) zu sehen.

Dieses Rad wurde jedoch schon mehrfach neu erfunden. Was genau gefällt Dir
an der bestehenden Software nicht?

<http://en.wikipedia.org/wiki/Electronic_mailing_list>
Post by Michael Vogel
Leider versendet die Mail-Funktion
Du meinst wohl mail(). Es gibt noch andere "Mail-Funktionen".
Post by Michael Vogel
immer auch an die Adresse im To-Header. Lässt sich das vermeiden?
Nein.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-02 08:16:14 UTC
Permalink
Hi!
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
RTFM. Mailinglisten funktionieren so nicht. Das 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.
Ich habe auch nicht gesagt, dass ich alle Empfänger in eine einzelne
Mail setzen möchte. Nur wenn man sich Software wie Mailman oder ezmlm
anschaut, sieht man, dass im "To"-Header immer die Mailingliste und
nicht der Empfänger steht.
Post by Thomas 'PointedEars' Lahn
Stattdessen muss die Mailinglisten-Software für jeden Abonnenten eine Kopie
der E-Mail generieren. Dies geschieht üblicherweise durch das Senden an
eine Reflektor-Adresse. Im SMTP-`Envelope-To'-Headerfeldwert der vom
Reflektor für jeden Empfänger generierten E-Mail (d. h. auf dem
Briefumschlag) steht dann die Adresse des Abonnenten; im übernommenen `To'-
Headerfeldwert (d. h. dem Briefkopf) steht die Reflektor-Adresse – denn
diesen Briefkopf bekommt nur der Empfänger der E-Mail, nicht aber die
vermittelnden MTAs (Poststellen) zu sehen.
Nur wie mache ich das mit PHP? Zumindest bei mail() scheint auch immer
die Adresse im "To"-Header eine Mail zu erhalten. Ich könnte jetzt zwar
auch anfangen, direkt SMTP mit dem Mailserver zu sprechen, aber das
wollte ich mir eigentlich ersparen.
Post by Thomas 'PointedEars' Lahn
Dieses Rad wurde jedoch schon mehrfach neu erfunden. Was genau gefällt Dir
an der bestehenden Software nicht?
Ich möchte gerne ein System, was sich besser in ein Forum integriert,
dass ich administriere und für das ich Erweiterungen programmiere.
Dieses Forum synchronisiert bereits jetzt mit etwa 200 Newsgroups auf
einem privaten Server. Diese Newsgroups werden wiederum mit Hilfe eines
speziellen Scripts mit verschiedenen Mailinglisten synchronisiert.

Das klappt alles sehr gut, es gehen - insbesondere in den letzten Tagen
- teilweise um die 2.000 Nachrichten pro Tag über das System.

Das Problem ist nur die Koordination mit den ganzen Mailinglistenadmins.
Es sind viele verschiedene, und das ist einfach immer anstrengend, zumal
meiner Ansicht nach viele Listenadmins nicht Listenadmins sein möchten.

Es gibt außerdem immer wieder Mailinglistenuser, die mit dem Umgang
überfordert sind. Sie schaffen es zwar noch, sich anzumelden, aber haben
Probleme mit der Abmeldung. Wenn ich das in ein Forum integriere, dann
werden nur Leute die Mailingliste nutzen, die dies auch wirklich
möchten. (die anderen werden wohl eher das Forum nutzen) Und da das
Abonnieren und Abbestellen an einer Stelle sind, sollte es dann für die
meisten gut bedienbar sein.

Es ist mir klar, dass es noch viele Details gibt, die ich umsetzen muss,
damit mein System genauso stabil läuft. Aber da ich mit keiner Software
wirklich vollständig zufrieden bin, schreibe (oder erweitere) ich sie
mir lieber selber.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Leider versendet die Mail-Funktion
Du meinst wohl mail().
Korrekt, die meinte ich.
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang? Unter
http://de.php.net/manual/de/ref.mail.php gibt es zumindest nur eine
einzige Funktion.

Michael
Gustaf Mossakowski
2011-10-02 09:11:51 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Ich schreibe gerade eine kleine Mailinglistensoftware. [...]
Dieses Rad wurde jedoch schon mehrfach neu erfunden. Was genau
gefällt Dir an der bestehenden Software nicht?
Ich möchte gerne ein System, was sich besser in ein Forum integriert,
dass ich administriere und für das ich Erweiterungen programmiere.
[...]
Das Problem ist nur die Koordination mit den ganzen Mailinglistenadmins.
Es sind viele verschiedene, und das ist einfach immer anstrengend, zumal
meiner Ansicht nach viele Listenadmins nicht Listenadmins sein möchten.
Du kannst doch ein Interface für die Administration der Listen
schreiben. So dass die Admins keine Mails für die verschiedenen
Kommandos an die Liste senden müssen, sondern nur auf Knöpfe drücken
müssen, um das gewünschte zu erreichen.
Post by Michael Vogel
Es gibt außerdem immer wieder Mailinglistenuser, die mit dem Umgang
überfordert sind. Sie schaffen es zwar noch, sich anzumelden, aber haben
Probleme mit der Abmeldung.
[ ] Ja, ich will die Mailingliste XY abonnieren

zum Ankreuzen oder

[Ja, ich möchte Nachrichten über XY bekommen]

und wenn die Person bereits auf der Liste ist, machst du an die Stelle
einen entsprechend entgegengesetzt lautenden Button.

Im Hintergrund sendet dein Interface die entsprechenden Kommandos an die
Mailingliste, z. B. per Mail.

Viele Grüße
Gustaf
Michael Vogel
2011-10-02 09:50:29 UTC
Permalink
Moin!
Post by Gustaf Mossakowski
Post by Michael Vogel
Das Problem ist nur die Koordination mit den ganzen Mailinglistenadmins.
Es sind viele verschiedene, und das ist einfach immer anstrengend, zumal
meiner Ansicht nach viele Listenadmins nicht Listenadmins sein möchten.
Du kannst doch ein Interface für die Administration der Listen
schreiben. So dass die Admins keine Mails für die verschiedenen
Kommandos an die Liste senden müssen, sondern nur auf Knöpfe drücken
müssen, um das gewünschte zu erreichen.
Mailman hat ja bereits ein Interface. Das Problem liegt eher im Aufwand
mit der Kommunikation mit den Admins. Bei den hochfrequentierten Listen
ist dies meistens kein Problem. Aber dafür bei vielen kleineren Listen
mit wenig Traffic.

Zusätzlich würde ich gerne den Prozess der Mailinglistenbeantragung
erleichtern. Wenn jemand eine Mailingliste angelegt haben möchte, muss
er zunächst eine Datenschutzverpflichtung an unsere
Bundesgeschäftsstelle senden. Ist diese angekommen, nehmen sich unsere
Supporter dem Ganzen an. Sie fragen dann nach dem GPG-Key des
zukünftigen Listenadmins, damit das Passwort verschlüsselt versendet
werden kann.

Als Letztes wird dann noch der Sync eingerichtet. Dazu wird das Ticket
in meine Queue gelegt. Ich mache dann den Rest.

Das ist ein komplexer Vorgang, den ich gerne ein wenig entschlacken würde.
Post by Gustaf Mossakowski
Post by Michael Vogel
Es gibt außerdem immer wieder Mailinglistenuser, die mit dem Umgang
überfordert sind. Sie schaffen es zwar noch, sich anzumelden, aber haben
Probleme mit der Abmeldung.
[ ] Ja, ich will die Mailingliste XY abonnieren
zum Ankreuzen oder
[Ja, ich möchte Nachrichten über XY bekommen]
und wenn die Person bereits auf der Liste ist, machst du an die Stelle
einen entsprechend entgegengesetzt lautenden Button.
Mailman hat ja sowas. Dennoch gibt es Leute, die damit schlichtweg
überfordert sind. Sie sehen die Mails, schauen aber nicht einmal in den
Footer der Mail, wo der entsprechende Link ist, bzw. scheinen sie ein
Problem mit der Bestätigungsmail zu haben, ... Es gibt da leider
vielfältige Probleme.

Michael
Gustaf Mossakowski
2011-10-02 12:21:49 UTC
Permalink
Post by Michael Vogel
Mailman hat ja bereits ein Interface. Das Problem liegt eher im Aufwand
mit der Kommunikation mit den Admins. Bei den hochfrequentierten Listen
ist dies meistens kein Problem. Aber dafür bei vielen kleineren Listen
mit wenig Traffic.
Was muß man denn groß kommunizieren, wenn eine Mailingliste läuft? Und
wie kann man das, was man bespricht, durch PHP-Skripte ersetzen?
Post by Michael Vogel
Zusätzlich würde ich gerne den Prozess der Mailinglistenbeantragung
erleichtern. Wenn jemand eine Mailingliste angelegt haben möchte, muss
er zunächst eine Datenschutzverpflichtung an unsere
Bundesgeschäftsstelle senden. Ist diese angekommen, nehmen sich unsere
Supporter dem Ganzen an. Sie fragen dann nach dem GPG-Key des
zukünftigen Listenadmins, damit das Passwort verschlüsselt versendet
werden kann.
Als Letztes wird dann noch der Sync eingerichtet. Dazu wird das Ticket
in meine Queue gelegt. Ich mache dann den Rest.
Das ist ein komplexer Vorgang, den ich gerne ein wenig entschlacken würde.
Aber das ist doch etwas, was man um z. B. die Mailman-Software
herumprogrammieren kann, mit den entsprechenden Schnittstellen. Das
erscheint mir sinnvoller, als das neu zu programmieren.

Interessentin für Mailingliste füllt Webformular aus, meinetwegen mit
Name und Beschreibung der Liste, kreuzt Häkchen zur
Datenschutzverpflichtung an und kopiert GPG-Key in Formularfeld (oder
man macht das über Dateiupload). Dann kannst du, falls erforderlich, ein
PDF zurücksenden, auf das die Interessentin ihre Unterschrift für die
Verpflichtung setzt und per Post an die Geschäftsstelle sendet.

Der Rest kann ja einfach in einem Skript abgearbeitet werden. Hat bis
hier mit dem Versenden der Mails noch nicht viel zu tun.
Post by Michael Vogel
Mailman hat ja sowas. Dennoch gibt es Leute, die damit schlichtweg
überfordert sind. Sie sehen die Mails, schauen aber nicht einmal in den
Footer der Mail, wo der entsprechende Link ist, bzw. scheinen sie ein
Problem mit der Bestätigungsmail zu haben, ... Es gibt da leider
vielfältige Probleme.
Nun gut, Leute, die man an die Hand nehmen muß, gibt es überall. Ich
hatte das so verstanden, dass ihr eh eine Plattform (Forum?) habt. Ich
würde dann dort die Möglichkeit bieten, die Mailingliste(n) zu bestellen
und abbestellen. Die Plattform hat ja auch die Mailadresse etc. Das
Interface von Mailman würde ich nicht nutzen. Das ist sicher ein Bruch
im Layout, man muß sich nochmal anmelden etc. Einfach ein Button »Liste
abonnieren«, fertig.

Viele Grüße
Gustaf
Michael Vogel
2011-10-03 10:04:25 UTC
Permalink
Hi!
Post by Gustaf Mossakowski
Post by Michael Vogel
Mailman hat ja bereits ein Interface. Das Problem liegt eher im Aufwand
mit der Kommunikation mit den Admins. Bei den hochfrequentierten Listen
ist dies meistens kein Problem. Aber dafür bei vielen kleineren Listen
mit wenig Traffic.
Was muß man denn groß kommunizieren, wenn eine Mailingliste läuft?
Zum einen wurden die meisten Listen nicht gleich mit dem Sync
eingerichtet, d.h. ich muss mit den Listenadmins in Kontakt treten, wenn
der Sync beschlossen wurde. Zusätzlich kann es auch mal dazu kommen,
dass die Moderation eingreifen muss. Dann ist zu schauen, wo der
entsprechende User registriert ist (über ML oder über Forum/Newsserver)
und der entsprechende Moderator muss eingreifen.
Post by Gustaf Mossakowski
Post by Michael Vogel
Zusätzlich würde ich gerne den Prozess der Mailinglistenbeantragung
erleichtern. Wenn jemand eine Mailingliste angelegt haben möchte, muss
er zunächst eine Datenschutzverpflichtung an unsere
Bundesgeschäftsstelle senden. Ist diese angekommen, nehmen sich unsere
Supporter dem Ganzen an. Sie fragen dann nach dem GPG-Key des
zukünftigen Listenadmins, damit das Passwort verschlüsselt versendet
werden kann.
Als Letztes wird dann noch der Sync eingerichtet. Dazu wird das Ticket
in meine Queue gelegt. Ich mache dann den Rest.
Das ist ein komplexer Vorgang, den ich gerne ein wenig entschlacken würde.
Aber das ist doch etwas, was man um z. B. die Mailman-Software
herumprogrammieren kann, mit den entsprechenden Schnittstellen. Das
erscheint mir sinnvoller, als das neu zu programmieren.
Ja, Mailman hat auch Möglichkeiten, per Kommandozeile daran zu
administrieren. Sicherlich ließe sich da auch was drehen. Der Aufwand
dafür dürfte aber auch nicht unerheblich sein. Zusätzlich haben wir die
Schwierigkeit, dass wie verschiedene Gliederungen haben, die eigene IT
stellen - und nicht bei allen wird es möglich sein, die entsprechenden
Schnittstellen auf dem Server zur Verfügung zu stellen.
Post by Gustaf Mossakowski
Post by Michael Vogel
Mailman hat ja sowas. Dennoch gibt es Leute, die damit schlichtweg
überfordert sind. Sie sehen die Mails, schauen aber nicht einmal in den
Footer der Mail, wo der entsprechende Link ist, bzw. scheinen sie ein
Problem mit der Bestätigungsmail zu haben, ... Es gibt da leider
vielfältige Probleme.
Nun gut, Leute, die man an die Hand nehmen muß, gibt es überall. Ich
hatte das so verstanden, dass ihr eh eine Plattform (Forum?) habt.
Korrekt.
Post by Gustaf Mossakowski
Ich würde dann dort die Möglichkeit bieten, die Mailingliste(n) zu bestellen
und abbestellen. Die Plattform hat ja auch die Mailadresse etc. Das
Interface von Mailman würde ich nicht nutzen. Das ist sicher ein Bruch
im Layout, man muß sich nochmal anmelden etc. Einfach ein Button »Liste
abonnieren«, fertig.
Das wären viele Frontend-Programmierungen - und dann wäre immer noch das
Problem, dass Mailman recht gut, aber nicht unbedingt ideal ist. Es ist
z.B. derzeit nicht umsetzbar, dass jemand auf dem Newsserver ein
Crosspost mit f'up erstellt und dieses dann entsprechend auf den
Mailinglisten ankommt.

Der Stand meiner Programmierung ist übrigens soweit, dass alles
grundsätzlich funktioniert. D.h. man kann Listen (und einzelne Threads)
im Forum abonnieren und erhält sie im Mailinglistenformat. Man kann
darauf antworten und es landet wieder im Forum.

Was noch fehlt oder geändert werden muss:
- Crossposts werden derzeit in Einzelmails aufgesplittet
- Korrekte Behandlung von Followup-To
- Nutzung einer anderen Methode für das Posten in eine Newsgroup, damit
bessere Protokollierungen von Fehlern möglich sind
- Weiterer Vergleich mit den Kernfeatures bestehender Systeme und ggf.
die Übernahme einzelner Features

Und dann gilt es natürlich, den Betrieb zu beobachten und zu schauen, ob
die User zufrieden sind oder Vorschläge haben.

Michael
Thomas Hochstein
2011-10-05 10:02:49 UTC
Permalink
Post by Michael Vogel
Ja, Mailman hat auch Möglichkeiten, per Kommandozeile daran zu
administrieren. Sicherlich ließe sich da auch was drehen. Der Aufwand
dafür dürfte aber auch nicht unerheblich sein.
Das ist IMNSHO _deutlich_ geringer als einen lauffähigen MLM, zudem
mit dem Funktionsumfang von Mailman, zu entwickeln. Das Multiplizieren
der eingehenden Mail und der Versand an die Empfänger ist dabei echt
trivial; das kann man sogar über die aliases-Datei des MTA lösen.

Aber was ist mit Bounce-Handling einschließlich des Parsen von
Bounces, für die es kein allgemein akzeptiertes Format gibt? Was ist
mit dem automatischen Deaktivieren und Unsubscribern von Mitgliedern,
deren Adressen nicht mehr zustellbar sind? Was ist mit Moderation oder
dem Prüfen der Absenderadresse bei geschlossenen Listen? Was ist mit
der Riesen-Baustelle "MIME-Handling"?
Post by Michael Vogel
Das wären viele Frontend-Programmierungen - und dann wäre immer noch das
Problem, dass Mailman recht gut, aber nicht unbedingt ideal ist. Es ist
z.B. derzeit nicht umsetzbar, dass jemand auf dem Newsserver ein
Crosspost mit f'up erstellt und dieses dann entsprechend auf den
Mailinglisten ankommt.
Warum nicht? Mehrere Mailinglisten als Adressat der Mail und gut? ;)

Grüße,
-thh

PS: Auch hier XP/Fup2 nach de.comm.software.mailserver, weil das Thema
eher Mail((inglisten)server) sind als PHP.
Thomas 'PointedEars' Lahn
2011-10-03 09:56:50 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
RTFM. Mailinglisten funktionieren so nicht. Das 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.
Ich habe auch nicht gesagt, dass ich alle Empfänger in eine einzelne
Mail setzen möchte. Nur wenn man sich Software wie Mailman oder ezmlm
anschaut, sieht man, dass im "To"-Header immer die Mailingliste und
nicht der Empfänger steht.
Und ich habe Dir erklärt, weshalb der Grund dafür nicht ein `Bcc'-Headerfeld
sein kann.
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Stattdessen muss die Mailinglisten-Software für jeden Abonnenten eine
Kopie der E-Mail generieren. Dies geschieht üblicherweise durch das
Senden an eine Reflektor-Adresse. Im SMTP-`Envelope-To'-Headerfeldwert
der vom Reflektor für jeden Empfänger generierten E-Mail (d. h. auf dem
Briefumschlag) steht dann die Adresse des Abonnenten; im übernommenen
`To'- Headerfeldwert (d. h. dem Briefkopf) steht die Reflektor-Adresse –
denn diesen Briefkopf bekommt nur der Empfänger der E-Mail, nicht aber
die vermittelnden MTAs (Poststellen) zu sehen.
Nur wie mache ich das mit PHP?
Am besten gar nicht. Lass das den Mailserver machen, der kann das besser.

<http://www.google.com/search?q=how+to+set+up+mail+reflector&filter=0>
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Dieses Rad wurde jedoch schon mehrfach neu erfunden. Was genau gefällt
Dir an der bestehenden Software nicht?
Ich möchte gerne ein System, was sich besser in ein Forum integriert,
dass ich administriere und für das ich Erweiterungen programmiere.
Dieses Forum synchronisiert bereits jetzt mit etwa 200 Newsgroups auf
einem privaten Server. Diese Newsgroups werden wiederum mit Hilfe eines
speziellen Scripts mit verschiedenen Mailinglisten synchronisiert.
Bitte lass das! Webforen sind nicht mit Newsgroups, und Newsgroups sind
nicht mit Mailinglisten kompatibel. Ersteres sollte offensichtlich sein.
Falls Du an Letzterem zweifelst, schau Dir einfach den Postingsalat in
(de.)comp.lang.python an.
Post by Michael Vogel
Das klappt alles sehr gut,
Nein.
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang? Unter
http://de.php.net/manual/de/ref.mail.php gibt es zumindest nur eine
einzige Funktion.
Da sind schon zwei Funktionen aufgeführt. Und nur eine Ebene höher:

<http://php.net/manual/en/refs.remote.mail.php>
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-03 10:28:57 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Nur wie mache ich das mit PHP?
Am besten gar nicht. Lass das den Mailserver machen, der kann das besser.
<http://www.google.com/search?q=how+to+set+up+mail+reflector&filter=0>
Ja, aber dennoch müsste ich die Nachricht ja irgendwie von PHP aus (Also
vom Forensystem) dorthin transportieren.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich möchte gerne ein System, was sich besser in ein Forum integriert,
dass ich administriere und für das ich Erweiterungen programmiere.
Dieses Forum synchronisiert bereits jetzt mit etwa 200 Newsgroups auf
einem privaten Server. Diese Newsgroups werden wiederum mit Hilfe eines
speziellen Scripts mit verschiedenen Mailinglisten synchronisiert.
Bitte lass das! Webforen sind nicht mit Newsgroups, und Newsgroups sind
nicht mit Mailinglisten kompatibel. Ersteres sollte offensichtlich sein.
Falls Du an Letzterem zweifelst, schau Dir einfach den Postingsalat in
(de.)comp.lang.python an.
Ich sehe täglich unsere Mailinglisten/Foren/Newsgroups. Ich habe nicht
umsonst eine Forensoftware verwendet, die echtes Threading beherrscht.

Wenn die Synchronisation in (de.)comp.lang.python mit Hilfe von Mailman
versucht wurde, dann verstehe ich das Problem. Nicht umsonst hat mein
Co-Programmierer ein eigenes und wunderbares Script geschrieben, was den
Sync zwischen Mail und News erledigt.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Das klappt alles sehr gut,
Nein.
Äh, doch. Ich sehe es ja täglich auf unseren Systemen. Ich behaupte
damit ja nicht, dass es überall so klappen wird - aber bei uns geht es
recht gut.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang? Unter
http://de.php.net/manual/de/ref.mail.php gibt es zumindest nur eine
einzige Funktion.
<http://php.net/manual/en/refs.remote.mail.php>
Ja. Aber keine davon scheint sich um das Versenden von Mails zu kümmern,
mit Ausnahme von "mail()" - und das wollte ich damit ausdrücken.

Michael
Thomas 'PointedEars' Lahn
2011-10-03 11:41:01 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Nur wie mache ich das mit PHP?
Am besten gar nicht. Lass das den Mailserver machen, der kann das besser.
<http://www.google.com/search?q=how+to+set+up+mail+reflector&filter=0>
Ja, aber dennoch müsste ich die Nachricht ja irgendwie von PHP aus (Also
vom Forensystem) dorthin transportieren.
Ja. Wo siehst Du da ein Problem?
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich möchte gerne ein System, was sich besser in ein Forum integriert,
dass ich administriere und für das ich Erweiterungen programmiere.
Dieses Forum synchronisiert bereits jetzt mit etwa 200 Newsgroups auf
einem privaten Server. Diese Newsgroups werden wiederum mit Hilfe eines
speziellen Scripts mit verschiedenen Mailinglisten synchronisiert.
Bitte lass das! Webforen sind nicht mit Newsgroups, und Newsgroups sind
nicht mit Mailinglisten kompatibel. Ersteres sollte offensichtlich sein.
Falls Du an Letzterem zweifelst, schau Dir einfach den Postingsalat in
(de.)comp.lang.python an.
Ich sehe täglich unsere Mailinglisten/Foren/Newsgroups. Ich habe nicht
umsonst eine Forensoftware verwendet, die echtes Threading beherrscht.
Wenn die Synchronisation in (de.)comp.lang.python mit Hilfe von Mailman
versucht wurde, dann verstehe ich das Problem. Nicht umsonst hat mein
Co-Programmierer ein eigenes und wunderbares Script geschrieben, was den
Sync zwischen Mail und News erledigt.
Wie löst ihr das Problem, dass Newsclients ein References-Headerfeld für das
Threading benötigen, aber nicht jeder Mailclient ein solches bzw. ein
`In-Reply-To'-Headerfeld generiert?

Wie löst ihr ganz allgemein das Problem der Message-IDs?
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Das klappt alles sehr gut,
Nein.
Äh, doch. Ich sehe es ja täglich auf unseren Systemen. Ich behaupte
damit ja nicht, dass es überall so klappen wird - aber bei uns geht es
recht gut.
In dem Fall könntet ihr ja den Leuten von python-list assistieren.
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang? Unter
http://de.php.net/manual/de/ref.mail.php gibt es zumindest nur eine
einzige Funktion.
<http://php.net/manual/en/refs.remote.mail.php>
Ja. Aber keine davon scheint sich um das Versenden von Mails zu kümmern,
mit Ausnahme von "mail()" - und das wollte ich damit ausdrücken.
<http://php.net/imap_mail>
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-03 13:50:27 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Wie löst ihr das Problem, dass Newsclients ein References-Headerfeld für das
Threading benötigen, aber nicht jeder Mailclient ein solches bzw. ein
`In-Reply-To'-Headerfeld generiert?
Wenn nur ein In-Reply-To vorhanden ist, wird ein References-Header mit
dessen Inhalt erzeugt.

Postings komplett ohne In-Reply-To und ohne References sind bei uns sehr
selten.
Post by Thomas 'PointedEars' Lahn
Wie löst ihr ganz allgemein das Problem der Message-IDs?
Es gibt wenige Mailclients, die ungültige MIDs erzeugen. Da greifen wir
korrigierend ein. Bekannte Probleme sind doppelte @-Zeichen oder eine
MID, die zwar mit < anfängt, aber nicht mit > aufhört. Auch da
korrigieren wir.

Die Anzahl dieser Problem-Postings bewegt sich aber maximal im
Promillebereich.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Das klappt alles sehr gut,
Nein.
Äh, doch. Ich sehe es ja täglich auf unseren Systemen. Ich behaupte
damit ja nicht, dass es überall so klappen wird - aber bei uns geht es
recht gut.
In dem Fall könntet ihr ja den Leuten von python-list assistieren.
Sie dürfen das Script gerne verwenden: https://github.com/Shirk/SynFU
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang? Unter
http://de.php.net/manual/de/ref.mail.php gibt es zumindest nur eine
einzige Funktion.
<http://php.net/manual/en/refs.remote.mail.php>
Ja. Aber keine davon scheint sich um das Versenden von Mails zu kümmern,
mit Ausnahme von "mail()" - und das wollte ich damit ausdrücken.
<http://php.net/imap_mail>
Okay, hatte ich übersehen. Läuft auch.

Michael
Thomas 'PointedEars' Lahn
2011-10-03 14:16:50 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr das Problem, dass Newsclients ein References-Headerfeld für
das Threading benötigen, aber nicht jeder Mailclient ein solches bzw. ein
`In-Reply-To'-Headerfeld generiert?
Wenn nur ein In-Reply-To vorhanden ist, wird ein References-Header mit
dessen Inhalt erzeugt.
Das zerstört effektiv den Thread in der Newsgroup, denn im `Reference*s*'-
Headerfeldwert müssen die Message-IDs *aller* Vorpostings (zumindest aber so
vieler wie möglich) stehen; im `In-Reply-To'-Headerfeldwert steht aber in
der Regel nur eine (die der E-Mail, auf die geantwortet wurde).
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr ganz allgemein das Problem der Message-IDs?
Es gibt wenige Mailclients, die ungültige MIDs erzeugen. Da greifen wir
MID, die zwar mit < anfängt, aber nicht mit > aufhört. Auch da
korrigieren wir.
Die Anzahl dieser Problem-Postings bewegt sich aber maximal im
Promillebereich.
Ein grosses Problem mit den Message-IDs ist, dass Newsgroup und Mailingliste
*dieselben* Message-IDs verwenden müssen. Andernfalls zerstört das effektiv
Threads, an denen sowohl Newsgroup- als auch Mailinglisten-Abonnenten
teilnehmen. D. h. die Message-IDs müssen über Mailingliste *und* Newsgroup
*über einen langen Zeitraum hinweg* eindeutig sein.

Siehe auch <news:j4nd94$240$***@selene.doeblitz.net>, in einem solchen Thread.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-03 14:54:14 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr das Problem, dass Newsclients ein References-Headerfeld für
das Threading benötigen, aber nicht jeder Mailclient ein solches bzw. ein
`In-Reply-To'-Headerfeld generiert?
Wenn nur ein In-Reply-To vorhanden ist, wird ein References-Header mit
dessen Inhalt erzeugt.
Das zerstört effektiv den Thread in der Newsgroup, denn im `Reference*s*'-
Headerfeldwert müssen die Message-IDs *aller* Vorpostings (zumindest aber so
vieler wie möglich) stehen; im `In-Reply-To'-Headerfeldwert steht aber in
der Regel nur eine (die der E-Mail, auf die geantwortet wurde).
Das klappt in der Praxis sehr zuverlässig. Zumal sowieso - wie Du ja
geschrieben hast - die References-Header nicht komplett sein müssen -
und ja sogar an ihnen gespart werden muss, wenn man die maximale
Header-Größe erreicht ist.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr ganz allgemein das Problem der Message-IDs?
Es gibt wenige Mailclients, die ungültige MIDs erzeugen. Da greifen wir
MID, die zwar mit < anfängt, aber nicht mit > aufhört. Auch da
korrigieren wir.
Die Anzahl dieser Problem-Postings bewegt sich aber maximal im
Promillebereich.
Ein grosses Problem mit den Message-IDs ist, dass Newsgroup und Mailingliste
*dieselben* Message-IDs verwenden müssen.
Was sie in weit über 99% aller Fälle in unserer Lösung auch tun. Ich bin
Pragmatiker. Bevor ich lange grübele, ob etwas klappen könnte, probiere
ich es lieber aus.

Michael
Thomas 'PointedEars' Lahn
2011-10-03 16:04:52 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr das Problem, dass Newsclients ein References-Headerfeld
für das Threading benötigen, aber nicht jeder Mailclient ein solches
bzw. ein `In-Reply-To'-Headerfeld generiert?
Wenn nur ein In-Reply-To vorhanden ist, wird ein References-Header mit
dessen Inhalt erzeugt.
Das zerstört effektiv den Thread in der Newsgroup, denn im
`Reference*s*'- Headerfeldwert müssen die Message-IDs *aller* Vorpostings
(zumindest aber so vieler wie möglich) stehen; im
`In-Reply-To'-Headerfeldwert steht aber in der Regel nur eine (die der
E-Mail, auf die geantwortet wurde).
Das klappt in der Praxis sehr zuverlässig.
Für wen? Mailinglistenabonnenten und somit MUA-Nutzer oder
Newsgruppenabonnenten und somit NUA-Nutzer? Für Letztere klappt das ganz
sicher nicht. Nur *eine* Message-ID in den References ergibt in der
Newsgroup einen Thread der Länge 2.
Post by Michael Vogel
Zumal sowieso - wie Du ja geschrieben hast - die References-Header nicht
komplett sein müssen -
Es gibt einen Unterschied zwischen "nicht komplett übernommen" und
"mutwillig verstümmelt".
Post by Michael Vogel
und ja sogar an ihnen gespart werden muss, wenn man die maximale
Header-Größe erreicht ist.
Wo in RFC 5322 oder RFC 5536 ist eine maximale Header-Grösse definiert?
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Wie löst ihr ganz allgemein das Problem der Message-IDs?
Es gibt wenige Mailclients, die ungültige MIDs erzeugen. Da greifen wir
MID, die zwar mit < anfängt, aber nicht mit > aufhört. Auch da
korrigieren wir.
Die Anzahl dieser Problem-Postings bewegt sich aber maximal im
Promillebereich.
Ein grosses Problem mit den Message-IDs ist, dass Newsgroup und
Mailingliste *dieselben* Message-IDs verwenden müssen.
Was sie in weit über 99% aller Fälle in unserer Lösung auch tun. Ich bin
Pragmatiker. Bevor ich lange grübele, ob etwas klappen könnte, probiere
ich es lieber aus.
Das haben sich die Leute von Google Groups und python-list vermutlich auch
gedacht. Die Rechnung für ihre Inkompetenz müssen *sie* ja nicht zahlen,
sondern die Newsgruppen-Abonnenten!
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-04 07:47:30 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Das zerstört effektiv den Thread in der Newsgroup, denn im
`Reference*s*'- Headerfeldwert müssen die Message-IDs *aller* Vorpostings
(zumindest aber so vieler wie möglich) stehen; im
`In-Reply-To'-Headerfeldwert steht aber in der Regel nur eine (die der
E-Mail, auf die geantwortet wurde).
Das klappt in der Praxis sehr zuverlässig.
Für wen? Mailinglistenabonnenten und somit MUA-Nutzer oder
Newsgruppenabonnenten und somit NUA-Nutzer? Für Letztere klappt das ganz
sicher nicht. Nur *eine* Message-ID in den References ergibt in der
Newsgroup einen Thread der Länge 2.
Nö. Alle NUAs, die ich getestet habe, kommen damit sauber zurecht.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
und ja sogar an ihnen gespart werden muss, wenn man die maximale
Header-Größe erreicht ist.
Wo in RFC 5322 oder RFC 5536 ist eine maximale Header-Grösse definiert?
Ich müsste meinen Programmierer fragen, in welcher RFC die Größe steht.
Fakt ist, dass der INN Artikel ab einer gewissen Header-Größe ablehnt.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Ein grosses Problem mit den Message-IDs ist, dass Newsgroup und
Mailingliste *dieselben* Message-IDs verwenden müssen.
Was sie in weit über 99% aller Fälle in unserer Lösung auch tun. Ich bin
Pragmatiker. Bevor ich lange grübele, ob etwas klappen könnte, probiere
ich es lieber aus.
Das haben sich die Leute von Google Groups und python-list vermutlich auch
gedacht. Die Rechnung für ihre Inkompetenz müssen *sie* ja nicht zahlen,
sondern die Newsgruppen-Abonnenten!
Ich nutze aber die Newsgroups täglich, um die Mailinglisten zu lesen.
Dementsprechend bekomme ich es aus erster Hand mit, wenn es Probleme
gibt. Genauso unsere User, die von Mailinglisten-Abos auf Newsgroups
umgestiegen sind. Wenn mal etwas nicht so klappt wie gewünscht, bekomme
ich das ganz schnell mit und kann eingreifen.

Michael
Thomas 'PointedEars' Lahn
2011-10-04 09:46:07 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Das zerstört effektiv den Thread in der Newsgroup, denn im
`Reference*s*'- Headerfeldwert müssen die Message-IDs *aller*
Vorpostings (zumindest aber so vieler wie möglich) stehen; im
`In-Reply-To'-Headerfeldwert steht aber in der Regel nur eine (die der
E-Mail, auf die geantwortet wurde).
Das klappt in der Praxis sehr zuverlässig.
Für wen? Mailinglistenabonnenten und somit MUA-Nutzer oder
Newsgruppenabonnenten und somit NUA-Nutzer? Für Letztere klappt das ganz
sicher nicht. Nur *eine* Message-ID in den References ergibt in der
Newsgroup einen Thread der Länge 2.
Nö. Alle NUAs, die ich getestet habe, kommen damit sauber zurecht.
Interessant. Für Icedove 3.1.13 (MUA/NUA-Hybrid) und KNode 4.4.11 (NUA) ist
das tatsächlich so. Siehe <news:***@PointedEars.de>, welches
in einem Thread mit <news:***@PointedEars.de> und
<news:***@PointedEars.de> angezeigt wird, obwohl ersteres
Posting nur zweiteres direkt referenziert. Wieder was gelernt.

Welche NUAs hast Du positiv getestet?

Wahrscheinlich ist das Threading aber effizienter, wenn die References nicht
über zuviele Postings verstreut sind.
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
und ja sogar an ihnen gespart werden muss, wenn man die maximale
Header-Größe erreicht ist.
Wo in RFC 5322 oder RFC 5536 ist eine maximale Header-Grösse definiert?
Ich müsste meinen Programmierer fragen, in welcher RFC die Größe steht.
Fakt ist, dass der INN Artikel ab einer gewissen Header-Größe ablehnt.
Definiere "Header".
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Ein grosses Problem mit den Message-IDs ist, dass Newsgroup und
Mailingliste *dieselben* Message-IDs verwenden müssen.
Was sie in weit über 99% aller Fälle in unserer Lösung auch tun. Ich bin
Pragmatiker. Bevor ich lange grübele, ob etwas klappen könnte, probiere
ich es lieber aus.
Das haben sich die Leute von Google Groups und python-list vermutlich
auch gedacht. Die Rechnung für ihre Inkompetenz müssen *sie* ja nicht
zahlen, sondern die Newsgruppen-Abonnenten!
Ich nutze aber die Newsgroups täglich, um die Mailinglisten zu lesen.
Dementsprechend bekomme ich es aus erster Hand mit, wenn es Probleme
gibt. Genauso unsere User, die von Mailinglisten-Abos auf Newsgroups
umgestiegen sind. Wenn mal etwas nicht so klappt wie gewünscht, bekomme
ich das ganz schnell mit und kann eingreifen.
Das setzt aber voraus, dass Du dafür einen *echten* NUA wie z. B. KNode
verwendest, und eben *nicht* einen MUA/NUA-Hybrid wie z. B. Mozilla
Thunderbird 7.0, mit dem Du hier postest.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-04 09:58:53 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Für wen? Mailinglistenabonnenten und somit MUA-Nutzer oder
Newsgruppenabonnenten und somit NUA-Nutzer? Für Letztere klappt das ganz
sicher nicht. Nur *eine* Message-ID in den References ergibt in der
Newsgroup einen Thread der Länge 2.
Nö. Alle NUAs, die ich getestet habe, kommen damit sauber zurecht.
Interessant. Für Icedove 3.1.13 (MUA/NUA-Hybrid) und KNode 4.4.11 (NUA) ist
Posting nur zweiteres direkt referenziert. Wieder was gelernt.
Welche NUAs hast Du positiv getestet?
tin, Thunderbird, Opera, MT-Newswatcher, Newsportal.
Post by Thomas 'PointedEars' Lahn
Wahrscheinlich ist das Threading aber effizienter, wenn die References nicht
über zuviele Postings verstreut sind.
Je mehr References, desto besser. Insbesondere, wenn Supersedes ins
Spiel kommen, klar.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
und ja sogar an ihnen gespart werden muss, wenn man die maximale
Header-Größe erreicht ist.
Wo in RFC 5322 oder RFC 5536 ist eine maximale Header-Grösse definiert?
Ich müsste meinen Programmierer fragen, in welcher RFC die Größe steht.
Fakt ist, dass der INN Artikel ab einer gewissen Header-Größe ablehnt.
Definiere "Header".
Alles bis zur ersten Leerzeile.
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Das haben sich die Leute von Google Groups und python-list vermutlich
auch gedacht. Die Rechnung für ihre Inkompetenz müssen *sie* ja nicht
zahlen, sondern die Newsgruppen-Abonnenten!
Ich nutze aber die Newsgroups täglich, um die Mailinglisten zu lesen.
Dementsprechend bekomme ich es aus erster Hand mit, wenn es Probleme
gibt. Genauso unsere User, die von Mailinglisten-Abos auf Newsgroups
umgestiegen sind. Wenn mal etwas nicht so klappt wie gewünscht, bekomme
ich das ganz schnell mit und kann eingreifen.
Das setzt aber voraus, dass Du dafür einen *echten* NUA wie z. B. KNode
verwendest, und eben *nicht* einen MUA/NUA-Hybrid wie z. B. Mozilla
Thunderbird 7.0, mit dem Du hier postest.
Wieso? Ich hab ja auch Tests mit "echten" NUAs gefahren. So lange ich
nichts Grundsätzliches ändere, kann ich die NGs auch mit einem Hybriden
nutzen.

BTW: Ich könnte mal eine Nutzungsstatistik fahren. Wäre spannend zu
sehen, was alles auf dem Server so an Clients genutzt wird.

Michael
Stefan+ (Stefan Froehlich)
2011-10-04 11:22:17 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
im `Reference*s*'- Headerfeldwert müssen die Message-IDs *aller*
Vorpostings (zumindest aber so vieler wie möglich) stehen; [...]
Für Letztere klappt das [Kuerzen] ganz sicher nicht. Nur *eine*
Message-ID in den References ergibt in der Newsgroup einen Thread der
Länge 2.
Interessant. Für Icedove 3.1.13 (MUA/NUA-Hybrid) und KNode 4.4.11 (NUA)
ist das tatsächlich so. [...]
Wahrscheinlich ist das Threading aber effizienter, wenn die References
nicht über zuviele Postings verstreut sind.
Das Problem ist insofern nicht ganz neu, als in laengeren
Diskussionen die References schon einmal die zulaessige
Maximallaenge (fuer eine konkrete Implementierung eines NUA)
ueberschreiten koennen - dann muss ohnehin gekuerzt werden.

RFC 1036 meint dazu:
| It is permissible to not include the entire previous "References"
| line if it is too long. An attempt should be made to include a
| reasonable number of backwards references.

Mit "Reasonable" war wohl nicht gerade nur die letzte Referenz gemeint,
aber verstehen muesste es dennoch jeder korrekt implementierte NUA.

RFC5536 ist da noch etwas rigoroser und nimmt gleich gar keine Bezug
mehr auf die Anzahl:
| A "followup" is an article containing a response to the contents of
| an earlier article, its "precursor". Every followup includes a
| "References" header field identifying that precursor (but note
| that non-followup articles may also use a References header field).

Im Gedaechtnis habe ich zwar, dass man beim Kuerzen den ersten plus
moeglichst viele der letzten vorangehenden Artikel referenzieren
sollte, ich finde aber ad hoc nirgendwo eine Norm, die das
bestaetigen wuerde.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - keiner treibt stummer geschweige denn dummer.
(Sloganizer)
Michael Vogel
2011-10-04 12:11:41 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Im Gedaechtnis habe ich zwar, dass man beim Kuerzen den ersten plus
moeglichst viele der letzten vorangehenden Artikel referenzieren
sollte, ich finde aber ad hoc nirgendwo eine Norm, die das
bestaetigen wuerde.
Das habe ich auch noch im Gedächtnis. So gehen wir beim Kürzen und beim
Erstellen der Newsbeiträge aus Forenbeiträgen auch vor.

Michael
Thomas Gohel
2011-10-04 13:50:00 UTC
Permalink
Stefan Froehlich meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"

Hallo Stefan,
Post by Stefan+ (Stefan Froehlich)
Im Gedaechtnis habe ich zwar, dass man beim Kuerzen den ersten plus
moeglichst viele der letzten vorangehenden Artikel referenzieren
sollte, ich finde aber ad hoc nirgendwo eine Norm, die das
bestaetigen wuerde.
Die erste originale MessageID bleibt immer bestehen und gute Clients
kürzen den References-Header so, bis er wieder weniger als 1000 Zeichen
hat. Dabei wird beginnend zuerst der zweiten Eintrag herausgeworfen und
dann die folgenden MessageIDs. Minimaler Konsens ist im übrigen der
Erhalt der ersten (originalen & ältesten) MessageID und der jeweils
drei letzten (jüngsten) MessageIDs. Damit muß jeder konforme Usenet-
Client zurecht kommen.

Das Sichern der References über Gate-Grenzen hinweg ist nicht weiter
kompliziert, leider aber mit technischem Aufwand verbunden. Wer es
wirklich sicher gestalten will, muß die References und die MessageID
extern am Gate sichern und für den externen Umweg mit einer neuen ID
versehen. Auf dem Rückweg restauriert das Gate anhand der ID wieder
die Header und stellt nebenbei sicher, das kein Spam das Gate flutet.

Tschau,

--------------
/ h o m a s
--
Der neue Internet Trend: Abstossende Postings! Verfasse die Mail in
HTML, niemals mit Realnamen, haenge immer das Original-Posting als
Fullquote an die Antwort, signiere alles konsequent mit einer Visiten-
karte und Du wirst reichlich die diversen Filter begluecken. :-)))))))
Thomas Gohel
2011-10-04 13:36:00 UTC
Permalink
Michael Vogel meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"

Hallo Michael,
Post by Michael Vogel
Ich sehe täglich unsere Mailinglisten/Foren/Newsgroups. Ich habe
nicht umsonst eine Forensoftware verwendet, die echtes Threading
beherrscht.
Nur mal so zwei provokative Fragen:

1.) Um welche Foren-Software handelt es sich?
2.) Der Nutzer kann auch mit dem Threading umgehen?

Gerade bei der zweiten Frage habe ich so mein Problem, da der geneigte
DAU einfach die Threading-Ansicht im Forum ausschaltet, da er diese
für viel zu unübersichtliuch hält.


Tschau,

--------------
/ h o m a s
--
Kill-, Filter- und Scorefiles: Die modernen Schallschutzwaende des Usenet.
Michael Vogel
2011-10-04 14:01:06 UTC
Permalink
Moin!
Post by Thomas Gohel
1.) Um welche Foren-Software handelt es sich?
MyBB. Lässt sich genial einfach per Plugin erweitern, ohne eine einzige
Zeile Code im Basiscode ändern zu müssen. Ist ideal für die
Updatesicherheit.
Post by Thomas Gohel
2.) Der Nutzer kann auch mit dem Threading umgehen?
Indirekt. Ich habe den unteren "Antworten"-Button versteckt, der einfach
eine Antwort auf den Gesamtthread ist. Insbesondere in den Bereichen, wo
etwa 70% aller Postings aus ML und Newsgroup kommen, klappt das sehr gut.

In den Bereichen, wo die Forenuser eher 90% stellen, geht es so
halbwegs. Es gibt da mehr Leute, die dann doch dem Thread antworten.
Aber sobald jemand per Zitat antwortet, ist die korrekte Verknüpfung da.
Post by Thomas Gohel
Gerade bei der zweiten Frage habe ich so mein Problem, da der geneigte
DAU einfach die Threading-Ansicht im Forum ausschaltet, da er diese
für viel zu unübersichtliuch hält.
Die ist aber für das Erstellen zum Glück irrelevant.

Michael
Thomas Gohel
2011-10-05 21:00:00 UTC
Permalink
Michael Vogel meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"

Hallo Michael,
Post by Michael Vogel
MyBB. Lässt sich genial einfach per Plugin erweitern, ohne eine
einzige Zeile Code im Basiscode ändern zu müssen. Ist ideal für die
Updatesicherheit.
Ich finde da jetzt auf der Homepage aber auf die Schnelle kein NNTP-
Plugin und in den bisherigen Postings scheinst Du es auch nicht
erwähnt zu haben, mhhh? Wenigstens scheint aber TapaTalk schon
mal unterstützt zu werden. ;-)
Post by Michael Vogel
Post by Thomas Gohel
2.) Der Nutzer kann auch mit dem Threading umgehen?
Indirekt. Ich habe den unteren "Antworten"-Button versteckt, der
einfach eine Antwort auf den Gesamtthread ist.
Sehr gute Idee. ;-)

Tschau,

--------------
/ h o m a s
--
Der neue Internet Trend: Abstossende Postings! Verfasse die Mail in
HTML, niemals mit Realnamen, haenge immer das Original-Posting als
Fullquote an die Antwort, signiere alles konsequent mit einer Visiten-
karte und Du wirst reichlich die diversen Filter begluecken. :-)))))))
Michael Vogel
2011-10-05 22:09:04 UTC
Permalink
Moin!
Post by Thomas Gohel
Michael Vogel meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"
Hallo Michael,
Post by Michael Vogel
MyBB. Lässt sich genial einfach per Plugin erweitern, ohne eine
einzige Zeile Code im Basiscode ändern zu müssen. Ist ideal für die
Updatesicherheit.
Ich finde da jetzt auf der Homepage aber auf die Schnelle kein NNTP-
Plugin und in den bisherigen Postings scheinst Du es auch nicht
erwähnt zu haben, mhhh? Wenigstens scheint aber TapaTalk schon
mal unterstützt zu werden. ;-)
Das NNTP-Plugin ist von mir erstellt, ist aber auf den MyBB-Seiten nicht
verlinkt. Ich stelle es allerdings auf https://github.com/annando/Syncom
zur Verfügung. Es ist zwar grundsätzlich daraufhin geschrieben, dass es
universell einsetzbar wäre, es gibt aber ein paar Details, die derzeit
hart verdrahtet sind oder nur in unserem speziellen Setup einen Sinn
ergeben.
Post by Thomas Gohel
Post by Michael Vogel
Post by Thomas Gohel
2.) Der Nutzer kann auch mit dem Threading umgehen?
Indirekt. Ich habe den unteren "Antworten"-Button versteckt, der
einfach eine Antwort auf den Gesamtthread ist.
Sehr gute Idee. ;-)
Es gibt wirklich wenige, die sich daraufhin die Mühe machen, nach oben
zu scrollen, wo der Button noch existiert.

Michael
Michael Vogel
2011-10-05 22:23:14 UTC
Permalink
Post by Thomas Gohel
Ich finde da jetzt auf der Homepage aber auf die Schnelle kein NNTP-
Plugin und in den bisherigen Postings scheinst Du es auch nicht
erwähnt zu haben, mhhh?
Der Server um den es geht, ist http://news.piratenpartei.de

Und nicht wundern, dass viele Bereiche leer aussehen - die meisten
Bereiche sind so eingestellt, dass man Beiträge erst nach Anmeldung
sehen kann.

Weitere Infos unter http://wiki.piratenpartei.de/Syncom

Michael
Thomas Hochstein
2011-10-05 10:02:49 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Bitte lass das! Webforen sind nicht mit Newsgroups, und Newsgroups sind
nicht mit Mailinglisten kompatibel.
Du laberst. Newsgroups und Mailinglisten sind schon aufgrund des
identischen Formats kompatibel und auf einfachem Niveau (!) trivial zu
gaten; für komplexere Lösungen (bspw. Mails an mehrere Mailinglisten
und Crosspostings gegeneinander umsetzen) kannst Du Dir Dienste wie
gmane bzw. linux.* anschauen.
Post by Thomas 'PointedEars' Lahn
Ersteres sollte offensichtlich sein.
Es ist alles andere als offensichtlich, und Michael leistet bereits
seit Jahren sehr wertvolle Arbeit bei der Umsetzung von
Webforenbeiträgen in Postings und umgekehrt (Stichwort Syncom).

Du solltest vielleicht einmal über den Tellerrand schauen.

-thh
Thomas Hochstein
2011-10-05 09:51:26 UTC
Permalink
Post by Michael Vogel
Ich habe auch nicht gesagt, dass ich alle Empfänger in eine einzelne
Mail setzen möchte. Nur wenn man sich Software wie Mailman oder ezmlm
anschaut, sieht man, dass im "To"-Header immer die Mailingliste und
nicht der Empfänger steht.
Bei Mailman ist das IIRC konfigurierbar, Stichwort "Personalisation";
man will das aber idR gut überlegen, weil man dann wirklich jede
individuelle E-Mail an jedem Empfänger einzeln generieren muß.
Post by Michael Vogel
Nur wie mache ich das mit PHP? Zumindest bei mail() scheint auch immer
die Adresse im "To"-Header eine Mail zu erhalten.
Sicher. mail() kippt per Default einfach die ganze Mail per Pipe in
das in der php.ini konfigurierte Programm, und das ist idR eine
Variante von "sendmail -t", und das wiederum ist ein Aufruf des
installierten MTA, der per "-t" angewiesen wird, To/CC/BCC zu parsen
und die Empfänger daraus zu entnehmen.
Post by Michael Vogel
Ich könnte jetzt zwar
auch anfangen, direkt SMTP mit dem Mailserver zu sprechen, aber das
wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)

Ich kann <http://pear.php.net/package/Mail/> empfehlen; das löst
vieles IMO elegant, was mit mail() zum Heulen ist.
Post by Michael Vogel
Das Problem ist nur die Koordination mit den ganzen Mailinglistenadmins.
Es sind viele verschiedene, und das ist einfach immer anstrengend, zumal
meiner Ansicht nach viele Listenadmins nicht Listenadmins sein möchten.
Es gibt außerdem immer wieder Mailinglistenuser, die mit dem Umgang
überfordert sind. Sie schaffen es zwar noch, sich anzumelden, aber haben
Probleme mit der Abmeldung.
Ich habe die Erfahrung gemacht, daß sich dieses Problem idR einfacher
lösen läßt, wenn man nicht einen eigenen MLM schreibt - das ist
nämlich teilweise wirklich eine anstrengende Sache -, sondern lieber
etwas zusammen hackt, mit dem sich ein bestehender MLM über ein
eigenes Interface steuern läßt. Viele MLMs lassen sich (auch) per Mail
steuern; Mailman läßt sich über die Kommandozeile steuern, d.h. da
kann man eigene Aufrufe implementieren.
Post by Michael Vogel
Es ist mir klar, dass es noch viele Details gibt, die ich umsetzen muss,
damit mein System genauso stabil läuft. Aber da ich mit keiner Software
wirklich vollständig zufrieden bin, schreibe (oder erweitere) ich sie
mir lieber selber.
Gerade bei Mail- und Newsservern und -clients wäre ich da aufgrund der
Komplexität der Aufgabe sehr zurückhaltend und würde lieber vorhandene
Software erweitern.
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Es gibt noch andere "Mail-Funktionen".
Unter PHP? Nur als PEAR oder auch im Standardumfang?
Als PEAR, siehe oben.

Grüße,
-thh
Michael Vogel
2011-10-05 12:20:26 UTC
Permalink
Moin!
Post by Thomas Hochstein
Post by Michael Vogel
Ich habe auch nicht gesagt, dass ich alle Empfänger in eine einzelne
Mail setzen möchte. Nur wenn man sich Software wie Mailman oder ezmlm
anschaut, sieht man, dass im "To"-Header immer die Mailingliste und
nicht der Empfänger steht.
Bei Mailman ist das IIRC konfigurierbar, Stichwort "Personalisation";
man will das aber idR gut überlegen, weil man dann wirklich jede
individuelle E-Mail an jedem Empfänger einzeln generieren muß.
Mir wäre natürlich erheblich lieber, wenn ich die Last da auf den
Mailserver weitergeben könnte.
Post by Thomas Hochstein
Post by Michael Vogel
Nur wie mache ich das mit PHP? Zumindest bei mail() scheint auch immer
die Adresse im "To"-Header eine Mail zu erhalten.
Sicher. mail() kippt per Default einfach die ganze Mail per Pipe in
das in der php.ini konfigurierte Programm, und das ist idR eine
Variante von "sendmail -t", und das wiederum ist ein Aufruf des
installierten MTA, der per "-t" angewiesen wird, To/CC/BCC zu parsen
und die Empfänger daraus zu entnehmen.
Ich brauche definitiv noch eine Möglichkeit, nach MIDs zu suchen ...
Post by Thomas Hochstein
Post by Michael Vogel
Ich könnte jetzt zwar
auch anfangen, direkt SMTP mit dem Mailserver zu sprechen, aber das
wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)
Nur dann müsste ich auch das Error-Handling übernehmen.
Post by Thomas Hochstein
Ich kann<http://pear.php.net/package/Mail/> empfehlen; das löst
vieles IMO elegant, was mit mail() zum Heulen ist.
Ich glaube, ich nutze das Paket bereits für die NNTP-Kommunikation. Nur
müsste ich da dann wohl mit mehr Spooling arbeiten. Wenn der Mailserver
nicht arbeitet, wäre ansonsten die Nachricht weg.
Post by Thomas Hochstein
Post by Michael Vogel
Das Problem ist nur die Koordination mit den ganzen Mailinglistenadmins.
Es sind viele verschiedene, und das ist einfach immer anstrengend, zumal
meiner Ansicht nach viele Listenadmins nicht Listenadmins sein möchten.
Es gibt außerdem immer wieder Mailinglistenuser, die mit dem Umgang
überfordert sind. Sie schaffen es zwar noch, sich anzumelden, aber haben
Probleme mit der Abmeldung.
Ich habe die Erfahrung gemacht, daß sich dieses Problem idR einfacher
lösen läßt, wenn man nicht einen eigenen MLM schreibt - das ist
nämlich teilweise wirklich eine anstrengende Sache -, sondern lieber
etwas zusammen hackt, mit dem sich ein bestehender MLM über ein
eigenes Interface steuern läßt. Viele MLMs lassen sich (auch) per Mail
steuern; Mailman läßt sich über die Kommandozeile steuern, d.h. da
kann man eigene Aufrufe implementieren.
Ja, ich weiß. Eine zusätzliche Schwierigkeit ist, dass ML-Server und
Newsserver auf getrennten Systemen laufen. Aber das ist eine
Schwierigkeit, kein Hinderungsgrund.
Post by Thomas Hochstein
Post by Michael Vogel
Es ist mir klar, dass es noch viele Details gibt, die ich umsetzen muss,
damit mein System genauso stabil läuft. Aber da ich mit keiner Software
wirklich vollständig zufrieden bin, schreibe (oder erweitere) ich sie
mir lieber selber.
Gerade bei Mail- und Newsservern und -clients wäre ich da aufgrund der
Komplexität der Aufgabe sehr zurückhaltend und würde lieber vorhandene
Software erweitern.
Verstehe ich. Es ist auch teilweise ein Experiment, so eine Art von
Machbarkeitsstudie. Ich bin eher der Backend- und weniger
Frontendentwickler. Deswegen würde ich immer eher am Core schreiben
statt ein Frontend für ein Core zu entwickeln.

Michael
Thomas Hochstein
2011-10-05 15:49:03 UTC
Permalink
Post by Michael Vogel
Ich brauche definitiv noch eine Möglichkeit, nach MIDs zu suchen ...
Sorry. Ich bin da einfach gewöhnt dran, Postings so zu referenzieren.
Ist aber insofern bei mir recht einfach, als Datum und Uhrzeit
hineinkodiert sind; obiges wäre also identisch mit "das Posting von
heute um 11.25 Uhr" ;).

Ansonsten für Thunderbird (ungetestet, nur empfohlen gesehen):
<https://addons.mozilla.org/de/thunderbird/addon/messageid-finder/>
<https://addons.mozilla.org/de/thunderbird/addon/mnenhy/>

Wenn Google mal wieder Alzheimer hat und man nur das Posting sucht,
aber nicht zwingend den Thread braucht:
<http://al.howardknight.net/>
Post by Michael Vogel
Post by Thomas Hochstein
Post by Michael Vogel
Ich könnte jetzt zwar
auch anfangen, direkt SMTP mit dem Mailserver zu sprechen, aber das
wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)
Nur dann müsste ich auch das Error-Handling übernehmen.
Mußt Du doch sowieso?!

Da sehe ich eigentlich keinen Unterschied.
Post by Michael Vogel
Post by Thomas Hochstein
Ich kann<http://pear.php.net/package/Mail/> empfehlen; das löst
vieles IMO elegant, was mit mail() zum Heulen ist.
Ich glaube, ich nutze das Paket bereits für die NNTP-Kommunikation. Nur
müsste ich da dann wohl mit mehr Spooling arbeiten. Wenn der Mailserver
nicht arbeitet, wäre ansonsten die Nachricht weg.
Ist das bei mail() denn anders? Der Unterschied kann doch nur sein,
dass im ersten Fall der Mailserver nicht nur überhaupt lauffähig,
sondern auch per SMTP (lokal) erreichbar sein muß.
Post by Michael Vogel
Post by Thomas Hochstein
Ich habe die Erfahrung gemacht, daß sich dieses Problem idR einfacher
lösen läßt, wenn man nicht einen eigenen MLM schreibt - das ist
nämlich teilweise wirklich eine anstrengende Sache -, sondern lieber
etwas zusammen hackt, mit dem sich ein bestehender MLM über ein
eigenes Interface steuern läßt. Viele MLMs lassen sich (auch) per Mail
steuern; Mailman läßt sich über die Kommandozeile steuern, d.h. da
kann man eigene Aufrufe implementieren.
Ja, ich weiß. Eine zusätzliche Schwierigkeit ist, dass ML-Server und
Newsserver auf getrennten Systemen laufen. Aber das ist eine
Schwierigkeit, kein Hinderungsgrund.
Ich wollte immer mal testen, ob man Mailman einfach per Mailkommando
fernsteuern kann; mit Majordomo ging das prima. Ansonsten kann man
sich ja mit verhältnismäßig wenig Aufwand eine Web-API auf dem
ML-Server aufsetzen, die man dann von außen ansteuern kann. Irgendwas
XMLiges oder SOAPiges ...

Grüße,
-thh
Stefan+ (Stefan Froehlich)
2011-10-05 20:00:35 UTC
Permalink
Post by Thomas Hochstein
Post by Michael Vogel
Ich brauche definitiv noch eine Möglichkeit, nach MIDs zu suchen ...
Sorry. Ich bin da einfach gewöhnt dran, Postings so zu referenzieren.
Ist aber insofern bei mir recht einfach, als Datum und Uhrzeit
hineinkodiert sind; obiges wäre also identisch mit "das Posting von
heute um 11.25 Uhr" ;).
Was auch nicht viel hilft, wenn man z.B. mit tin arbeitet, weil der
Msg-Ids nur in der gleichen Gruppe findet. Ein (bewusst) ungeloestes
Problem seit Jahrzehnten :-/

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Lästern ohne Grenzen - Stefan!
(Sloganizer)
Thomas Hochstein
2011-10-05 21:34:22 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Was auch nicht viel hilft, wenn man z.B. mit tin arbeitet, weil der
Msg-Ids nur in der gleichen Gruppe findet. Ein (bewusst) ungeloestes
Problem seit Jahrzehnten :-/
Tatsächlich? Bei tin? :-O Das wundert mich jetzt doch sehr.
Michael Vogel
2011-10-05 21:21:04 UTC
Permalink
Post by Thomas Hochstein
Post by Michael Vogel
Post by Thomas Hochstein
Post by Michael Vogel
Ich könnte jetzt zwar
auch anfangen, direkt SMTP mit dem Mailserver zu sprechen, aber das
wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)
Nur dann müsste ich auch das Error-Handling übernehmen.
Mußt Du doch sowieso?!
Da sehe ich eigentlich keinen Unterschied.
Nicht wirklich. das mail()-Kommando übergibt an den lokalen Postfix. Und
der spoolt die Nachrichten auch dann, wenn ansonsten nichts läuft. So
viel ich weiß werden die Nachrichten sogar gespoolt, wenn der
Postfix-Daemon nicht läuft, nur das Binary muss da sein.
Post by Thomas Hochstein
Post by Michael Vogel
Ich glaube, ich nutze das Paket bereits für die NNTP-Kommunikation. Nur
müsste ich da dann wohl mit mehr Spooling arbeiten. Wenn der Mailserver
nicht arbeitet, wäre ansonsten die Nachricht weg.
Ist das bei mail() denn anders? Der Unterschied kann doch nur sein,
dass im ersten Fall der Mailserver nicht nur überhaupt lauffähig,
sondern auch per SMTP (lokal) erreichbar sein muß.
Siehe oben.
Post by Thomas Hochstein
Post by Michael Vogel
Ja, ich weiß. Eine zusätzliche Schwierigkeit ist, dass ML-Server und
Newsserver auf getrennten Systemen laufen. Aber das ist eine
Schwierigkeit, kein Hinderungsgrund.
Ich wollte immer mal testen, ob man Mailman einfach per Mailkommando
fernsteuern kann; mit Majordomo ging das prima. Ansonsten kann man
sich ja mit verhältnismäßig wenig Aufwand eine Web-API auf dem
ML-Server aufsetzen, die man dann von außen ansteuern kann. Irgendwas
XMLiges oder SOAPiges ...
Mittlerweile eher REST.

Michael
Thomas Hochstein
2011-10-05 21:46:00 UTC
Permalink
Post by Michael Vogel
Post by Thomas Hochstein
Post by Michael Vogel
Nur dann müsste ich auch das Error-Handling übernehmen.
Mußt Du doch sowieso?!
Da sehe ich eigentlich keinen Unterschied.
Nicht wirklich. das mail()-Kommando übergibt an den lokalen Postfix. Und
der spoolt die Nachrichten auch dann, wenn ansonsten nichts läuft. So
viel ich weiß werden die Nachrichten sogar gespoolt, wenn der
Postfix-Daemon nicht läuft, nur das Binary muss da sein.
Und lauffähig; ich weiß bspw. nicht, wie das bei einer fehlerhaften
Konfiguration aussieht. Aber das ist richtig, ein Vorteil des direkten
Aufrufs des Postfix (sei es jetzt via mail() oder anderweitig).

Letzteres mußt Du aber nicht per mail() machen; das geht auch mit dem
PEAR-Modul (das vielleicht - man müßte mal reingucken - die Empfänger
auch nicht aus dem To/CC/BCC klaubt, sondern deren direkte Angabe
ermöglicht) oder auch direkt, indem Du schlicht aus PHP heraus postfix
(bzw. sendmail, das ist ja ein geeigneter Symlink) aufrufst.

Das anderweitig schon genannte
| cat mail-with-body-and-headers | /usr/sbin/sendmail -i -fFROMADDR RECIPIENT RECIPIENT ...
funktioniert durchaus. (Du weißt vermutlich besser als ich, wie viele
Parameter man so via Shell übergeben kann. ;))
Post by Michael Vogel
Post by Thomas Hochstein
Ich wollte immer mal testen, ob man Mailman einfach per Mailkommando
fernsteuern kann; mit Majordomo ging das prima. Ansonsten kann man
sich ja mit verhältnismäßig wenig Aufwand eine Web-API auf dem
ML-Server aufsetzen, die man dann von außen ansteuern kann. Irgendwas
XMLiges oder SOAPiges ...
Mittlerweile eher REST.
Oder das, ja. (Was auch immer das jetzt genau ist. ;)) Da hänge ich
ein paar Jahr(zehnt)e der Entwicklung hinterher. Vielleicht finde ich
irgendwann mal eine gute Einführung und Erläuterung dazu (und dann
auch die Zeit, sie zu lesen und auszuprobieren *seufz*).

Grüße,
-thh
Michael Vogel
2011-10-06 08:39:58 UTC
Permalink
Moin!
Post by Thomas Hochstein
Post by Michael Vogel
Post by Thomas Hochstein
Ich wollte immer mal testen, ob man Mailman einfach per Mailkommando
fernsteuern kann; mit Majordomo ging das prima. Ansonsten kann man
sich ja mit verhältnismäßig wenig Aufwand eine Web-API auf dem
ML-Server aufsetzen, die man dann von außen ansteuern kann. Irgendwas
XMLiges oder SOAPiges ...
Mittlerweile eher REST.
Oder das, ja. (Was auch immer das jetzt genau ist. ;)) Da hänge ich
ein paar Jahr(zehnt)e der Entwicklung hinterher. Vielleicht finde ich
irgendwann mal eine gute Einführung und Erläuterung dazu (und dann
auch die Zeit, sie zu lesen und auszuprobieren *seufz*).
REST nutzt die HTTP-eigenen Methoden zur Kommunikation. D.h. Variablen
werden per POST oder GET übertragen, Fehlercodes gehen per
HTTP-Fehlercodes zurück. Daten werden per JSON zurückgeliefert. REST hat
erheblich weniger Overhead als SOAP.

Michael
Thomas Gohel
2011-10-05 21:05:00 UTC
Permalink
Michael Vogel meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"

Hallo Michael,
Post by Michael Vogel
Post by Thomas Hochstein
Ich könnte jetzt zwar auch anfangen, direkt SMTP mit dem Mailserver
zu sprechen, aber das wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)
Nur dann müsste ich auch das Error-Handling übernehmen.
Langfristig wäre die direkte Kommunikation mit dem Mailserver die
einfachere Alternative, da Du so direkt an die entsprechenden
Response-Codes des Servers heran kommen würdest, was das ganze
Error-Handling mit den entsprechenden Teilnehmern der Mailingliste
vereinfachen würde.

Kurzfristig ist das aber natürlich erstmal ein Mehraufwand, aber
SMTP ist nicht so schwierig wie es zuerst scheint, zumal Du die
Routinen nur auf Deinen eigenem Mailserver abstimmen musst und zur
Not läßt sich dieser auch noch etwas optimieren.
Post by Michael Vogel
Ja, ich weiß. Eine zusätzliche Schwierigkeit ist, dass ML-Server und
Newsserver auf getrennten Systemen laufen. Aber das ist eine
Schwierigkeit, kein Hinderungsgrund.
Bei direktem lokalem SMTP ist das kein Problem.


Tschau,

--------------
/ h o m a s
--
email : ***@gohel.de / ***@basicguru.de (PGP-Key available)
www : http://www.gohel.de / http://www.pbhq.de (PowerBASIC)
filter: html-postings, fullquotes, no realnames & no valid adresses
Michael Vogel
2011-10-05 22:14:15 UTC
Permalink
Moin!
Post by Thomas Gohel
Michael Vogel meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"
Hallo Michael,
Post by Michael Vogel
Post by Thomas Hochstein
Ich könnte jetzt zwar auch anfangen, direkt SMTP mit dem Mailserver
zu sprechen, aber das wollte ich mir eigentlich ersparen.
Eleganter wäre das. :)
Nur dann müsste ich auch das Error-Handling übernehmen.
Langfristig wäre die direkte Kommunikation mit dem Mailserver die
einfachere Alternative, da Du so direkt an die entsprechenden
Response-Codes des Servers heran kommen würdest, was das ganze
Error-Handling mit den entsprechenden Teilnehmern der Mailingliste
vereinfachen würde.
Ich denke, ich würde dann mit einem weiteren Spoolordner arbeiten, in
dem ich die zu versendenden Mails ablegen würde, die dann von einem
getrennten Prozess abgearbeitet würden. So kann es nicht passieren, dass
Mails verloren gehen.
Post by Thomas Gohel
Kurzfristig ist das aber natürlich erstmal ein Mehraufwand, aber
SMTP ist nicht so schwierig wie es zuerst scheint,
Ich weiß, ich spreche SMTP sozusagen flüssig :)
Post by Thomas Gohel
Post by Michael Vogel
Ja, ich weiß. Eine zusätzliche Schwierigkeit ist, dass ML-Server und
Newsserver auf getrennten Systemen laufen. Aber das ist eine
Schwierigkeit, kein Hinderungsgrund.
Bei direktem lokalem SMTP ist das kein Problem.
Das bezog sich auf etwas ganz anderes (Fernsteuern der ML-Software vom
Forum aus)

Michael
Thomas Hochstein
2011-10-05 09:50:09 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
RTFM. Mailinglisten funktionieren so nicht.
Man implementiert es besser anders, ja.
Post by Thomas 'PointedEars' Lahn
Das 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.
Post by Thomas 'PointedEars' Lahn
Stattdessen muss die Mailinglisten-Software für jeden Abonnenten eine Kopie
der E-Mail generieren.
Es wäre hilfreich, wenn Du nicht öfters einmal in einem gerne ziemlich
unhöflichen Brustton der Überzeugung falsche Tatsachen verkünden
würdest.

Es 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.
Post by Thomas 'PointedEars' Lahn
Dies geschieht üblicherweise durch das Senden an
eine Reflektor-Adresse.
Was Du "Reflektor" nennst, ist in der Regel der Mailteil der
Mailinglisten-Software.
Post by Thomas 'PointedEars' Lahn
Im SMTP-`Envelope-To'-Headerfeldwert der vom
Reflektor für jeden Empfänger generierten E-Mail (d. h. auf dem
Briefumschlag) steht dann die Adresse des Abonnenten; im übernommenen `To'-
Headerfeldwert (d. h. dem Briefkopf) steht die Reflektor-Adresse – denn
diesen Briefkopf bekommt nur der Empfänger der E-Mail, nicht aber die
vermittelnden MTAs (Poststellen) zu sehen.
Es gibt keinen "SMTP-`Envelope-To'-Headerfeldwert" in diesem Sinne.
Die Mailinglisten-Software spricht idR direkt SMPT mit dem MTA und
generiert dann im SMTP-Dialog für jeden Adressaten [1] eine passende
"RCPT TO:"-Zeile, worauf sie dann nach Abschluß aller dieser Zeilen
_einmal_ Header und Body der Mail einliefert [2].

Genau dasselbe passiert, wenn man es wie Michael macht - oder wenn die
Mailinglisten-Software kein SMTP mit dem MTA spricht, sondern die Mail
direkt über einen Aufruf des MTA (sendmail-Interface) übergibt.

[1] Gute Software sortiert die Adressaten domainweise, dann kann
nämlich auch der MTA die Zustellung blockweise übernehmen.

[2] Weil es im Standard definierte und vor allem in der Praxis
vorkommendere niedrigere Grenzwerte für die maximal akzeptierte
Anzahl von RCPT TO in Folge gibt, werden meistens nicht mehr als
ca. 100 RCPT TOs in Folge abgekippt, für 1.000 Adressaten also
insgesamt der Mailinhalt 10x (an jeweils 100 Adressaten)
eingeliefert.

So (!) funktionieren MLMs.

Es gibt daneben _auch_ die Möglichkeit, die Mail an jeden Adressaten
individuell zu generieren. Das macht man aber schon aufgrund des
Performance-Einbruchs nur dann, wenn man den Mails individuelle
Merkmale verpassen muß, also bspw. auch im To: die jeweils
individuelle Adressate des Empfängers haben will oder einen
individualisierten Abmeldelink im Footer / der Signatur o.ä. Ein
anderer Grund wäre VERP, d.h. ein individueller "MAIL FROM"-Eintrag
(Envelope-From) für jede Mail, bei dem die Empfängeradresse in die
Absenderadresse kodiert ist, so daß man Bounces direkt und unmittelbar
zuordnen kann, selbst wenn es sich um eine Weiterleitung handelt. Bei
allen mir bekannten MLMs ist diese Personalisierung entweder optional
oder gar nicht implementiert (Ausnahme ist IIRC das Ding von
Bernstein, der's auch erfunden hat - ezlm?).
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Leider versendet die Mail-Funktion
[...]
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
immer auch an die Adresse im To-Header. Lässt sich das vermeiden?
Nein.
Das ist gleichfalls falsch, vgl.
<***@landroval.ancalagon.de>.

Ich habe Verständnis dafür, daß kein Mensch auch nur annähernd alles
wissen kann, und Mailversand ist - genauso wie vergleichbar im übrigen
Usenet - schon deshalb kein einfaches Thema, weil man das Format der
Artikel (Mail / Posting) vom Versandprotokoll (SMTP/NNTP) getrennt
betrachten muß [3], weil es ungezählte Erweiterungen und praktisch
wichtige Implementationsdetails in der "echten Welt" gibt und weil
beide Dienste zu den älteren bzw. ältesten "Internet-Diensten"
gehören, also durchaus eine Menge historischen Ballast mitschleppen.

Ich empfinde es aber als unschön, Fragende von oben herab auf der
Basis des eigenen Wissens mit Bemerkungen wie "RTFM" u. a.
abzubürsten; als ausgesprochen peinliches Schauspiel empfinde ich es
dann, wenn dieses eigene Wissen unvollständig und die Äußerungen
schlicht falsch sind.

-thh

XP/Fup2 nach de.comm.software.mailserver, weil insoweit keine
PHP-Frage, sondern eine nach der Implementation eines MLM.
Thomas 'PointedEars' Lahn
2011-10-05 19:10:09 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
RTFM. Mailinglisten funktionieren so nicht.
Man implementiert es besser anders, ja.
Schön, dass wir uns wenigstens da einig sind.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Das 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?
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Stattdessen muss die Mailinglisten-Software für jeden Abonnenten eine
Kopie der E-Mail generieren.
Es wäre hilfreich, wenn Du nicht öfters einmal in einem gerne ziemlich
unhöflichen Brustton der Überzeugung falsche Tatsachen verkünden
würdest.
Vielleicht musst Du mich bloss nicht absichtlich falsch verstehen?
Post by Thomas Hochstein
Es 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. Dass die nicht als
Datei vorliegen (müssen), ist klar.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Dies geschieht üblicherweise durch das Senden an
eine Reflektor-Adresse.
Was Du "Reflektor" nennst, ist in der Regel der Mailteil der
Mailinglisten-Software.
Ich sehe keinen Widerspruch zu meiner Aussage. Und der Begriff "Reflektor"
ist sicher keine Erfindung von mir, wie der geneigte Leser merkt.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Im SMTP-`Envelope-To'-Headerfeldwert der vom
Reflektor für jeden Empfänger generierten E-Mail (d. h. auf dem
Briefumschlag) steht dann die Adresse des Abonnenten; im übernommenen
`To'- Headerfeldwert (d. h. dem Briefkopf) steht die Reflektor-Adresse –
denn diesen Briefkopf bekommt nur der Empfänger der E-Mail, nicht aber
die vermittelnden MTAs (Poststellen) zu sehen.
Es gibt keinen "SMTP-`Envelope-To'-Headerfeldwert" in diesem Sinne.
Doch, gibt es.
Post by Thomas Hochstein
Die Mailinglisten-Software spricht idR direkt SMPT mit dem MTA und
generiert dann im SMTP-Dialog für jeden Adressaten [1] eine passende
"RCPT TO:"-Zeile, worauf sie dann nach Abschluß aller dieser Zeilen
_einmal_ Header und Body der Mail einliefert [2].
Genau dasselbe passiert, wenn man es wie Michael macht - oder wenn die
Mailinglisten-Software kein SMTP mit dem MTA spricht, sondern die Mail
direkt über einen Aufruf des MTA (sendmail-Interface) übergibt.
Du hast offensichtlich das Problem nicht verstanden.
Post by Thomas Hochstein
[1] Gute Software sortiert die Adressaten domainweise, dann kann
nämlich auch der MTA die Zustellung blockweise übernehmen.
[2] Weil es im Standard definierte und vor allem in der Praxis
vorkommendere niedrigere Grenzwerte für die maximal akzeptierte
Anzahl von RCPT TO in Folge gibt, werden meistens nicht mehr als
ca. 100 RCPT TOs in Folge abgekippt, für 1.000 Adressaten also
insgesamt der Mailinhalt 10x (an jeweils 100 Adressaten)
eingeliefert.
So (!) funktionieren MLMs.
Ich sehe immer noch keinen Widerspruch zu meinem Aussage.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
Leider versendet die Mail-Funktion
[...]
Post by Thomas 'PointedEars' Lahn
Post by Michael Vogel
immer auch an die Adresse im To-Header. Lässt sich das vermeiden?
Nein.
Das ist gleichfalls falsch, vgl.
Offensichtlich hast Du die Frage überhaupt nicht verstanden. Es ging darum,
*keinen* To-Header zu generieren, und das mit *PHP* zu erreichen; konkret,
mit mail().
Post by Thomas Hochstein
[Getrolle]
XP/Fup2 nach de.comm.software.mailserver, weil insoweit keine
PHP-Frage, sondern eine nach der Implementation eines MLM.
Erst nicht hinlesen, dann fehlinterpretieren, dann "beleidigen", und dann
die Flucht ergreifen? Vergiss es!

Score adjusted
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Thomas Hochstein
2011-10-05 19:46:59 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Das 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?
In der Praxis, auf die es hier u.a. ankommt.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es wäre hilfreich, wenn Du nicht öfters einmal in einem gerne ziemlich
unhöflichen Brustton der Überzeugung falsche Tatsachen verkünden
würdest.
Vielleicht musst Du mich bloss nicht absichtlich falsch verstehen?
Deine Äußerung war unmißverständlich.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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.
Nein, die Mailinglistensoftware generiert eben gerade keine 1000
Mailkopien, sondern eine (oder 10). Alles andere macht der MTA; und
der erzeugt regelmäßig auch keine 1000 Mails, sondern eine pro MX.
Post by Thomas 'PointedEars' Lahn
Dass die nicht als Datei vorliegen (müssen), ist klar.
Das Prinzip ist schlicht ein anderes, als Du zu glauben scheinst. Die
Mailinglistensoftware übermittelt - im Grundsatz - jede Mail auch bei
1.000 Subscribern nur einmal (de fakto wohl eher 10x, weil 100
Empfänger pro Mail das sichere Limit sind). Nicht 1.000 Kopien. Sie
übermittelt nur 1000 Empfängeradressen, zusammen mit der einen Mail.
Und auch der MTA übermittelt regelmäßig alle Empfänger für denselben
Zielhost (MX) und dann nur einmal für alle diese Empfänger die Mail.

Du darfst jetzt gerne weiter darauf beharren, daß Du das eigentlich
so gemeint hast und ich nur nicht in der Lage bin, Dich zu verstehen;
ich erlaube mir dann einfach, mir meinen Teil zu denken.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Was Du "Reflektor" nennst, ist in der Regel der Mailteil der
Mailinglisten-Software.
Ich sehe keinen Widerspruch zu meiner Aussage.
Das glaube ich Dir sogar.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es gibt keinen "SMTP-`Envelope-To'-Headerfeldwert" in diesem Sinne.
Doch, gibt es.
Es wird aber erst vom empfangenden MTA gesetzt, um den es hier nicht
geht.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Die Mailinglisten-Software spricht idR direkt SMPT mit dem MTA und
generiert dann im SMTP-Dialog für jeden Adressaten [1] eine passende
"RCPT TO:"-Zeile, worauf sie dann nach Abschluß aller dieser Zeilen
_einmal_ Header und Body der Mail einliefert [2].
Genau dasselbe passiert, wenn man es wie Michael macht - oder wenn die
Mailinglisten-Software kein SMTP mit dem MTA spricht, sondern die Mail
direkt über einen Aufruf des MTA (sendmail-Interface) übergibt.
Du hast offensichtlich das Problem nicht verstanden.
Doch, im Gegensatz zu Dir schon.
Post by Thomas 'PointedEars' Lahn
Ich sehe immer noch keinen Widerspruch zu meinem Aussage.
Bedenklich, obschon nicht unglaubhaft.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Das ist gleichfalls falsch, vgl.
Offensichtlich hast Du die Frage überhaupt nicht verstanden. Es ging darum,
*keinen* To-Header zu generieren, und das mit *PHP* zu erreichen; konkret,
mit mail().
Nachdem der Betreff
| Subject: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?
lautet, also ein - vorhandener und erzeugter - To:-Header ignoriert
werden soll, und Dein Vorredner schrieb:
| Zusätzlich möchte ich den To-Header füllen, dieser dient aber
| ausschließlich dazu, dass darüber die Leute z.B. später die Mails
| filtern können.
|
| Leider versendet die Mail-Funktion immer auch an die Adresse im
| To-Header.
erscheint es mir eher unwahrscheinlich, daß er _keinen_ To-Header
generieren will, um diesen dann zu füllen.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
XP/Fup2 nach de.comm.software.mailserver, weil insoweit keine
PHP-Frage, sondern eine nach der Implementation eines MLM.
Erst nicht hinlesen, dann fehlinterpretieren, dann "beleidigen", und dann
die Flucht ergreifen? Vergiss es!
Du überschätzt in diesem Thread Deine eigenen Kenntnisse maßlos, hast
erhebliche Verständnisschwierigkeiten, die möglicherweise aus den
fehlenden Kenntnissen resultieren mögen, garnierst das mit polternden
- aber leider falschen oder neben der Sache liegenden - Ausführungen
und bist nicht in der Lage, Deinen Irrtum zu erkennen oder gar
einzuräumen. --- Bedauerlich. Insbesondere, weil ich früher einmal
annahm, daß Du tatsächlich einige Ahnung hast und es Dir nur an
Verbindlichkeit mangelt. Inzwischen bin ich geneigt, diese
Einschätzung zu revidieren.

-thh
Thomas 'PointedEars' Lahn
2011-10-06 17:55:29 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Das 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?
In der Praxis, auf die es hier u.a. ankommt.
IOW: Es ist proprietär.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es wäre hilfreich, wenn Du nicht öfters einmal in einem gerne ziemlich
unhöflichen Brustton der Überzeugung falsche Tatsachen verkünden
würdest.
Vielleicht musst Du mich bloss nicht absichtlich falsch verstehen?
Deine Äußerung war unmißverständlich.
IOW: Beweis durch Behauptung.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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.
Nein, die Mailinglistensoftware generiert eben gerade keine 1000
Mailkopien, sondern eine (oder 10). Alles andere macht der MTA; und
der erzeugt regelmäßig auch keine 1000 Mails, sondern eine pro MX.
Hallo? Die Mailinglistensoftware ist die, welche mit mail() angesprochen
wird (die hinter der Reflektoradresse). Für die PHP-Frage völlig
irrelevant.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Dass die nicht als Datei vorliegen (müssen), ist klar.
Das Prinzip ist schlicht ein anderes, als Du zu glauben scheinst. Die
Mailinglistensoftware übermittelt - im Grundsatz - jede Mail auch bei
1.000 Subscribern nur einmal (de fakto wohl eher 10x, weil 100
Empfänger pro Mail das sichere Limit sind). Nicht 1.000 Kopien. Sie
übermittelt nur 1000 Empfängeradressen, zusammen mit der einen Mail.
Und auch der MTA übermittelt regelmäßig alle Empfänger für denselben
Zielhost (MX) und dann nur einmal für alle diese Empfänger die Mail.
Du darfst jetzt gerne weiter darauf beharren, daß Du das eigentlich
so gemeint hast und ich nur nicht in der Lage bin, Dich zu verstehen;
ich erlaube mir dann einfach, mir meinen Teil zu denken.
Du hast ja noch nicht mal verstanden, dass es nicht möglich ist, mit PHPs
mail() eine Mail zu senden, die *kein* To-Headerfeld enthält bzw. eine, die
zwar die die Adresse der Mailingliste im To-Headerfeld enthält *aber auch*
die Liste der Abonnenten im Bcc-Headerfeld. Was nämlich die Frage in dieser
*PHP*-Gruppe war, die Du beim absolut peinlichen Versuch, mich massregeln zu
wollen, völlig ignoriert hast und hier wieder ignorierst.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Was Du "Reflektor" nennst, ist in der Regel der Mailteil der
Mailinglisten-Software.
Ich sehe keinen Widerspruch zu meiner Aussage.
Das glaube ich Dir sogar.
Weil es keinen gibt.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es gibt keinen "SMTP-`Envelope-To'-Headerfeldwert" in diesem Sinne.
Doch, gibt es.
Es wird aber erst vom empfangenden MTA gesetzt, um den es hier nicht
geht.
OK.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Die Mailinglisten-Software spricht idR direkt SMPT mit dem MTA und
generiert dann im SMTP-Dialog für jeden Adressaten [1] eine passende
"RCPT TO:"-Zeile, worauf sie dann nach Abschluß aller dieser Zeilen
_einmal_ Header und Body der Mail einliefert [2].
Genau dasselbe passiert, wenn man es wie Michael macht - oder wenn die
Mailinglisten-Software kein SMTP mit dem MTA spricht, sondern die Mail
direkt über einen Aufruf des MTA (sendmail-Interface) übergibt.
Du hast offensichtlich das Problem nicht verstanden.
Doch, im Gegensatz zu Dir schon.
Hier ist eine *PHP*-Gruppe. Ich habe – nachdem ich es getestet habe –
geschrieben, dass das Gewünschte mit mail(), einer *PHP*-Funktion, nicht
möglich ist. Du hast dem widersprochen. Den Beweis dafür bist Du schuldig
geblieben, stattdessen schwafel Du was von MLMs und leitest anschliessend
nach *.mail.server um. Merkst Du noch was?
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Das ist gleichfalls falsch, vgl.
Offensichtlich hast Du die Frage überhaupt nicht verstanden. Es ging
darum, *keinen* To-Header zu generieren, und das mit *PHP* zu erreichen;
konkret, mit mail().
Nachdem der Betreff
| Subject: Mail ausschließlich über BCC versenden, To-Header ignorieren -
| wie geht das?
lautet, also ein - vorhandener und erzeugter - To:-Header ignoriert
werden soll,
| Zusätzlich möchte ich den To-Header füllen, dieser dient aber
| ausschließlich dazu, dass darüber die Leute z.B. später die Mails
| filtern können.
|
| Leider versendet die Mail-Funktion immer auch an die Adresse im
| To-Header.
erscheint es mir eher unwahrscheinlich, daß er _keinen_ To-Header
generieren will, um diesen dann zu füllen.
Du solltest Postings vollständig lesen und nicht nur die Header. Dann fällt
Dir vermutlich was auf.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
XP/Fup2 nach de.comm.software.mailserver, weil insoweit keine
PHP-Frage, sondern eine nach der Implementation eines MLM.
Erst nicht hinlesen, dann fehlinterpretieren, dann "beleidigen", und dann
die Flucht ergreifen? Vergiss es!
Du überschätzt in diesem Thread Deine eigenen Kenntnisse maßlos,
Immerhin habe ich on-topic und diesbezüglich korrekt geantwortet. Was ist
Deine Ausrede?
Post by Thomas Hochstein
hast erhebliche Verständnisschwierigkeiten, die möglicherweise aus den
fehlenden Kenntnissen resultieren mögen, garnierst das mit polternden
- aber leider falschen oder neben der Sache liegenden - Ausführungen
und bist nicht in der Lage, Deinen Irrtum zu erkennen oder gar
einzuräumen. --- Bedauerlich. Insbesondere, weil ich früher einmal
annahm, daß Du tatsächlich einige Ahnung hast und es Dir nur an
Verbindlichkeit mangelt. Inzwischen bin ich geneigt, diese
Einschätzung zu revidieren.
Apropos masslos überschätzen und Überheblichkeit, was Du mir hier erneut
vorwerfen zu müssen glaubst: Dein Postingstil in diesem Thread ist auch
nicht gerade von Bescheidenheit oder ontopizitärer Sachkenntnis geprägt.
Und mit Netiquettekonformem Verhalten hat er auch nichts zu tun. Dein
unangekündigtes F'up2 de.alt.0d ist dafür nur ein weiteres Indiz.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Thomas Hochstein
2011-10-09 17:33:26 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Hallo? Die Mailinglistensoftware ist die, welche mit mail() angesprochen
wird (die hinter der Reflektoradresse).
Nein, PHPs mail() ruft - per Default - sendmail auf.
Post by Thomas 'PointedEars' Lahn
Für die PHP-Frage völlig irrelevant.
Die Frage, wie man beim Versenden von Mails aus PHP mittels mail() den
Adressaten im To: ignorieren kann, ist nicht PHP-spezifisch, da PHPs
mail()-Funktion nichts tut, als die Mail an sendmail zu pipen.
Post by Thomas 'PointedEars' Lahn
Du hast ja noch nicht mal verstanden, dass es nicht möglich ist, mit PHPs
mail() eine Mail zu senden, die *kein* To-Headerfeld enthält bzw. eine, die
zwar die die Adresse der Mailingliste im To-Headerfeld enthält *aber auch*
die Liste der Abonnenten im Bcc-Headerfeld.
Im Gegensatz zu Dir versuche ich mich nur zu äußern, wenn ich auch
etwas zur Sache beizutragen oder mich zumindest über das Thema
informiert habe.

Man kann mit PHPs mail() eine Mail mit leerem To:-Header versenden;
man kann genauso auch die Adresse der Mailingliste im To: führen und
den Rest der Adressen im BCC:, allerdings wird - aufgrund des
sendmail-Aufrufs, der standardmäßig mit dem "-t"-Parameter erfolgt -
dann auch an alle diese Adressen zugestellt.

Aber natürlich geht mit PHP auch das, was Michael will, wenn man es
nur hinreichend verbiegt:
| ***@thangorodrim:~/temp$ cat php.ini
| ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
| ; http://php.net/sendmail-path
| sendmail_path = /usr/sbin/sendmail -i

Voraussetzung: safe_mode steht auf Off.

Das ersetzt den Default-Aufruf von "sendmail -i -t" in der
mail()-Funktion durch den Aufruf von (nur) "sendmail -i"; jetzt werden
also vom Sendmail-Interface des MTA (in meinem Fall: Exim) nicht mehr
die To-/CC-/BC-Header für die Zustellinformation ausgewertet. Daher
kann jetzt im To: stehen, was möchte. Stattdessen muß man die
Adressaten auf der Kommandozeile übergeben, also quasi
| cat mail | sendmail -i ***@dom.example ***@dom2.example
durchführen. Die mail()-Funktion von PHP erlaubt es, als fünften
Parameter weitere Parameter an sendmail zu übergeben, die dann
schlicht an den Wert von sendmail_path angehängt werden. Das müssen
aber keine Parameter sein - das können auch Mailadressen sein!

Also:
| ***@thangorodrim:~/temp$ cat test.php
| <?php
| mail ('***@example.invalid','Testmail','This is a test message.',"From: ***@inter.net",'***@inter.net');
| ?>
| ***@thangorodrim:~/temp$ php -c ./php.ini test.php

Das Ergebnis sieht dann so aus:
| Envelope-to: ***@inter.net
| Delivery-date: Sun, 09 Oct 2011 19:20:49 +0200
[...]
| Date: Sun, 09 Oct 2011 19:20:33 +0200
| Message-Id: <E1RCx3B-00006t-***@thangorodrim.ancalagon.de>
| To: ***@example.invalid
| Subject: Testmail
| From: ***@inter.net
[...]
|
| This is a test message.

Bei mehreren Adressaten muß der fünfte Parameter deren Mailadressen
dann durch Leerzeichen getrennt enthalten, also bspw.
Post by Thomas 'PointedEars' Lahn
Was nämlich die Frage in dieser
*PHP*-Gruppe war, die Du beim absolut peinlichen Versuch, mich massregeln zu
wollen, völlig ignoriert hast und hier wieder ignorierst.
Während Du zwar offensichtlich die Fragestellung nicht aufgenommen
hattest, uns aber immerhin mit sachlich falschen Darstellungen über
die Funktion von MLMs erfreust, ich weiß.
Post by Thomas 'PointedEars' Lahn
Hier ist eine *PHP*-Gruppe. Ich habe – nachdem ich es getestet habe –
geschrieben, dass das Gewünschte mit mail(), einer *PHP*-Funktion, nicht
möglich ist.
Oh. Entschuldigung. Hätte ich gewußt, daß das nicht geht, hätte ich
die denkbare Möglichkeit jetzt nicht beschrieben.

-thh
Thomas 'PointedEars' Lahn
2011-10-10 19:52:31 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Hallo? Die Mailinglistensoftware ist die, welche mit mail() angesprochen
wird (die hinter der Reflektoradresse).
Nein, PHPs mail() ruft - per Default - sendmail auf.
Ja, und was tut sendmail? Na also.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Für die PHP-Frage völlig irrelevant.
Die Frage, wie man beim Versenden von Mails aus PHP mittels mail() den
Adressaten im To: ignorieren kann,
Aber das wurde überhaupt nicht gefragt. Die Frage war (sinngemäss):

"Lässt sich verhindern, dass [mail()] für eine Mailingliste auch an die
Adresse im `To'-Headerfeld sendet und nicht nur an die Adressen im `Bcc:'-
Headerfeld?"

Meine korrekte Antwort war (sinngemäss): Nein, aber so funktionieren
Mailinglisten auch nicht, sondern …
Post by Thomas Hochstein
ist nicht PHP-spezifisch, da PHPs mail()-Funktion nichts tut, als die Mail
an sendmail zu pipen.
Fhcsal. mail() hat jeweils einen *zwingenden* Parameter für `To:',
`Subject:', Message Body, und einen optionalen für weitere Headerfelder (der
fünfte Parameter ist nur eingeschränkt nutzbar, aber das hast Du ja schon
selbst herausgefunden).

Es ist mit mail() daher direkt nicht möglich, eine E-Mail zu senden, die
keinen `To:'-Header hat (selbst `false' oder `null' nützt nichts), oder eine
E-Mail mit der Mailinglistenadresse im `To:', die aber nur *einmal* an alle
Abonnenten der Liste geht. Und `undisclosed-recipients:;' sorgt ja gerade
_nicht_ dafür, dass die Mailinglistenadresse nachher im `To:'-Headerfeld
steht, sondern die Abonnentenadresse.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Du hast ja noch nicht mal verstanden, dass es nicht möglich ist, mit PHPs
mail() eine Mail zu senden, die *kein* To-Headerfeld enthält bzw. eine,
die zwar die die Adresse der Mailingliste im To-Headerfeld enthält *aber
auch* die Liste der Abonnenten im Bcc-Headerfeld.
Im Gegensatz zu Dir versuche ich mich nur zu äußern, wenn ich auch
etwas zur Sache beizutragen oder mich zumindest über das Thema
informiert habe.
Schaumermal.
Post by Thomas Hochstein
Man kann mit PHPs mail() eine Mail mit leerem To:-Header versenden;
man kann genauso auch die Adresse der Mailingliste im To: führen und
den Rest der Adressen im BCC:, allerdings wird - aufgrund des
sendmail-Aufrufs, der standardmäßig mit dem "-t"-Parameter erfolgt -
dann auch an alle diese Adressen zugestellt.
Aber natürlich geht mit PHP auch das, was Michael will, wenn man es
… und damit für alle anderen Zwecke unbrauchbar macht. Kein Hoster wird das
machen.
Post by Thomas Hochstein
| ; For Unix only. You may supply arguments as well (default: "sendmail
| -t -i"). ; http://php.net/sendmail-path
| sendmail_path = /usr/sbin/sendmail -i
Voraussetzung: safe_mode steht auf Off.
Bei Hostern gern auf "On", und seit PHP 5.3 deprecated. Keine sinnvolle
Lösung also.

mail('***@mailingliste.example', 'foo', 'bar');

(was ich vorgeschlagen hatte) ist da irgendwie deutlich sinnvoller,
wartungsfreundlicher und kompatibler.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Was nämlich die Frage in dieser
*PHP*-Gruppe war, die Du beim absolut peinlichen Versuch, mich massregeln
zu wollen, völlig ignoriert hast und hier wieder ignorierst.
Während Du zwar offensichtlich die Fragestellung nicht aufgenommen
hattest,
Hatte ich (bis eben im Gegensatz zu Dir).
Post by Thomas Hochstein
uns aber immerhin mit sachlich falschen Darstellungen über
die Funktion von MLMs erfreust, ich weiß.
Hatte ich nicht. Du hast bloss in meine Aussagen etwas hineininterpretiert,
was nicht da stand. Vogelscheuche.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Thomas Hochstein
2011-10-10 21:09:54 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Aber natürlich geht mit PHP auch das, was Michael will, wenn man es
… und damit für alle anderen Zwecke unbrauchbar macht. Kein Hoster wird das
machen.
Die Vereinigung respektive Partei, für die Michael das baut, hostet im
wesentlichen selbst; das wäre sonst auch eher ... eigenartig.

Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
| ; For Unix only. You may supply arguments as well (default: "sendmail
| -t -i"). ; http://php.net/sendmail-path
| sendmail_path = /usr/sbin/sendmail -i
Voraussetzung: safe_mode steht auf Off.
Bei Hostern gern auf "On", und seit PHP 5.3 deprecated. Keine sinnvolle
Lösung also.
Das kommt darauf an.
Post by Thomas 'PointedEars' Lahn
(was ich vorgeschlagen hatte) ist da irgendwie deutlich sinnvoller,
wartungsfreundlicher und kompatibler.
Für jemanden, der in PHP eine(n Spezialfall einer)
Mailinglistensoftware bauen möchte, ist der Tip, die Mails doch
stattdessen an die Adresse einer Mailingliste zu senden, vermutlich
nicht besonders hilfreich.

-thh
Thomas 'PointedEars' Lahn
2011-10-10 23:54:14 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Aber natürlich geht mit PHP auch das, was Michael will, wenn man es
… und damit für alle anderen Zwecke unbrauchbar macht. Kein Hoster wird
das machen.
Die Vereinigung respektive Partei, für die Michael das baut,
Wenn ich das richtig verstanden habe, baut er es gar nicht, sondern sein
Programmierer.
Post by Thomas Hochstein
hostet im wesentlichen selbst; das wäre sonst auch eher ... eigenartig.
Das mag für diesen Host stimmen oder auch nicht; das im `tech-c'-Eintrag für
den IP-Adressbereich aufgeführte Unternehmen bietet nämlich auch Server-
Hosting an.
Post by Thomas Hochstein
Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Das funktioniert für `sendmail_path' nicht, denn es ist keine PHP_INI_USER-
(ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung (php_value,
php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.

<http://www.php.net/manual/en/ini.list.php>
<http://www.php.net/manual/en/configuration.changes.modes.php>
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
| ; For Unix only. You may supply arguments as well (default: "sendmail
| -t -i"). ; http://php.net/sendmail-path
| sendmail_path = /usr/sbin/sendmail -i
Voraussetzung: safe_mode steht auf Off.
Bei Hostern gern auf "On", und seit PHP 5.3 deprecated. Keine sinnvolle
Lösung also.
Das kommt darauf an.
Auf eindeutig als "deprecated" gekennzeichnete Features zu vertrauen ist
bestenfalls grob fahrlässig. Und ob man auf betriebssystemspezifische
Einstellungen vertrauen sollte, ist zumindest diskussionswürdig.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
(was ich vorgeschlagen hatte) ist da irgendwie deutlich sinnvoller,
wartungsfreundlicher und kompatibler.
Für jemanden, der in PHP eine(n Spezialfall einer)
Mailinglistensoftware bauen möchte, ist der Tip, die Mails doch
stattdessen an die Adresse einer Mailingliste zu senden, vermutlich
nicht besonders hilfreich.
Reine Vermutung Deinerseits.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-11 06:23:05 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Aber natürlich geht mit PHP auch das, was Michael will, wenn man es
… und damit für alle anderen Zwecke unbrauchbar macht. Kein Hoster wird
das machen.
Die Vereinigung respektive Partei, für die Michael das baut,
Wenn ich das richtig verstanden habe, baut er es gar nicht, sondern sein
Programmierer.
Ich koordiniere die Programmierung der Lösung, habe aber selber große
Teile davon geschrieben. Die Schnittstelle News<->Forum und die neue
Schnittstelle Mail<->Forum stammen aus meiner Hand, die Schnittstelle
News<->Mailinglisten hat mein Mitprogrammierer (in Python) entwickelt.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
hostet im wesentlichen selbst; das wäre sonst auch eher ... eigenartig.
Das mag für diesen Host stimmen oder auch nicht; das im `tech-c'-Eintrag für
den IP-Adressbereich aufgeführte Unternehmen bietet nämlich auch Server-
Hosting an.
Die Lösung läuft auf einer von uns administrierten VM, die auf einem von
uns administrierten Server läuft, der auf von uns angeschaffter Hardware
läuft, die (neben vielen anderen unserer Server) in einem von uns
gemieteten Rack bei unserem Hoster steht. D.h. wir haben wirklich alle
Möglichkeiten.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Das funktioniert für `sendmail_path' nicht, denn es ist keine PHP_INI_USER-
(ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung (php_value,
php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.
Das ist wiederum schade.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
(was ich vorgeschlagen hatte) ist da irgendwie deutlich sinnvoller,
wartungsfreundlicher und kompatibler.
Für jemanden, der in PHP eine(n Spezialfall einer)
Mailinglistensoftware bauen möchte, ist der Tip, die Mails doch
stattdessen an die Adresse einer Mailingliste zu senden, vermutlich
nicht besonders hilfreich.
Reine Vermutung Deinerseits.
Eine korrekte.

Michael
Thomas 'PointedEars' Lahn
2011-10-11 12:40:53 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
hostet im wesentlichen selbst; das wäre sonst auch eher ... eigenartig.
Das mag für diesen Host stimmen oder auch nicht; das im `tech-c'-Eintrag
für den IP-Adressbereich aufgeführte Unternehmen bietet nämlich auch
Server-Hosting an.
Die Lösung läuft auf einer von uns administrierten VM, die auf einem von
uns administrierten Server läuft, der auf von uns angeschaffter Hardware
läuft, die (neben vielen anderen unserer Server) in einem von uns
gemieteten Rack bei unserem Hoster steht. D.h. wir haben wirklich alle
Möglichkeiten.
ACK
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
(was ich vorgeschlagen hatte) ist da irgendwie deutlich sinnvoller,
wartungsfreundlicher und kompatibler.
Für jemanden, der in PHP eine(n Spezialfall einer)
Mailinglistensoftware bauen möchte, ist der Tip, die Mails doch
stattdessen an die Adresse einer Mailingliste zu senden, vermutlich
nicht besonders hilfreich.
Reine Vermutung Deinerseits.
Eine korrekte.
Wie so oft wäre dieser Thread wesentlich kürzer gewesen, hättest Du von
Anfang an die Fakten genannt und keine Ja-oder-Nein-Frage gestellt.

<http://www.tty1.net/smart-questions_de.html>
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-11 13:10:18 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Wie so oft wäre dieser Thread wesentlich kürzer gewesen, hättest Du von
Anfang an die Fakten genannt und keine Ja-oder-Nein-Frage gestellt.
Ich habe alle Fakten genannt, die aus meiner Sicht relevant waren. Ich
kann nicht wissen, ob es Lösungen gibt, die bestimmte Voraussetzungen
bedingen. Dementsprechend bringt dann eine Informationsüberflutung wenig.

Michael
Thomas Hochstein
2011-10-12 08:21:17 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Wie so oft wäre dieser Thread wesentlich kürzer gewesen, hättest Du von
Anfang an die Fakten genannt und keine Ja-oder-Nein-Frage gestellt.
Oder wenn man sich bei den Antworten mehr Mühe geben würde, das
Anliegen des Fragestellers zu verstehen und ihm Lösungen zu nennen,
selbst dann, wenn man selbst es anders machen würde, statt die Frage
in erster Linie als Aufhänger für Belehrungen - mögen diese nun
zutreffend sein oder auch nicht - zu verwenden.
Post by Thomas 'PointedEars' Lahn
<http://www.tty1.net/smart-questions_de.html>
Es macht den Eindruck, daß die Zeit für einen Text über "smart
answers" reif ist.

-thh
Thomas Hochstein
2011-10-12 08:24:28 UTC
Permalink
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Das funktioniert für `sendmail_path' nicht, denn es ist keine PHP_INI_USER-
(ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung (php_value,
php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.
Das ist wiederum schade.
Nicht mißverstehen - Änderungen dieses Parameters aus dem Script
heraus gehen nicht (soweit Thomas Recht hat, aber davon gehe ich aus).
Die Verwendung einer anderen php.ini für dieses Script (bzw. für das
ganze Verzeichnis) ist durchaus möglich. Wie man das umsetzt hängt
dann davon ab, wie ihr PHP installiert habt (und ob das Script als
CGI, also über den Webserver, ausgeführt habt, oder als CLI; in
letzterem Falle geht das ganz einfach wie von mir dargestellt).

Grüße,
-thh
Thomas 'PointedEars' Lahn
2011-10-14 23:08:49 UTC
Permalink
Post by Thomas Hochstein
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Das funktioniert für `sendmail_path' nicht, denn es ist keine
PHP_INI_USER- (ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung
(php_value, php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.
Das ist wiederum schade.
Nicht mißverstehen - Änderungen dieses Parameters aus dem Script
heraus gehen nicht (soweit Thomas Recht hat, aber davon gehe ich aus).
Den (theoretischen) Beleg hatte ich mitgeliefert (RTFM!).
Post by Thomas Hochstein
Die Verwendung einer anderen php.ini für dieses Script (bzw. für das
ganze Verzeichnis) ist durchaus möglich. Wie man das umsetzt hängt
dann davon ab, wie ihr PHP installiert habt (und ob das Script als
CGI, also über den Webserver, ausgeführt habt, oder als CLI; in
letzterem Falle geht das ganz einfach wie von mir dargestellt).
Das geht AFAICS *nur* mit dem CLI, per Befehlszeilenoption `-c'. Angesichts
bestehender MLMs geht der Sinn einer Sonderlösung, die aus einer (PHP-
basierten) Webapplikation erst ein PHP-CLI-Script aufruft (wofür man im Fall
von PHP auch exec() erlauben müsste oder einen Umweg über inetd machen),
welches dann mittels eigener php.ini modifiziert ein sendmail(1)-kompatibles
Programm aufruft, welches dann E-Mails verschickt, allerdings gegen 0.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Michael Vogel
2011-10-15 08:02:13 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Das geht AFAICS *nur* mit dem CLI, per Befehlszeilenoption `-c'. Angesichts
bestehender MLMs geht der Sinn einer Sonderlösung, die aus einer (PHP-
basierten) Webapplikation erst ein PHP-CLI-Script aufruft (wofür man im Fall
von PHP auch exec() erlauben müsste oder einen Umweg über inetd machen),
welches dann mittels eigener php.ini modifiziert ein sendmail(1)-kompatibles
Programm aufruft, welches dann E-Mails verschickt, allerdings gegen 0.
Ich werde übrigens ggf. per proc_open arbeiten und so das Binary direkt
starten.

Michael
Thomas Hochstein
2011-10-16 16:41:12 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Das funktioniert für `sendmail_path' nicht, denn es ist keine
PHP_INI_USER- (ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung
(php_value, php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.
Das ist wiederum schade.
Nicht mißverstehen - Änderungen dieses Parameters aus dem Script
heraus gehen nicht (soweit Thomas Recht hat, aber davon gehe ich aus).
Den (theoretischen) Beleg hatte ich mitgeliefert (RTFM!).
Daß Du das Manual (vor)lesen kannst, glaube ich - wie ich in diesem
Sinne schon schrieb - unbesehen.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Die Verwendung einer anderen php.ini für dieses Script (bzw. für das
ganze Verzeichnis) ist durchaus möglich. Wie man das umsetzt hängt
dann davon ab, wie ihr PHP installiert habt (und ob das Script als
CGI, also über den Webserver, ausgeführt habt, oder als CLI; in
letzterem Falle geht das ganz einfach wie von mir dargestellt).
Das geht AFAICS *nur* mit dem CLI, per Befehlszeilenoption `-c'.
Du solltest vielleicht nochmal im FM lesen. Einige Auszüge:
| php.ini is searched for in these locations (in order):
|
| * SAPI module specific location (PHPIniDir directive in Apache 2, -c
| command line option in CGI and CLI, php_ini parameter in NSAPI,
| PHP_INI_PATH environment variable in THTTPD)
| * The PHPRC environment variable. Before PHP 5.2.0, this was checked
| after the registry key mentioned below.
| [...]
| * Current working directory (except CLI).
| [...]
<http://de.php.net/manual/en/configuration.file.php>

Es genügt also ggf., eine php.ini ins entsprechende Verzeichnis zu
legen. Ansonsten kann man PHPRC entsprechend setzen - auch via SetEnv
in der Apache-Konfiguration.
Post by Thomas 'PointedEars' Lahn
Angesichts
bestehender MLMs geht der Sinn einer Sonderlösung, die aus einer (PHP-
basierten) Webapplikation erst ein PHP-CLI-Script aufruft (wofür man im Fall
von PHP auch exec() erlauben müsste oder einen Umweg über inetd machen),
welches dann mittels eigener php.ini modifiziert ein sendmail(1)-kompatibles
Programm aufruft, welches dann E-Mails verschickt, allerdings gegen 0.
Den Schluß, daß es aufgrund bestehender Software mit der
Funktionalität X keinerlei Wert habe, eine eigene Software mit dieser
Funtkionalität zu erstellen, die auf das spezifische Einsatzscenario
abgestimmt ist, kann ich nicht teilen.

Im übrigen finde ich, daß man es (nach Darstellung der Fakten und ggf.
der nach Möglichkeit auf - faktisch zutreffende - Argumente gestützten
eigenen Ansicht) dem Fragesteller durchaus selbst überlassen kann, ob
_er_ das, was er tun möchte, für sinnvoll hält, denn darauf kommt es
schließlich an.

-thh
--
/'\ --- JOIN NOW! ---
\ / ASCII ribbon campaign
X against HTML
/ \ in mail and news
Thomas 'PointedEars' Lahn
2011-10-17 14:19:21 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Michael Vogel
Post by Thomas 'PointedEars' Lahn
Das funktioniert für `sendmail_path' nicht, denn es ist keine
PHP_INI_USER- (ini_set()), PHP_INI_ALL- oder
PHP_INI_PERDIR-Einstellung (php_value, php_flag), sondern eine
PHP_INI_SYSTEM-Einstellung.
Das ist wiederum schade.
Nicht mißverstehen - Änderungen dieses Parameters aus dem Script
heraus gehen nicht (soweit Thomas Recht hat, aber davon gehe ich aus).
Den (theoretischen) Beleg hatte ich mitgeliefert (RTFM!).
Daß Du das Manual (vor)lesen kannst, glaube ich - wie ich in diesem
Sinne schon schrieb - unbesehen.
Im Unterschied zu gewissen anderen in diesem Thread kann ich es
offensichtlich auch *sinnentnehmend* lesen.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Die Verwendung einer anderen php.ini für dieses Script (bzw. für das
ganze Verzeichnis) ist durchaus möglich. Wie man das umsetzt hängt
dann davon ab, wie ihr PHP installiert habt (und ob das Script als
CGI, also über den Webserver, ausgeführt habt, oder als CLI; in
letzterem Falle geht das ganz einfach wie von mir dargestellt).
Das geht AFAICS *nur* mit dem CLI, per Befehlszeilenoption `-c'.
Du solltest vielleicht nochmal im FM lesen.
Du solltest das FM genauer lesen.
Post by Thomas Hochstein
|
| * SAPI module specific location (PHPIniDir directive in Apache 2, -c
| command line option in CGI and CLI, php_ini parameter in NSAPI,
| PHP_INI_PATH environment variable in THTTPD)
| * The PHPRC environment variable. Before PHP 5.2.0, this was checked
| after the registry key mentioned below.
| [...]
| * Current working directory (except CLI).
| [...]
<http://de.php.net/manual/en/configuration.file.php>
Es genügt also ggf., eine php.ini ins entsprechende Verzeichnis zu
legen.
Ja, wenn keine der anderen Einstellungen, die dem gegenüber Vorrang haben,
gesetzt sind (beachte das "in order"). Michael setzt bereits PHP-Modul oder
PHP-CGI für das Webforum (myBB) und vermutlich nicht nur dafür ein.
Post by Thomas Hochstein
Ansonsten kann man PHPRC entsprechend setzen - auch via SetEnv
in der Apache-Konfiguration.
Das wird nur mit PHP-CGI und nur mit zusätzlichem FileInfo-Privileg
funktionieren. Unter Windows und PHP vor 5.2.0 ist es möglich, dass es gar
nicht funktioniert, da dort, wie im von Dir zitierten Handbuch steht, die
Registry-Einträge Vorrang haben.
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Angesichts bestehender MLMs geht der Sinn einer Sonderlösung, die aus
einer (PHP-basierten) Webapplikation erst ein PHP-CLI-Script aufruft
(wofür man im Fall von PHP auch exec() erlauben müsste oder einen Umweg
über inetd machen), welches dann mittels eigener php.ini modifiziert ein
sendmail(1)-kompatibles Programm aufruft, welches dann E-Mails
verschickt, allerdings gegen 0.
Den Schluß, daß es aufgrund bestehender Software mit der
Funktionalität X keinerlei Wert habe, eine eigene Software mit dieser
Funtkionalität zu erstellen, die auf das spezifische Einsatzscenario
abgestimmt ist, kann ich nicht teilen.
Im übrigen finde ich, daß man es (nach Darstellung der Fakten und ggf.
der nach Möglichkeit auf - faktisch zutreffende - Argumente gestützten
eigenen Ansicht) dem Fragesteller durchaus selbst überlassen kann, ob
_er_ das, was er tun möchte, für sinnvoll hält, denn darauf kommt es
schließlich an.
man Effizienz. Es ist sicher nicht sinnvoll, einen Aufwand zu betreiben,
wie ihn Dein Vorschlag nach sich zöge(!), wenn es einfachere,
wartungsfreundlichere Lösungen mit weniger potentiellen Seiteneffekten gibt.
Es gibt so etwas wie objektiv schlechte Lösungsansätze, und dieser ist mit
Sicherheit einer davon. KISS.

Ohne alle Fakten zu kennen (was hier nachweislich der Fall ist) ist es auch
schwierig bis unmöglich, die für einen beste Entscheidung zu treffen. Daher
müssen diese Fakten von denen, die sie kennen, genannt werden. BTDT.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Gustaf Mossakowski
2011-10-11 07:32:45 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Außerdem erlaubt PHP durchaus die Verwendung anderer
Konfigurationsdateien pro Verzeichnis oder auch Änderungen an den
Parametern aus dem Script heraus. Das wäre also leicht machbar, wenn
man das möchte.
Das funktioniert für `sendmail_path' nicht, denn es ist keine PHP_INI_USER-
(ini_set()), PHP_INI_ALL- oder PHP_INI_PERDIR-Einstellung (php_value,
php_flag), sondern eine PHP_INI_SYSTEM-Einstellung.
Es gibt durchaus Hoster, die einem Vollzugriff auf die eigene php.ini
erlauben. Dann ist die Einstellung

| sendmail_path = /usr/sbin/sendmail -i

überhaupt kein Problem. Ich hab's gerade mal bei einem Webhosting-Paket,
das ich habe, ausprobiert. Im konkreten Fall wird es sicher eher kein
Problem sein, da ich mal vermute, dass Michael bzw. seine
Firma/Organisation eh einen eigenen Server betreibt.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
| "sendmail -t -i"). ; http://php.net/sendmail-path
| sendmail_path = /usr/sbin/sendmail -i
Voraussetzung: safe_mode steht auf Off.
Bei Hostern gern auf "On", und seit PHP 5.3 deprecated. Keine
sinnvolle Lösung also.
Das kommt darauf an.
Auf eindeutig als "deprecated" gekennzeichnete Features zu vertrauen ist
bestenfalls grob fahrlässig.
In dem konkreten Fall bedeutet aber »deprecated«, dass die
Funktionalität in PHP 5.4 verschwindet. Das ist m. E. gleichbedeutend
mit safe_mode Off, da es gar keinen safe_mode mehr gibt. Also auch
unproblematisch, nicht fahrlässig.
Post by Thomas 'PointedEars' Lahn
Und ob man auf betriebssystemspezifische
Einstellungen vertrauen sollte, ist zumindest diskussionswürdig.
Das ist wieder etwas anders, andererseits ist sendmail (oder sendmail
als Alias für andere Mailsoftware) nun wirklich weit verbreitet. Unter
Windows mag es nicht funktionieren. Man muß sich halt den Hoster suchen,
der das anbietet, was man will.

Viele Grüße
Gustaf
Michael Vogel
2011-10-11 07:57:32 UTC
Permalink
Post by Gustaf Mossakowski
Es gibt durchaus Hoster, die einem Vollzugriff auf die eigene php.ini
erlauben. Dann ist die Einstellung
| sendmail_path = /usr/sbin/sendmail -i
überhaupt kein Problem. Ich hab's gerade mal bei einem Webhosting-Paket,
das ich habe, ausprobiert. Im konkreten Fall wird es sicher eher kein
Problem sein, da ich mal vermute, dass Michael bzw. seine
Firma/Organisation eh einen eigenen Server betreibt.
Ich habe root-Rechte auf dem System :)
Post by Gustaf Mossakowski
In dem konkreten Fall bedeutet aber »deprecated«, dass die
Funktionalität in PHP 5.4 verschwindet. Das ist m. E. gleichbedeutend
mit safe_mode Off, da es gar keinen safe_mode mehr gibt. Also auch
unproblematisch, nicht fahrlässig.
Post by Thomas 'PointedEars' Lahn
Und ob man auf betriebssystemspezifische
Einstellungen vertrauen sollte, ist zumindest diskussionswürdig.
Das ist wieder etwas anders, andererseits ist sendmail (oder sendmail
als Alias für andere Mailsoftware) nun wirklich weit verbreitet. Unter
Windows mag es nicht funktionieren. Man muß sich halt den Hoster suchen,
der das anbietet, was man will.
Ich denke übrigens, dass es sinnvoller ist, wenn ich das Binary direkt
anspreche. Auf dem Rechner laufen noch andere Prozesse, die Mails aus
PHP heraus versenden. Die möchte ich nicht beeinflussen.

Ich denke, ich erstelle dann eine mail-Funktion, die ich mit den
entsprechenden Parametern starte, die dann konfigurationsabhängig
verschiedene Möglichkeiten verwendet.

Michael
Thomas Hochstein
2011-10-12 08:24:26 UTC
Permalink
Post by Michael Vogel
Ich denke übrigens, dass es sinnvoller ist, wenn ich das Binary direkt
anspreche. Auf dem Rechner laufen noch andere Prozesse, die Mails aus
PHP heraus versenden. Die möchte ich nicht beeinflussen.
Ich denke, ich erstelle dann eine mail-Funktion, die ich mit den
entsprechenden Parametern starte, die dann konfigurationsabhängig
verschiedene Möglichkeiten verwendet.
Ack, das ist eine Möglichkeit.

Eine andere wäre die Verwendung einer spezifischen php.ini nur für
dieses Script (möglich ist das abhängig davon, wie das Script
aufgerufen wird). [1] Eine dritte wäre, sich das PEAR-Paket Mail
nochmal anzugucken, ob das diese Möglichkeit nicht vielleicht bereits
bietet oder man den Code weiterverwenden kann.

Grüße,
-thh

[1] Ich bin weit davon entfernt, mich besonders intensiv mit PHP
auszukennen, aber ich betreibe Konfigurationen mit
nutzer-/anwendungsspezifischen Konfigurationen. Wenn Du beschreibst,
wie das entsprechende Script bei Dir aufgerufen werden soll, kann ich
gerne gucken, ob ich eine Möglichkeit für die Übergabe einer
spezifischen Config finde.
Thomas Hochstein
2011-10-12 08:24:28 UTC
Permalink
Post by Gustaf Mossakowski
Post by Thomas 'PointedEars' Lahn
Auf eindeutig als "deprecated" gekennzeichnete Features zu vertrauen ist
bestenfalls grob fahrlässig.
In dem konkreten Fall bedeutet aber »deprecated«, dass die
Funktionalität in PHP 5.4 verschwindet. Das ist m. E. gleichbedeutend
mit safe_mode Off, da es gar keinen safe_mode mehr gibt. Also auch
unproblematisch, nicht fahrlässig.
Natürlich.

Grüße,
-thh
Thomas Gohel
2011-10-05 21:44:00 UTC
Permalink
Thomas 'PointedEars' Lahn meinte zum Thema "Re: Mail ausschließlich über BCC versenden, To-Header ignorieren - wie geht das?"

Hallo Thomas,
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Das 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. ;-)

In 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.

Als 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.

Wenn man aber direkt als Mailingliste per SMTP mit dem Mailserver
kommuniziert, kann man sich diese üblen To/Cc/Bcc Hacks aber komplett
ersparen.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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.
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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.
Post by Thomas 'PointedEars' Lahn
Offensichtlich 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.

In 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. ;-)

Tschau,

--------------
/ h o m a s
--
Kill-, Filter- und Scorefiles: Die modernen Schallschutzwaende des Usenet.
Thomas 'PointedEars' Lahn
2011-10-06 17:34:15 UTC
Permalink
Post by Thomas Gohel
Thomas '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.
Post by Thomas Gohel
Hallo Thomas,
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 Gohel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Das 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 Gohel
In 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 Gohel
Als 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 Gohel
Wenn 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 Gohel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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 Gohel
Post by Thomas 'PointedEars' Lahn
Post by Thomas Hochstein
Es 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 Gohel
Post by Thomas 'PointedEars' Lahn
Offensichtlich 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 Gohel
In 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.
Michael Meyer
2011-10-07 08:17:04 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Es gibt AFAICS keine Hinweise darauf, dass eines der "Destination
Address Fields" (To, Cc und Bcc) mehrfach vorkommen dürfte.
Scheint auch nicht erlaubt zu sein...

,---[ http://tools.ietf.org/html/rfc5322 ]
| The following table indicates limits on the number of times each
| field may occur in the header section of a message as well as any
| special limitations on the use of those fields. An asterisk ("*")
| next to a value in the minimum or maximum column indicates that a
| special restriction appears in the Notes column.
|
| +----------------+--------+------------+----------------------------+
| | Field | Min | Max number | Notes |
| | | number | | |
| +----------------+--------+------------+----------------------------+
| [...] |
| | |
| | reply-to | 0 | 1 | |
| | to | 0 | 1 | |
| | cc | 0 | 1 | |
| | bcc | 0 | 1 | |
| [...]
`----|

Micha
Peter J. Holzer
2011-10-08 19:21:02 UTC
Permalink
Post by Michael Meyer
Post by Thomas 'PointedEars' Lahn
Es gibt AFAICS keine Hinweise darauf, dass eines der "Destination
Address Fields" (To, Cc und Bcc) mehrfach vorkommen dürfte.
Scheint auch nicht erlaubt zu sein...
,---[ http://tools.ietf.org/html/rfc5322 ]
| The following table indicates limits on the number of times each
| field may occur in the header section of a message as well as any
| special limitations on the use of those fields. An asterisk ("*")
| next to a value in the minimum or maximum column indicates that a
| special restriction appears in the Notes column.
|
| +----------------+--------+------------+----------------------------+
| | Field | Min | Max number | Notes |
| | | number | | |
| +----------------+--------+------------+----------------------------+
| [...] |
| | |
| | reply-to | 0 | 1 | |
| | to | 0 | 1 | |
| | cc | 0 | 1 | |
| | bcc | 0 | 1 | |
| [...]
`----|
Korrekt. Allerdings für den konkreten Anwendungsfall vermutlich
irrelevant. Bcc-Header werden ohnehin nicht unverändert über das
Internet übertragen (sonst wären sie nicht "blind"), Interoperabilität
mit allen Mail-Programmen ist also unnötig. Der OP muss nur darauf
achten, dass sein MSA wie gewünscht mit mehreren Bcc-Headern umgeht und
darauf gefasst sein, dass das nach einem Software-Wechsel eventuell
nicht mehr der Fall sein könnte.

hp
Thomas 'PointedEars' Lahn
2011-10-10 20:01:43 UTC
Permalink
Post by Michael Meyer
Post by Thomas 'PointedEars' Lahn
Es gibt AFAICS keine Hinweise darauf, dass eines der "Destination
Address Fields" (To, Cc und Bcc) mehrfach vorkommen dürfte.
Scheint auch nicht erlaubt zu sein...
,---[ http://tools.ietf.org/html/rfc5322 ]
| The following table indicates limits on the number of times each
| field may occur in the header section of a message as well as any
| special limitations on the use of those fields. An asterisk ("*")
| next to a value in the minimum or maximum column indicates that a
| special restriction appears in the Notes column.
|
| +----------------+--------+------------+----------------------------+
| | Field | Min | Max number | Notes |
| | | number | | |
| +----------------+--------+------------+----------------------------+
| [...] |
| | |
| | reply-to | 0 | 1 | |
| | to | 0 | 1 | |
| | cc | 0 | 1 | |
| | bcc | 0 | 1 | |
| [...]
`----|
Danke fürs Raussuchen; ich sehe jetzt, das war auch schon in Abschnitt 3.6
von RFC 2822 vom April 2001 so eindeutig definiert. Da werden wohl einige
ihre Implementierung anpassen müssen ;-)
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Thomas Hochstein
2011-10-10 21:10:50 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
Danke fürs Raussuchen; ich sehe jetzt, das war auch schon in Abschnitt 3.6
von RFC 2822 vom April 2001 so eindeutig definiert. Da werden wohl einige
ihre Implementierung anpassen müssen ;-)
Solange eine Funktionalität in vielen oder allen (relevanten) MTAs
funktioniert, ist die Spezifikation insoweit nur von akademischen
Interesse - zumal wenn es um BCC:-Header geht, die ohnehin vom MTA
entfernt werden (sollten).

-thh
Thomas 'PointedEars' Lahn
2011-10-11 12:47:58 UTC
Permalink
Post by Thomas Hochstein
Post by Thomas 'PointedEars' Lahn
Danke fürs Raussuchen; ich sehe jetzt, das war auch schon in Abschnitt
3.6 von RFC 2822 vom April 2001 so eindeutig definiert. Da werden wohl
einige ihre Implementierung anpassen müssen ;-)
Solange eine Funktionalität in vielen oder allen (relevanten) MTAs
funktioniert, ist die Spezifikation insoweit nur von akademischen
Interesse - zumal wenn es um BCC:-Header geht, die ohnehin vom MTA
entfernt werden (sollten).
IBTD.
--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Thomas Hochstein
2011-10-05 09:25:58 UTC
Permalink
Post by Michael Vogel
Ich schreibe gerade eine kleine Mailinglistensoftware. Die Empfänger
möchte ich natürlich in den BCC-Header setzen - ausschließlich.
Das macht IMO wenig Sinn. Der BCC:-Header (und überhaupt die
Verwendung von Headerzeilen für die Adressierung einer Nachricht) ist
mehr eine Krücke für Mail_clients_; im SMTP-Protokoll werden die
Zustellinformationen "out-of-band" übertragen, und es macht auch für
eine Mailinglistensoftware ("mailing list manager", MLM) Sinn, erst
gar keine Header zu verwenden, sondern die Zieladressen getrennt von
der Nachricht zu übergeben. Wie das erfolgt, ist davon abhängig, wie
der MLM seine Mails loswird; er kann bspw. jeweils 100er- oder 1000er-
Pakete von Adressen per SMPT als Folge von RCPT TO:s einkippen.
Post by Michael Vogel
Zusätzlich möchte ich den To-Header füllen, dieser dient aber
ausschließlich dazu, dass darüber die Leute z.B. später die Mails
filtern können.
Leider versendet die Mail-Funktion immer auch an die Adresse im
To-Header. Lässt sich das vermeiden?
Ja, vermutlich schon.

Aus RFC 5322 ("Internet Message Format"), Abschnitt 3.4:
| When it is desirable to treat several mailboxes as a single unit
| (i.e., in a distribution list), the group construct can be used. The
| group construct allows the sender to indicate a named group of
| recipients. This is done by giving a display name for the group,
| followed by a colon, followed by a comma-separated list of any number
| of mailboxes (including zero and one), and ending with a semicolon.
| Because the list of mailboxes can be empty, using the group construct
| is also a simple way to communicate to recipients that the message
| was sent to one or more named sets of recipients, without actually
| providing the individual mailbox address for any of those recipients.

Ein Beispiel - das man auch in der Praxis antrifft - findet sich in
Appendix A.1.3:
| Appendix A.1.3. Group Addresses
|
| ----
| From: Pete <***@silly.example>
| To: A Group:Ed Jones <***@a.test>,***@where.test,John <***@one.test>;
| Cc: Undisclosed recipients:;
| Date: Thu, 13 Feb 1969 23:32:54 -0330
| Message-ID: <***@silly.example>
|
| Testing.
| ----
|
| In this message, the "To:" field has a single group recipient named
| "A Group", which contains 3 addresses, and a "Cc:" field with an
| empty group recipient named Undisclosed recipients.

Du packst also einfach "Undisclosed recipients:;" (genau so!) ins To:;
das sollte wohl funktionieren, wenn das überhaupt geht. Mein Exim
macht jedenfalls aus einem per
| ***@thangorodrim:~/temp$ cat testmail | /usr/sbin/exim -t
eingekippten
| From: Thomas <***@inter.net>
| To: Undisclosed recipients:;
| BCC: ***@inter.net
| Message-ID: <***@silly.example>
|
| Testing.
eine Mail (nur) an <***@inter.net>, also genau das, was Du wohl
willst. Und PHP macht ja per default nichts anderes als
"sendmail -t" aufzurufen.

Der richtige[tm] Weg wäre aber IMO sowieso der oben genannte andere.
: )

Ich leite mal nach de.comm.software.mailserver um, weil das eigentlich
eher weniger eine PHP-Frage ist.

Grüße,
-thh
Loading...