Was ist falsch mit diesem PHP-script senden Sie E-mail mit Pear Mail?
Habe ich dieses Skript:
require_once "Mail.php";
$from = "Stephen <[email protected]>";//Google apps domain
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "mail.nvrforget.com";
$username = "[email protected]";
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
Ich komme mit diesem Fehler:
Non-static method Mail::factory() should not be called statically
Irgendeine Idee, wie man dieses Problem beheben? Pear Mail auf dem server installiert ist.
- Korrekt sieht. Sind Sie sicher, dass Ihr Pear-Mail-Bibliothek enthalten, richtig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein nicht-tödlichen bemerken kommt von PHP, weil PEAR Mail ist prähistorischen und wurde nicht aktualisiert, um die Verwendung der
static
Schlüsselwort eingeführt, vor fünf Jahren in PHP5.Nach prüfen der Dokumentation, Ihren Anruf zu
Mail::factory
sieht völlig korrekt und normal.Konnte Sie nicht sagen, uns, wenn wenn der Anruf an
send
erfolgreich ist oder fehlschlägt. Wenn es gelingt, aber die E-mail wird nie zugestellt werden, bitte überprüfen Sie die SMTP-server-logs. Wenn es fehlschlägt, was die eigentliche Fehlermeldung? DieE-Mail::send
Dokumentation enthält eine umfassende Liste von Fehlern.Möchten Sie vielleicht zu prüfen, mit einem mehr moderne mail versenden Bibliothek, wie Swiftmailer.
vielleicht hat es zu tun mit einer fehlenden kaufmännischen und-Zeichen?
Merke ich in der Dokumentation Beispiele, die Verwendung der factory sieht wie folgt aus:
Hinweis: die Zuweisung mit =ist&
vorangestellt, die eine @ an alle pear /mail Anrufe. irgendwann können Sie am Ende mit Mail::factory() sollte nicht aufgerufen werden statisch Fehler