stephan: Massen-Mail-Sender

Hey,

ich suche schon ewig einen Massen-Mail-Sender der so funktioniert, dass er eine Liste an Empfängern abarbeitet und an alle eine eMail mit meinem definierten Inhalt etc schickt. Ideal wäre es, wenn hierfür der Browser nicht geöffnet bleiben muss. Das wäre aber nicht das Wichtigste.

Habt ihr eine Idee, welches Script das kann? Kennt oder habt ihr solche? Ich bin schon ewig auf der Suche, aber ich finde nichts...

Danke!

LG Stephan

PS: Es handelt sich nicht um spam, sondern für meine eigene Newsletter...

  1. Habt ihr eine Idee, welches Script das kann? Kennt oder habt ihr solche? Ich bin schon ewig auf der Suche, aber ich finde nichts...

    Wo zum Geier suchst du? Im Archiv der Stadtbibliothek?

    Google: PHP + Newsletter

    Die meisten, wenn nicht sogar alle, Newsletter Skripte versenden E-Mails an eine Vielzahl von Empfängern.

    1. Hellihello Matt

      Habt ihr eine Idee, welches Script das kann? Kennt oder habt ihr solche? Ich bin schon ewig auf der Suche, aber ich finde nichts...

      Wo zum Geier suchst du? Im Archiv der Stadtbibliothek?

      Google: PHP + Newsletter

      Die meisten, wenn nicht sogar alle, Newsletter Skripte versenden E-Mails an eine Vielzahl von Empfängern.

      Ist dabei nicht wesentlich, dass das über den SMTP-Account beim Mailserver läuft (also bei PHP nicht die mail() funktion genutzt wird sondern eine PEAR-Klasse zB., die eben auf Basis von SMTP  läuft)? - Damit man nicht in der Spam-Abwehr der Empfängerserver hängen bleibt?

      Dank und Gruß,

      frankx

      --
      tryin to multitain  - Globus = Planet != Welt
      1. Ist dabei nicht wesentlich, dass das über den SMTP-Account beim Mailserver läuft (also bei PHP nicht die mail() funktion genutzt wird sondern eine PEAR-Klasse zB., die eben auf Basis von SMTP  läuft)? - Damit man nicht in der Spam-Abwehr der Empfängerserver hängen bleibt?

        Hi,

        ja da hast du vollkommen recht. Man kann aber auch die mail() Funktion benutzen und den eigenen E-Mail-Server so einrichten, dass dieser über einen andere Host verschickt, der "verifiziert" ist und bei dem man sich authentifiziert.
        So wird es bei uns gemacht -> Da ist lokal ein Mercury installiert, der auf den Hauptmailserver weiterleitet und von dort aus versendet.

        Damit landet es bei den Mail Anbietern nicht im Spam.

        1. Hellihello

          Ist dabei nicht wesentlich, dass das über den SMTP-Account beim Mailserver läuft (also bei PHP nicht die mail() funktion genutzt wird sondern eine PEAR-Klasse zB., die eben auf Basis von SMTP  läuft)? - Damit man nicht in der Spam-Abwehr der Empfängerserver hängen bleibt?

          Hi,

          ja da hast du vollkommen recht. Man kann aber auch die mail() Funktion benutzen und den eigenen E-Mail-Server so einrichten, dass dieser über einen andere Host verschickt, der "verifiziert" ist und bei dem man sich authentifiziert.
          So wird es bei uns gemacht -> Da ist lokal ein Mercury installiert, der auf den Hauptmailserver weiterleitet und von dort aus versendet.

          Mercury local sendet dann per SMTP an den mail.example.com? Bzw. senden ist ja wohl immer SMTP. Aber gibts einen Unterschied zwischen Client-an-Server oder Script-an-Server(das ja auf jeden Fall) und Server-to-Server? Im Protokoll?

          Dank und Gruß,

          frankx

          --
          tryin to multitain  - Globus = Planet != Welt
          1. Moin!

            Mercury local sendet dann per SMTP an den mail.example.com? Bzw. senden ist ja wohl immer SMTP. Aber gibts einen Unterschied zwischen Client-an-Server oder Script-an-Server(das ja auf jeden Fall) und Server-to-Server? Im Protokoll?

            Nein, es gibt keinen Unterschied im Protokoll. Alles ist immer "SMTP via TCP".

            Die Angst vor der mail()-Funktion ist erstmal unbegründet. Diese ist eine sehr gute Möglichkeit, Mails einem queuenden, standardkonformen Mail-Transfer-Agent zur Auslieferung zu übergeben.

            Skripte, die direkt ausliefern wollen (egal ob selbst mit fsockopen(), oder mit Klassen), müssen aufwendig gestaltet sein, um sich wie ein kompletter SMTP-MTA zu verhalten.

            Natürlich ist das Thema "Spamfilter" ein Problem beim Mailversand. Aber gerade weil Spamfilterei höchst individuell passiert (nur als ein Aspekt: bedenke, dass der Erfolg von Bayes-Filtern darauf beruht, dass die Wortwahl in Ham-Mails des einzelnen Benutzers sich von der in Spam-Mails erkennbar unterscheidet - jeder Benutzer hat also ein anderes Ham- und Spam-Profil), ist es beim Mailversand fast unmöglich, auf jeden denkbaren individuellen Aspekt exakt einzugehen.

            Selbstverständlich muß man sich mit den verfügbaren und deshalb real anzutreffenden Techniken beschäftigen und seine Infrastruktur danach ausrichten:

            1. Greylisting darf einen nicht aus der Bahn werfen. Eine Mailqueue ist deshalb unerläßlich, Mails können prinzipiell nie direkt und ohne Warteschlange per Skript verschickt werden, wenn temporäre SMTP-Fehler den Versand insgesamt scheitern lassen.

            2. Wenn die Mailabsender-Domain Dinge wie SPF oder DomainKeys nutzt, muß man sich natürlich an die daraus resultierenden Vorgaben halten, oder diese öffentlichen Angaben so korrigieren, dass sie den Massenmailserver mit einschließen.

            3. Die bis aufs Komma exakte Implementierung des SMTP- und Mime-Standards ist unerläßlich. Spambots sind glücklicherweise oft nachlässig programmiert und eröffnen deshalb eine Filtermöglichkeit, in der man selbst lieber nicht hängenbleiben sollte. Gerade dieser letzte Punkt führt oft zu Empfangsproblemen, weil die Inhaltsfilter wie Spamcop einfach keine Freestyle-Mails mögen, die nur mit halber Kenntnis der RFCs zusammengefummelt werden.

            Zunächst machtlos ist man allerdings gegen "gegnerische" Filter, die Dinge wie "Anzahl pro Zeit versendeter Mails" registrieren und dann dichtmachen, oder bei Nutzern von Blacklists fragwürdiger Qualität. Das ist allerdings eher ein Problem der Empfänger bzw. deren Verhältnis zum Mailadmin. Wer sich legitime Mails z.B. eines bestellten Newsletters wegfiltern läßt (u.U. ohne Kenntnis), weil der Mailadmin merkwürdige Ansichten über Spamfilterung hat, der hat's nicht anders verdient. Wer seinen selbstgepflegten, strengen Spamfilter nicht auf Durchlass für den Newsletter stellt, hat ebenfalls selbst Schuld. Je nach SMTP-Antwort des Mailservers sollten solche Zieladressen nach einigen final scheiternden Versuchen lieber aus der Datenbank gelöscht werden, weil sie nur Rechenzeit verschwenden.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
          2. Hello,

            [...] Bzw. senden ist ja wohl immer SMTP. Aber gibts einen Unterschied zwischen Client-an-Server oder Script-an-Server(das ja auf jeden Fall) und Server-to-Server? Im Protokoll?

            Nur so nebenbei:

            Es gibt den hier schon mehrfach diskutierten Unterschied, ob ein Script mittels der Mailfunktion auf ein "Sendmail"-Script des Linux-Host sendet, oder ob dieses Script mittels SMTP-Port 25 direkt dem smtp-Server etwas sendet (PHP auf Windows).

            Der SMTP-Server wünscht die Daten "normgerecht", also mit CRLF als Zeilenumbrüche, das Sendmail-Script wünscht sich die Eingaben "konsolenkonform", also nur mit LF als Zeilenumbruch.

            Ein harzliches Glückauf

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hellihello MountainTom,

              [...] Bzw. senden ist ja wohl immer SMTP. Aber gibts einen Unterschied zwischen Client-an-Server oder Script-an-Server(das ja auf jeden Fall) und Server-to-Server? Im Protokoll?

              Nur so nebenbei:

              Es gibt den hier schon mehrfach diskutierten Unterschied, ob ein Script mittels der Mailfunktion auf ein "Sendmail"-Script des Linux-Host sendet, oder ob dieses Script mittels SMTP-Port 25 direkt dem smtp-Server etwas sendet (PHP auf Windows).

              Der SMTP-Server wünscht die Daten "normgerecht", also mit CRLF als Zeilenumbrüche, das Sendmail-Script wünscht sich die Eingaben "konsolenkonform", also nur mit LF als Zeilenumbruch.

              Oh, fein, muss ich im Archiv graben? Ich hätte ja gerne mal eine alternative zum Versand aus einem Mailclient, also einen "Formmailer", aber wohl am besten basierende auf SMTP, so hatte ich jetzt mal geschlussfolgert, wenn man wirklich mal zB. in einen Verteiler der ehemaligen Schüler eine Schule Mails an über 1000 Mailaddys versenden wollen würde. Das Kleinschneiden und Versenden per Outlook bspw. (ja, ich nehme auch lieber Thunderbird mit Linux) ist dann ja doch etwas mühselig. Und auch der Zugriff auf solch einen Verteiler ließe sich ja besser organisieren, wenn das übe rein Serverscript läuft (Sicherheit vorausgesetzt).

              Dank und Gruß,

              frankx

              --
              tryin to multitain  - Globus = Planet != Welt
              1. Hello,

                Es gibt den hier schon mehrfach diskutierten Unterschied, ob ein Script mittels der Mailfunktion auf ein "Sendmail"-Script des Linux-Host sendet, oder ob dieses Script mittels SMTP-Port 25 direkt dem smtp-Server etwas sendet (PHP auf Windows).

                Das nochmal zur Klarstellung: Die Funktion mail() aus PHP macht das eigenständig. Bei Windows versucht sie die Daten per Port 25 an einen SMTP-Server weiterzureichen, bei Linux verwendet sie das in der Konfigurationsdatei eingetragene Shell-Script dafür. Und das Shellscript mag als Input keine CRLF-Linefeeds, sondern nur LF.

                Oh, fein, muss ich im Archiv graben?

                wäre nicht dumm, da vor gar nicht so langer Zeit dieses ganze Thema, inclusive notwendiger Codierung, hier ausführlich diskutiert wurde. Es wurden einige Erkenntnisse dabei zu Tage gefördert und in klare Worte gefasst, die bestimmt schon alle Beteiligten wussten, sich aber noch nicht wirklich klar gemacht hatten...

                Ein harzliches Glückauf

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. Hellihello Tom,

                  Es gibt den hier schon mehrfach diskutierten Unterschied, ob ein Script mittels der Mailfunktion auf ein "Sendmail"-Script des Linux-Host sendet, oder ob dieses Script mittels SMTP-Port 25 direkt dem smtp-Server etwas sendet (PHP auf Windows).

                  Das nochmal zur Klarstellung: Die Funktion mail() aus PHP macht das eigenständig. Bei Windows versucht sie die Daten per Port 25 an einen SMTP-Server weiterzureichen, bei Linux verwendet sie das in der Konfigurationsdatei eingetragene Shell-Script dafür. Und das Shellscript mag als Input keine CRLF-Linefeeds, sondern nur LF.

                  Oh, fein, muss ich im Archiv graben?

                  wäre nicht dumm, da vor gar nicht so langer Zeit dieses ganze Thema, inclusive notwendiger Codierung, hier ausführlich diskutiert wurde. Es wurden einige Erkenntnisse dabei zu Tage gefördert und in klare Worte gefasst, die bestimmt schon alle Beteiligten wussten, sich aber noch nicht wirklich klar gemacht hatten...

                  http://forum.de.selfhtml.org/archiv/2008/1/t165821/#m1081105

                  or

                  http://forum.de.selfhtml.org/archiv/2008/2/t165988/#m108222

                  or

                  http://forum.de.selfhtml.org/archiv/2008/2/t166122/#m1083255

                  or

                  http://forum.de.selfhtml.org/archiv/2008/4/t170489/#m1114576

                  hattest du was bestimmtes in erinnerung?

                  Dank und Gruß,

                  frankx

                  --
                  tryin to multitain  - Globus = Planet != Welt
                2. Hi,

                  Die Funktion mail() aus PHP macht das eigenständig. [...] bei Linux verwendet sie das in der Konfigurationsdatei eingetragene Shell-Script dafür. Und das Shellscript mag als Input keine CRLF-Linefeeds, sondern nur LF.

                  wenn das so ist, warum machen dann meinme CRLF bei all-inkl mit Linux dd12400 2.6.24.4-nmm2 keine Probleme?

                  freundliche Grüße
                  Ingo

                  1. Hellihello

                    ihr redet von ascii 10 und ascii 13 in den Headern?

                    Dank und Gruß,

                    frankx

                    --
                    tryin to multitain  - Globus = Planet != Welt
                  2. Hello,

                    wenn das so ist, warum machen dann meinme CRLF bei all-inkl mit Linux dd12400 2.6.24.4-nmm2 keine Probleme?

                    Das kann ich schwer beantworten, wenn Du mir das notwendige Material dazu nicht zur Verfügung stellst.

                    1. den Inhalt der Konfigurationsvariable sendmail_path
                    2. die Mailscripte

                    Die Fehler treten ja nur dann auf, wenn man ein klassisches "sendmail"-Script verwendet, egal, welcher MTA dann später die Arbeit wirklich übernimmt.

                    Und sie treten auch nur dann auf, wenn man MIME-Mails produziert.
                    Die Main-Header werden bei Erkennen von "sendmail" von der mail()-Funktion ohnehin separiert, und mit einem LF wieder zusammenbebaut, egal, ob man sie mit CRLF oder mit LF in sein Script geschrieben hat.

                    Nur, wenn Du jetzt Multipart oder Related baust, dann wird es eklig. Sie Subheader und auch die encoded data (Bilder und Anhänge) werden nicht mehr angefasst von der Mail-Funktion und müssen daher ggf. mit LF, statt mit CRLF an das Script übergeben werden.

                    Was Du in deinem Mailbody in einer Plaintext-Mail veranstaltest, das is so ziemlich Dein Privatvergnügen, denn das sind "Daten" im Sinne des ursprünglichen, über 25 Jahre alten Mailprotokolls und werden daher nicht angefasst, bestenfalls von der Übertragungsstrecke verstümmelt, wenn sie mehr als 7 Bit Breite haben.

                    Ein harzliches Glückauf

                    Tom vom Berg

                    --
                    Nur selber lernen macht schlau
                    http://bergpost.annerschbarrich.de
                    1. Hi,

                      Und sie treten auch nur dann auf, wenn man MIME-Mails produziert.
                      Die Main-Header werden bei Erkennen von "sendmail" von der mail()-Funktion ohnehin separiert, und mit einem LF wieder zusammenbebaut, egal, ob man sie mit CRLF oder mit LF in sein Script geschrieben hat.

                      Das erklärt's - genau das ist bei mir bzw. meinen Scripts der Fall.

                      freundliche Grüße
                      Ingo