29. Oktober 200817 j Hi, ich habe ein kleines Problem mit meiner Mail-Funtion! Da ich keinen eignen SMTP-Server auf dem Server laufen lasse, lasse ich den Mailversand per Socket machen. Mein Problem dabei ist, dass bevor der Header bzw. der DATA-Code kommt, einige XXXXXX... geschickt werden, sodass der Header keine Chance hat, in Kraft zu treten! $_MAIL["host"] ist z.B. mail.gmx.de oder ein anderer Provider! Beispiel eMail-Body: XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX Subject: test betreff2 testnachricht undso PHP-Funktion function mailer($email,$subject,$text){ global $_MAIL; $sender="service@xxxxx.de"; $hdr="From: <".$sender.">\n"; $hdr.="To: <".$email.">\n"; $hdr.="Subject: ".$subject."\n"; //Socket erstellen $fp = fsockopen($_MAIL["host"], $_MAIL["port"]); $banner = fgets($fp, 1024); //EHLO-CMD fputs($fp, "EHLO ".$_SERVER['SERVER_NAME']."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 220) die("HELO Statuscode: ".$result); //Authentifizierung fputs($fp, "AUTH LOGIN\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("AUTH LOGIN Statuscode: ".$result); //Username in BASE64 fputs($fp, base64_encode($_MAIL["user"])."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("Username Statuscode: ".$result); //Password in BASE64 fputs($fp, base64_encode($_MAIL["pass"])."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 235) die("Password Statuscode: ".$result); //Mail-Von fputs($fp, "MAIL FROM: <".$sender.">\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("MAIL FROM Statuscode: ".$result); //Mail für fputs($fp, "RCPT TO: <".$email.">\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0!=235) die("RCPT TO: Statuscode: ".$result); fputs($fp, "DATA\r\n"); $result = fgets($fp, 1024); if ($result+0!=354 AND $result+0!=250) die("DATA: Statuscode: ".$result); fputs($fp, $hdr); fputs($fp, $text."\r\n"); fputs($fp, ".\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250) die("DATA(end): Statuscode falsch: $result"); fputs($fp, "QUIT\r\n"); } [/PHP] Kann mir jemand einen Rat geben? Gruß, Jan
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.