PHP Mailer

Imagen de Edakos

Forums: 

Qué tal grupo!

Si alguien me pudiera ayudar con este problema se los agradecería. Tengo que enviar más de 100 emails personalizados y quería automatizar la nota con PHPMailer, y conectarme con autentificación a mi cuenta de correo de donde trabajo. Ya instalé este PHPMailer, colocando los archivos class.phpmailer.php, class.smtp.php, phpmailer.lang-en.php y phpmailer.lang-es.php en la carpeta de includes especificada en el php.ini. Hice una prueba, mandándome un correo a mi misma cuenta de correo y funcionó, pero al querer enviar a una cuenta externa de yahoo y gmail (intentos por separado) sale el error "Language string failed to load: recipients_failed(correo electrónico)". Estoy en un servidor Web con Windows XP, Apache 2, PHP 5.1.2 y PHP Mailer 1.73.

Más detalles ....

Imagen de deathUser

PHPMailer está configurada para usar un servidor SMTP o la función mail de PHP ??? te recomiendo un servidor SMTP, trata de cambiar la config de tu PHP para que sea más explícito en los errores, revisa los logs de apache en busca de los errores.

bye
:)

Así sea con PHPMailer o

Imagen de Edakos

Así sea con PHPMailer o esta función mail() de PHP, de ley se necesita un servidor SMTP, solo que con el segundo se lo configura en php.ini y no permite autenticación ni peor ssl. Revisando el código de este PHPMailer, el error que sale tiene que ver con que no encuentra el lenguaje de los errores debido a que está configurado para el sistema de archivos de Linux (con /) y no para Windows (con \), por lo que poniendo explícitamente dónde estaba el archivo para español:

$mail->SetLanguage("es","c:\\php\\includes\\");

por lo menos sacó el mensaje de error real, que es:

Error SMTP: Los siguientes destinatarios fallaron: correo@externo.com

Pero si se manda a un correo que esté en el mismo dominio del especificado en From:

$mail->From = "mi@correo_interno.com"; //correo_interno.com es el dominio
$mail->AddAddress("otro@correo_interno.com"); //Este sí se envía
$mail->AddAddress("correo@externo.com"); //Este no se envía

Lo extraño es que comentando la autenticación, igual se mandan los internos y no se mandan los externos, por lo que creo es una falla en la configuración de la cuenta de correo desde la que intentaba enviar.

Gracias por la ayuda, saludos.

Prueba con el XAMPP

El problema no es tu script PHP ni menos tu servidor, sino las politicas de seguridad del servidor externo, es decir Windows Live Mail no permite la recepcion de email de un servidor SMTP con IP dinamica esto se hace para evitar el SPAM, y esto lo puedes constatar instalando el XAMPP, es como el appserv, wamp, etc etc.. solo que el XAMPP viene con completo.. es decir.. PHP,MySQL,Mercury(envio de email),FileZilla(Server FTP), y en el log del Mercury al momento de enviar.. observaras los detalles del error.

Suerte.

XAMPP Website: www.apachefriends.org/en/xampp.html