| 

.NET C# Java Javascript Exception

Antwort #A1576 zur Frage #F420: mail()-Funktion von PHP

Diese Antwort hat bisher 2 Versionen. Frage #F420: mail()-Funktion von PHP - Antwort #A1576


Version 2
16.11.2009 10:18:01
Dies ist die aktuelle Version
Also, insbesondere bei AOL ist dieses Verhalten leider bekannt. In jedem Fall empfehle ich Dir, auf das PHP-eigene mail() zu verzichten, wenn verhindert werden soll, dass die Mails im SPAM landen bzw. ausgefiltert werden.
Ich würde Dir die Mail-Klasse aus PEAR empfehlen, die oftmals bei den verschiedenen Hostern bereits vorinstalliert ist:

function sendEmail($to, $from, $subject, $message) {
require_once "Mail.php";
$params = array();
$params["host"] = 'smtp.HOST.com'; # The server to connect. Default is localhost.
$params["port"] = 25; # The port to connect. Default is 25.
$params["auth"] = true; # Whether or not to use SMTP authentication. Default is FALSE.
$params["username"] = 'webmaster@YOURWEBSITE.com'; # The username to use for SMTP authentication.
$params["password"] = 'password'; # The password to use for SMTP authentication.

$mail_object =& Mail::factory('smtp', $params);

$headers = array();
$headers['From'] = 'No-Reply <info@YOURWEBSITE.com>';
$headers['Reply-To'] = $from;
$headers['X-Mailer'] = 'PHP/' . phpversion();
$headers['To'] = $to;

$subject = utf8_decode($subject);
$subject = mb_encode_mimeheader($subject, mb_internal_encoding(), 'B', "\n");
$headers['Subject'] = $subject;

$headers['Content-Type'] = 'text/plain; charset=UTF-8';
$headers['Content-transfer-encoding'] = 'Content-transfer-encoding: 8bit';

$ok = $mail_object->send($to, $headers, $message);

return $ok;
}


Auf diese Weise ist es, als würdest Du die Mails mit Deinem Mailprogram abschicken. Insbesondere die Authentifizierung ist hier der entscheidende Unterschied zu php's mail()-Funktion.

Dennoch werden von Zeit zu Zeit AOL-User die Mails nicht lesen können. Nach allem, was ich im Netz dazu recherchieren konnte, hast Du in diesem Fall keinerlei Hilfe Seitens AOL zu erwarten...
RomanB 351 4
Version 1
16.11.2009 10:18:01
Also, insbesondere bei AOL ist dieses Verhalten leider bekannt. In jedem Fall empfehle ich Dir, auf das PHP-eigene mail() zu verzichten, wenn verhindert werden soll, dass die Mails im SPAM landen bzw. ausgefiltert werden.
Ich würde Dir die Mail-Klasse aus PEAR empfehlen, die oftmals bei den verschiedenen Hostern bereits vorinstalliert ist:

function sendEmail($to, $from, $subject, $message) {
require_once "Mail.php";
$params = array();
$params["host"] = 'smtp.HOST.com'; # The server to connect. Default is localhost.
$params["port"] = 25; # The port to connect. Default is 25.
$params["auth"] = true; # Whether or not to use SMTP authentication. Default is FALSE.
$params["username"] = 'webmaster@YOURWEBSITE.com'; # The username to use for SMTP authentication.
$params["password"] = 'password'; # The password to use for SMTP authentication.

$mail_object =& Mail::factory('smtp', $params);

$headers = array();
$headers['From'] = 'No-Reply <info@YOURWEBSITE.com>';
$headers['Reply-To'] = $from;
$headers['X-Mailer'] = 'PHP/' . phpversion();
$headers['To'] = $to;

$subject = utf8_decode($subject);
$subject = mb_encode_mimeheader($subject, mb_internal_encoding(), 'B', "\n");
$headers['Subject'] = $subject;

$headers['Content-Type'] = 'text/plain; charset=UTF-8';
$headers['Content-transfer-encoding'] = 'Content-transfer-encoding: 8bit';

$ok = $mail_object->send($to, $headers, $message);

return $ok;
}
RomanB 351 4