Mailinglisten-Archive |
André Laugks wrote: > Ok, jetzt kann ich mit additional_headers was anfangen. > > Dann kann ich ja die Emailadresse des Absenders mit übergeben, cool. Dies und vieles mehr. Eine elektronische Mail besteht wie ein echter Brief aus einem Breifumschlag und einem Inhalt. Anders als im realen Leben liefern wir jedoch nur den Inhalt bei der Post ab. Der Inhalt besteht stets aus zwei Teilen. Einem Formular u.a. mit der Absenderadresse ("header") und der eigentlichen Nachricht ("body"). In der Post werden die Teile in einen Briefumschlag ("envelope") gesteckt. Der Postbeamte schreibt eine Zieladresse und zwischendurch einige Notizen auf den Umschlag und gibt ihn weiter. Die bekannteste und verbreiteste Postbeamtengewerkschaft, auch MTA (Mail transfer agent) genannt, heißt sendmail und wohnt bei http://www.sendmail.org . Da es furchtbar langweilig und fehleranfällig ist Formulare auszufüllen und Programmierer faul sind, haben die Entwickler von PHP eine Funktion namens mail() geschrieben. Bei typischen Aufgaben übernimmt mail() die Erzeugung des (minimalen, notwendigen) Headers und leitet die Daten an sendmail weiter. In einigen Fällen ist es jedoch wünschenswert noch weitere Formularfelder auszufüllen. Einen Eindruck davon, wieviele es gibt bekommst Du, wenn Du deinen Mailclient anweist alle Header anzuzeigen (Netscape: View->Header->All / Anzeigen->Kopfzeilen->Alle ). Welche es wirklich gibt erfährst Du u.a. in der RFC 822, http://www.sendmail.org/rfc/0822.html. +++ generelle Form +++ Beim setzen eines Headerelements muß eine formale Form stets eingehalten werden. Sie lautet im einfachsten Fall: "Feldname:Feldinhalt\n". Die Schreibweise von Feldname sollte unerheblich sein, Doppelpunkt und Newline (\n) sind Pflicht. Vorsicht, dies ist eine beliebte Fehlerquelle. +++ From +++ Kai hat schon eines der häufigsten Feldnamen benannt: mail( $to_addr, $subject, $body, "From: ulf_(at)_redsys.de (Kommentar: Ulf Wendel)\n") . Falls die sendmail Konfiguration auf der Maschine auf der PHP läuft das Setzen dieses Headers erlaubt, wird die Absenderadresse überschrieben. Diese Einschränkung gilt auch für alle anderen Header. +++ Reply-To +++ Überschreibt die Reply-To Adresse. +++ X-Mailer +++ Auch bereits von Kai benannt: mail ( $to_addr, $subject, $body, "X-Mailer: PHP3.0.13\n" ). Tendenziell ein Gimmick. +++ cc +++ Sendet eine Kopie zur Kenntnisnahme an die angegebene Adresse (wie ein weiteres "To:" im Netscape): mail ($to_addr, $subject, $body, "From: info_(at)_pc-info.de\ncc: ulf_(at)_redsys.de\n" ); Bei dieser Mail sehe ich als Empfänger, das eine Kopie an Kai ging. Anders als bei "bcc". +++ bcc +++ Sendet eine Kopie der Mail ohne die übrigen bcc's in der jeweiligen Kopie aufzuführen. Das setzen von bcc's ist der beste Weg, um mit PHP eine Mail an diverse Empfänger zu senden. Folgender Code ist sehr ineffektiv, weil fünf sendmail Aufrufe erfolgen. Fünf mal wird ein neuer Prozeß gestartet. $adressen = array ("ulf_(at)_redsys", "uw_(at)_netuse.de", "kai_(at)_pc-infos.de", "webmaster_(at)_pc-infos", "Andre.Laugks_(at)_netcologne.de" ); reset($adressen); while (list(, $adr)=each($adressen)) _(at)_mail ($adr, $subject, $body ); Stattdessen sollte man einen Header mit vielen bcc's erzeugen und nur einmal mail() (und damit sendmail) aufrufen. +++ Fehler +++ ... sind garantiert im obigen Code, weil ich kein Handbuchman bin ;-). Weitere Infos finden sich in den einschlägigen Archiven. In den Scriptsammlungen sollten sich Klassen zur Erstellung der Header finden lassen. > length ist eine variable Länge. > > var telefon = new Array(123456, 4578945, 479566, 145789); > > for(var i = 0; i < telefon.length, i++) > { > document.writeln(telefon[i] + "<br>"); > } Wenn ich mich recht entsinne ist die JavaScript Eigenschaft bei etlichen Objekten verschiedenen Typs vorhanden. Kai hat bereits völlig korrekt das Pendant für den Typ Array genannt: count(). +++ Arrays +++ Anzahl der Elemente in der ersten Dimension: http://www.php.net/manual/function.count.php3 Redewendung zur Anzeige eines Arrays: reset($daten); while (list($k, $v)=each($daten)) echo "$k => $v<br>\n"; +++ Strings +++ http://www.php.net/manual/function.strlen.php3 Ulf
php::bar PHP Wiki - Listenarchive