Mailinglisten-Archive |
ANGEL Harald schrieb: >Hi! > >Ich will auf meinem Intranet-Apache-PC die Funktion mail() verwenden. > >Mach ich: > ><? >mail("meinname at mydomain.com", "My Subject", "test"); >?> > >Kommt nur: Fatal error: Call to undefined function: mail() in >/srv/www/htdocs/test/mail.php on line 22 > >Ok, danach hab ich sendmail installiert, den sendmail_path in der >php.ini angepasst und mit "rcapache2 restart" den apache neu gestartet. >Funktionieren tut es aber immer noch nicht... > >Kann mir von euch wer sagen, wo mein Problem liegt? > >Danke, Harald > > Auf manchen Systemen ist sendmail bzw. mail() ausgeschaltet .. um das zu umgehen kann man auch direkt per Socket arbeiten ;-) .. das Skript unten meldet sich direkt am lokalen Mailserver an und verschikt darüber die Nachricht .. ;-) <?php /* *************************************** *\ * Sendmail Funktionalitaet per Socket :-D * \* *************************************** */ function socketmail($toArray, $subject, $message) { // Uebrgabe Parameter ist ein Array als Empfaengerliste // $toArray format --> array("Name1" => "address1", "Name2" => "address2", ...) // Sender eMail Adresse setzen $fromuser = "user at domain.com"; // ### FROM user eMail $username = "Username"; // ### FROM user Name // initialisiere und oeffne Socket ini_set(sendmail_from, $fromuser); $rcv = fgets($connect, 1024); // beim lokalen Mail-Server mittels HELO anmelden fputs($connect, "HELO {$_SERVER['SERVER_NAME']}\r\n"); $rcv = fgets($connect, 1024); // fuer alle Empfaenger in der Liste .. while (list($toKey, $toValue) = each($toArray)) { // Absender setzten fputs($connect, "MAIL FROM:$fromuser\r\n"); $rcv = fgets($connect, 1024); // Empfaenger setzten fputs($connect, "RCPT TO:$toValue\r\n"); $rcv = fgets($connect, 1024); // Daten folgen lassen fputs($connect, "DATA\r\n"); $rcv = fgets($connect, 1024); // Header senden fputs($connect, "Subject: $subject\r\n"); // Betreff fputs($connect, "From: $username <$fromuser>\r\n"); // Absender fputs($connect, "To: $toKey <$toValue>\r\n"); // Empfaenger fputs($connect, "X-Sender: <$fromuser>\r\n"); fputs($connect, "Return-Path: <$fromuser>\r\n"); // Rueckantwort fputs($connect, "Errors-To: <$fromuser>\r\n"); fputs($connect, "X-Mailer: PHP".phpversion()."\r\n"); fputs($connect, "X-Priority: 3\r\n"); fputs($connect, "Content-Type: text/plain; charset=iso-8859-1\r\n"); fputs($connect, "\r\n"); // Nachricht anhaengen fputs($connect, stripslashes($message)." \r\n"); fputs($connect, ".\r\n"); $rcv = fgets($connect, 1024); // Empfaenger abschliessen fputs($connect, "RSET\r\n"); $rcv = fgets($connect, 1024); } // Email fertig, Socket beenden! fputs ($connect, "QUIT\r\n"); $rcv = fgets ($connect, 1024); fclose($connect); ini_restore(sendmail_from); } /* *************************************************************************** *\ * Funktion um eine eMail anhand der Hostnamens und DNS auf echtheit zu testen * \* *************************************************************************** */ function checkmail($email) { if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$", $email, $check)) { if(getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp)) { return true; } if(checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY")){ return true; } } return false; } ?> regards, G. Lohmann
php::bar PHP Wiki - Listenarchive