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