SatansEier Geschrieben 25. April 2007 Geschrieben 25. April 2007 Hallo:) Die Hennen rennen mal wieder im Kreis. Über nen däftigen Stoß auf den Hinterkopf hät ich nichts einzuwenden. Ich schreib atm an nem Mailscript das nicht richtig laufen will. Lustig find ich das ich im internen Netz Mails damit verschicken kann, aber alles was raus soll geblockt wird. Mein Provider ist Strato und dessen SMTP hab ich auch der INI eingetragen (post.strato.de) Warning: mail() [function.mail]: Failed to connect to mailserver at "post.strato.de" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ... Warning: mail() [function.mail]: SMTP server response: 501 5.1.7 Error parsing address: < in ... [/PHP] Die stark abgespeckt Version des Scripts mit jedem "header" den ich schon ausprobiert hab: [PHP] function mailTo($empfaenger, $betreff, $name, $absender, $text) { // __Übernahme von Parametern__ $newEmpfaenger = trim($empfaenger); $newBetreff = trim($betreff); $newName = trim($name); $newAbsender = trim($absender); $newText = trim($text); // Header zusammenbasteln //$header = "FROM: $newName <$newAbsender>\r\n"; //$header = "FROM: ".$newName." <".$newAbsender.">\r\n"; //$header .= "From: \"".$newAbsender."\"\n"; $header .= "Content-Type: text/html\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n"; // Briefkopf $kopf = "<table><tr>\n"; $kopf .= "<td>Datum: ".date('j.n.Y')."</td>\n"; $kopf .= "<td style='padding-left: 10px;'>Von: $absender</td>\n"; $kopf .= "</tr><tr>\n"; $kopf .= "<td>Uhrzeit: ".date('H:i')."</td>\n"; $kopf .= "<td style='padding-left: 10px;'>An: $empfaenger</td>\n"; $kopf .= "</tr></table>\n"; $brief = $kopf.$umbruch.$newText.$umbruch.$umbruch.$footer; mail($newEmpfaenger, $newBetreff, $brief, $header) } mailTo("blub@moep.de", "Ein Betreff", "Mein Name", "MeineEmail", "balla bla la hallo"); Fällt einem was auf ...vllt der Fehler? *gg* Zitieren
geloescht_JesterDay Geschrieben 25. April 2007 Geschrieben 25. April 2007 Fällt einem was auf ...vllt der Fehler? *gg* Deinem HTML-Inhalt fehlt der DTD und allgemein das HTML-Grundgerüst. Auf was für einem System läuft das Skript? \r\n ist nur bei Windows + Novell als Zeilenumbruch ok, ein unixoides System benutzt \r als Zeilenumbruch. Das wär z.B. ein Punkt. Ansonsten zeig mal eine "fertige" Mail deines Skripts, also: $EOL = "\r\n"; ... echo $header.$EOL.$EOL.$brief; [/php] Das ist dann das, was der SMTP-Server bekommt und verarbeitet (+ Subject und Empfänger im Header). Zitieren
SatansEier Geschrieben 25. April 2007 Autor Geschrieben 25. April 2007 danke, noch bekomm ich aber den selben fehler. hab`s um folgendes erweitert: if (strtoupper(substr(PHP_OS,0,3)=='WIN')) { $eol="\r\n"; } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) { $eol="\r"; } else { $eol="\n"; } // Header zusammenbasteln $header = "FROM: $newName <$newAbsender>.$eol"; //$header = "FROM: ".$newName." <".$newAbsender.">".$eol; //$header .= "From: \"".$newAbsender."\"".$eol; $header .= "Content-Type: text/html".$eol; $header .= "Content-Transfer-Encoding: 8bit".$eol; // Briefkopf $kopf = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>".$eol; $kopf .= "<html>".$eol; $kopf .= "<head>irgendwas</head>".$eol; $kopf .= "<body>".$eol; $kopf .= "<table><tr>".$eol; $kopf .= "<td>Datum: ".date('j.n.Y')."</td>".$eol; ; $kopf .= "<td style='padding-left: 10px;'>Von: $absender</td>".$eol; $kopf .= "</tr><tr>".$eol; $kopf .= "<td>Uhrzeit: ".date('H:i')."</td>".$eol; $kopf .= "<td style='padding-left: 10px;'>An: $empfaenger</td>".$eol; $kopf .= "</tr></table>\n"; $brief = $kopf.$eol.$newText.$eol.$eol.$footer; $blub = mail($newEmpfaenger, $newBetreff, $brief, $header); [/PHP] Zitieren
geloescht_JesterDay Geschrieben 25. April 2007 Geschrieben 25. April 2007 Und wie sieht die Mail jetzt komplett aus, als Text? Und soweit ich weiß wird bei Linux \r benutzt, nicht \n... oder verwechsel ich das? Ich hab AFAIR immer \r benutzt. EDIT: Ach ja, wenn du hier im Forum suchst, findest du bestimmt den ein oder anderen Beitrag von mir, wo ich genau erklärt hab wie so eine Mail aussehen musst und aufgebaut sein muss. Bei mir funktioniert die Suche im Moment aber nicht, keine Ahnung woran das liegt. Zitieren
Amstelchen Geschrieben 25. April 2007 Geschrieben 25. April 2007 Warning: mail() [function.mail]: Failed to connect to mailserver at "post.strato.de" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ... Warning: mail() [function.mail]: SMTP server response: 501 5.1.7 Error parsing address: < in ... ich rate jetzt wieder einmal und versuche, bei drei treffern zumindest einen zu versenken: - post.strato.de nimmt mails nur nach SMTP-after-POP (oder bei vorheriger korrekt stattgefundener authentifizierung) an. - post.strato.de nimmt von deinem host, auf dem PHP läuft, aus anderern unerfindlichen gründen, keine mails an. - SMTP 501 weist auf eine nicht korrekte angabe der mailadresse, wahlweise der "from" oder der "to" hin; verursacht wird das möglicherweise durch fehlende ober überschüssige zeichen wie <, >, @ und anführungszeichen ("). wie JesterDay schon gemeint hat, poste bitte mal den kompletten inhalt des SMTP-envelopes. s'Amstel Zitieren
Eupinkepank Geschrieben 26. April 2007 Geschrieben 26. April 2007 Das hier ist die Beschreibung der Mail Funktion: function mail( string $to, string $subject, string $message, string[optional] $additional_headers, string[optional] $additional_parameters) [/PHP] Um also zu prüfen ob der Mail Server überhaupt korrekt eingerichtet ist, schreibe eine kurze Datei mit diesem Inhalt: [PHP] <? mail("deinemail@deinprovider.de","Das ist ein Test","Kuckuck, da bin ich"); ?> Kommt auch da ein Fehler, so ist Dein Mail Server nicht korrekt eingerichtet. Entsprechendes verrät Dir der Aufruf von phpinfo(); Poste mal den Link zu einer Datei die den Aufruf "phpinfo();" enthält... Dann kann Dir geholfen werden. Zitieren
SatansEier Geschrieben 26. April 2007 Autor Geschrieben 26. April 2007 mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in okay du hast vermutlich recht das, dass an den einstellung liegt. link zu phpinfo() Zitieren
Eupinkepank Geschrieben 26. April 2007 Geschrieben 26. April 2007 Hier ist der Fehler: sendmail_from no value no value sendmail_path no value no value Ist ja eine xampp installation... Warum installierst Du es nicht "richtig"? Zitieren
SatansEier Geschrieben 26. April 2007 Autor Geschrieben 26. April 2007 danke mann! ich hab halt xampp installiert und nahm an das alles passt was versteht man unter "sendmail_path"? Zitieren
geloescht_JesterDay Geschrieben 26. April 2007 Geschrieben 26. April 2007 was versteht man unter "sendmail_path"? sendmail_path string Pfad, in dem sich das sendmail-Programm befindet, z.B. /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht, die richtige Position automatisch zu finden. Falls die automatische Erkennung aber fehlschlägt und der Standardwert auf Ihrem Rechner falsch ist, dann können Sie hier den richtigen Pfad setzen. Falls Sie auf Ihrem Rechner sendmail nicht benutzen, müssen Sie den Pfad angeben, in sich der sendmail-Wrapper/-Ersatz befindet, sofern vorhanden. Zum Beispiel können » Qmail-Benutzer diese Option auf /var/qmail/bin/sendmail oder /var/qmail/bin/qmail-inject setzen. qmail-inject benötigt keine Optionen, um Mails korrekt zu verarbeiten. Diese Option funktioniert auch unter Windows. Wenn Sie gesetzt ist, werden smtp, smtp_port und sendmail_from ignoriert und das angegebene Kommando wird ausgeführt. Hier werden sie geholfen Zitieren
Amstelchen Geschrieben 26. April 2007 Geschrieben 26. April 2007 was versteht man unter "sendmail_path"? den pfad zum sendmail-binary, üblicherweise /usr/sbin/sendmail mit parameter -t, um die headerzeilen für den adressaten korrekt mitzugeben. s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.