Ho questo script:
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 = arrays ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', arrays ('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>"); }
Sto arrivando con questo errore:
Non-static method Mail::factory() should not be called statically
Qualche idea su come risolvere questo problema? Pear Mail è installato sul server.
Metodo non statico Mail :: factory () non dovrebbe essere chiamato staticamente
Questo è un avviso non fatale proveniente da PHP perché PEAR Mail è preistorico e non è stato aggiornato per utilizzare la parola chiave static
introdotta cinque anni fa in PHP5.
Dopo aver esaminato la documentazione , la chiamata a Mail::factory
sembra completamente corretta e normale.
Non sei riuscito a dirci se la chiamata per send
esito positivo o fallisce. Se ha esito positivo, ma la posta non viene mai consegnata, controlla i log del server SMTP. Se non funziona, qual è il messaggio di errore effettivo? La documentazione di Mail::send
include un elenco completo di errori.
Potresti prendere in considerazione l'utilizzo di una posta più moderna che invia una libreria, come Swiftmailer .
forse ha a che fare con una e commerciale?
Noto negli esempi di documentazione, l'utilizzo della fabbrica è simile a questo:
// Create the mail object using the Mail::factory method $mail_object =& Mail::factory('sendmail', $params);
Annota l'asserzione usando = &
anteposto un @ a tutte le chiamate pera / posta. a volte potresti finire con Mail :: factory () non dovrebbe essere chiamato errore statico