instalar - enviar correo usando php y pear en windows
php send email install (2)
El método sí jeroens no muestra los mensajes de advertencia, pero ¿realmente resuelve el problema? aprehender @ solo oculta la advertencia asociada a él.
Para solucionar el problema en Mail.php, modifique la siguiente
function &factory($driver, $params = array())
Cambiarlo a
static function &factory($driver, $params = array())
La razón de este error se debe a que PEAR Mail no se ha actualizado a los Estándares PHP5 y aún usa PHP4, así que, gradualmente, a medida que los servidores adquieren PHP5, esto se volverá más frecuente. Es mejor arreglar que ocultar.
Espero que esto ayude
Estoy tratando de enviar un correo electrónico utilizando el script php, pero recibo errores, este es mi código. Estoy usando xampp netbeans y windows. e incluí pera en el archivo php.ini pero todavía tengo errores en las ideas
require_once "Mail.php";
$from = "[email protected]";
$to = "''$email''";
$subject = "Online book store information";
$body = "This is your Id ''$userID'' click <a href =../index.php > here </a> to change to go to the website "; //todo change URL to make it work when it is online
$host = "ssl://smtp.gmail.com";
$port = "993";
$host = "smtp.gmail.com";
$username = "[email protected]";
$password = "";
$headers = array(''From'' => $from,
''To'' => $to,
''Subject'' => $subject);
$smtp = Mail::factory(''smtp'', array(''host'' => $host,
''port'' => $port,
''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>");
}
y estos son los errores que estoy obteniendo:
Estándares estrictos: método no estático Mail :: factory () no debe llamarse estáticamente en C: / xampp / htdocs / OnlineBookStore / Store / Register.php en la línea 85
Estándares estrictos: método no estático PEAR :: isError () no debe llamarse estáticamente, asumiendo $ this desde un contexto incompatible en C: / xampp / php / PEAR / Mail / smtp.php en la línea 365
Estándares estrictos: método no estático PEAR :: isError () no debe llamarse estáticamente, asumiendo $ this desde un contexto incompatible en C: / xampp / php / PEAR / Net / SMTP.php en la línea 450
Estándares estrictos: método no estático PEAR :: isError () no debe llamarse estáticamente, asumiendo $ this desde un contexto incompatible en C: / xampp / php / PEAR / Net / SMTP.php en la línea 467
Me encontré con el mismo problema y lo resolví usando:
@require_once "Mail.php";
...
$smtp = @Mail::factory(''smtp'', array(''host'' => $host,
''port'' => $port,
''auth'' => true,
''username'' => $username,
''password'' => $password));
$mail = @$smtp->send($to, $headers, $body);
if (@PEAR::isError($mail)) {
Tenga en cuenta que preparé una @
a todas las llamadas pear / mail.
Prefiero esta solución para cambiar la configuración general del mensaje de error, ya que no quiero ver las advertencias pera / correo, pero sí quiero ver las que se aplican a mi propio código.