der_kasi: E-Mail: benutzerdefinierter To-Header

Hallo liebe selfhtml-Community,

Ich habe (aus diversen Gründen in PHP) eine Mailinglisten-Software geschrieben. Die Verteilung der Mails geschieht per Bcc-Header. Das To-Feld bleibt leer. Es wäre schön und transparent, wenn darin der Inhalt des ursprünglichen To-Felds stehen würde.

Mein Ansatz sieht so aus:

mail('', $subject, $content, "To: mailingliste@bla.blubb\r\nBcc: empf1@bla.blubb\r\nempf2@bla.blubb");

Allerdings wird die Mail dabei erneut an die To-Adresse gesendet. Gibt es einen Weg, das zu verhindern? Oder eine andere Möglichkeit, die "To"-Anzeige im E-Mail-Programm des Empfängers zu beeinflussen?

Danke,
kasi

  1. Hi,

    Ich habe (aus diversen Gründen in PHP) eine Mailinglisten-Software geschrieben. Die Verteilung der Mails geschieht per Bcc-Header.

    Fein, das freut die Spamfilter.

    Das To-Feld bleibt leer. Es wäre schön und transparent, wenn darin der Inhalt des ursprünglichen To-Felds stehen würde.

    Mein Ansatz sieht so aus:

    mail('', $subject, $content, "To: mailingliste@bla.blubb\r\nBcc: empf1@bla.blubb\r\nempf2@bla.blubb");

    Allerdings wird die Mail dabei erneut an die To-Adresse gesendet.

    Was soll denn auch sonst passieren, wenn du den dafür zuständigen Header ganz explizit angibst?

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Hallo,

    Allerdings wird die Mail dabei erneut an die To-Adresse gesendet. Gibt es einen Weg, das zu verhindern?

    Beispielsweise indem sich dein Script "merkt", welche Email es bereits gesendet hat und alle eingehenden Mails mit denen vergleicht. Da der Empfang der soeben abgesendeten Mail nicht allzu weit in der Zukunft liegen dürfte, wird es vermutlich genügen, nicht jedes Mal mit allen Mails der Vergangenheit zu vergleichen, sondern nur die der letzten ? Minuten/Stunden/Tage.

    Viele Grüße,
    Sebastian

  3. Hallo und vielen Dank für eure Antworten.

    Eine relativ elegante Lösung habe ich soeben selbst gefunden.

    mail('', $subject, $content, "To: mailingliste@bla.blubb\r\nBcc: empf1@bla.blubb\r\nempf2@bla.blubb");

    Allerdings wird die Mail dabei erneut an die To-Adresse gesendet. Gibt es einen Weg, das zu verhindern?

    Zumindest bei meinem Hoster ruft die mail-Funktion von PHP sendmail standardmäßig mit dem Parameter "-t" auf. Dadurch parst sendmail die benutzerdefinierten Header - einschließlich der To-Angabe.

    Die sendmail-Parameter lassen sich theoretisch mit
    ini_set("sendmail_path", blablubb);
    ändern. Doch auch das funktioniert nicht bei allen Hostern.

    Eine Lösung bietet die PEAR-Klasse Mail unter Verwendung des sendmail-Backends ohne Angabe von $params, wodurch sendmail bei mir standardmäßig ohne den Parameter "-t" aufgerufen wird. Nebeneffekt: Bcc funktioniert ebenfalls nicht.

    http://pear.php.net/manual/en/package.mail.mail.factory.php

    Perfekt wäre eine Option à la "Ignoriere To-Header" - doch die habe ich in der sendmail-Manpage leider nicht gefunden.