Foros del Web » Programando para Internet » PHP »

PHP Mailer - Cambiar remitente y errores de SMTP

Estas en el tema de PHP Mailer - Cambiar remitente y errores de SMTP en el foro de PHP en Foros del Web. Hola a todos! Tengo un sistema de envío de e-mails de alerta que ha funcionado bien durante un tiempo, usando el SMTP del servidor local, ...
  #1 (permalink)  
Antiguo 20/08/2012, 17:41
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 9 meses
Puntos: 336
PHP Mailer - Cambiar remitente y errores de SMTP

Hola a todos!

Tengo un sistema de envío de e-mails de alerta que ha funcionado bien durante un tiempo, usando el SMTP del servidor local, pero ahora ha sido necesario usar un servidor SMTP remoto (de gmail).

he configurado como se muestra a continuación:

Código PHP:
//ALARMAS//
require("PHPMailer/class.phpmailer.php");
$mail = new PHPMailer();

//common headers
$mail->IsSMTP();
//$mail->Mailer = "smtp";
$mail->Host="smtp.gmail.com";
$mail->Port=465;
$mail->SMTPAuth=true;
$mail->SMTPSecure="ssl";
$mail->Timeout=30;

$mail->FromName "INFO";
$mail->CharSet "UTF-8";

$MQus=mysql_query("SELECT name,mail FROM ...bla...bla...bla",$cnx);
while(
$MFAus=mysql_fetch_array($MQus)){
    
$mail->AddAddress($MFAus['mail']);
    
$bodyN=str_replace("#Name",$MFAus['name'],$body);
    
$bodyN=str_replace("
"
,"<br>",$bodyA);
    
$bodyA.="

"
.$lang->tran("Map location").": ".$urllnk;

    
$mail->IsHTML(true);
    
$mail->Body=($bodyN);
    
$mail->AltBody=($bodyA);echo "<div>".$MFAmsg['user'].":".$MFAus['mail'].":".$MFAmsg['pass']."</div>";
    
$mail->Send();
    
$mail->ClearAddresses();

Como verán se hace un ciclo de envíos en vez de agregar todas las direcciones ya que cada destinatario recibe un e-mail diferente según los datos de la consulta mySQL.

ahora el problema es que el primer envío me da un mensaje de error de autentificación, y los siguientes me dan error al cambiar el remitente ($mail->AddAddress($MFAus['mail']);) como sale a continuación:

Código HTML:
SMTP Error: Could not authenticate.
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
siendo que al terminar la ejecución limpio todas las direcciones ($mail->ClearAddresses();).

Ahora lo curioso es que los e-mails si llegan º_0.

Pero aún así me gustaría arreglar estos errores, alguien sabe como arreglarlo?

Saludos!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 20/08/2012, 18:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 7 meses
Puntos: 528
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

Creo que el problema es que el servidor no acepta que indiques un remitente distinto al email desde donde envías, la única forma de arreglarlo que he encontrado es usar el mismo remitente de la cuenta origen o no usar remitente
  #3 (permalink)  
Antiguo 20/08/2012, 19:13
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 9 meses
Puntos: 336
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

gracias por la ayuda, pero a que te refieres con el remitente distinto de la cuenta de origen desde donde envío?

Que no son lo mismo?

la cuenta desde donde envío es el remitente, esa cuenta la defino en la linea que dice:

$mail->AddAddress($MFAus['mail']);

la cual pertenece al smtp del servidor de gmail (smtp.gmail.com), por ejemplo [email protected]

Si te fijas, tanto el remitente como el destinatario cambian cada vez según la DB,

ahora me está arrojando este error:

Código:
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
SMTP Error: Data not accepted.
y no he cambiado nada, solo actualice, a veces también se envía todo correctamente sin errores, no entiendo
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 20/08/2012, 19:53
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 7 meses
Puntos: 528
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

Imagino que usas una cuenta origen, es decir la que tiene usuario y contraseña, si esta difiere de la que indicas como remitente, el posible que el servidor rechace el envío del email, por posible phishing
  #5 (permalink)  
Antiguo 21/08/2012, 15:38
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 9 meses
Puntos: 336
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

No uso una cuenta de origen, conecto desde un servidor al servidor de gmail, pero dejando de lado lo del cambio de remitente, sigo sin solucionar el problema de coneccion al SMTP:

SMTP Error: Data not accepted

Y a veces también me sale este:

SMTP Error: Could not connect to SMTP host.

La configuración que estoy usando actualmente es:

Código PHP:
//common headers
$mail->PluginDir "PHPMailer/";
$mail->IsSMTP(); // he probado comentando esto
$mail->Mailer "smtp"// he probado comentando esto
$mail->Host="smtp.gmail.com"// he probado tambien con "ssl://smtp.gmail.com"
$mail->Port=465;
$mail->SMTPAuth=true;
$mail->SMTPSecure="ssl"// he probado comentando esto
$mail->Timeout=30;

$mail->FromName "INFO";
$mail->CharSet "UTF-8";

$mail->From=$MFAmsg['sender'];
$mail->Username=$MFAmsg['user'];
$mail->Password=$MFAmsg['pass'];
$mail->Subject="titulo del mensaje";

$mail->IsHTML(true);
$mail->Body=($bodyN);
$mail->AltBody=($bodyA);
$mail->Send(); 
No he logrado solucionarlo eficientemente, he buscado guias de como hacerlo correctamente para gmail, pero ninguna funciona, he revisado estas páginas:

http://es.wikicode.org/index.php/Con...iler_con_Gmail
http://www.garabatoslinux.net/php-co...con-gmail.html
http://www.garabatoslinux.net/como-u...oogleapps.html

Que dicen tener la solución para enviar e-mails desde Gmail, pero me sigue saliendo error de autentificacion de SMTP...

o sea el problema principal es la conección al SMTP.

he revisado el nombre y contraseña y sigue todo bien, no se que me falta
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 22/08/2012, 09:53
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 8 años, 10 meses
Puntos: 155
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

vi estas ligas we a ver si alguna pega

http://stackoverflow.com/questions/6...a-not-accepted
http://stackoverflow.com/questions/3...t-to-smtp-host
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 22/08/2012, 18:29
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 9 meses
Puntos: 336
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

Bien! mogurbon, he avanzado algo, he hecho lo del segundo enlace que es habilitar el openssl que aparece en el php.ini, pero ahora me aparece un error nuevo :(

SMTP -> ERROR: Failed to connect to server: Se produjo un error durante el intento de conexi�n ya que la parte conectada no respondi� adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexi�n establecida ya que el host conectado no ha podido responder. (10060)

voy a googlear eso a ver si encuentro algo util...
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 22/08/2012, 19:24
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 9 meses
Puntos: 336
Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

He descubierto el problema, se trata de un filtro anti-spam de Gmail, si alguien llega a tener un problema similar, leer esto:

https://support.google.com/mail/bin/...n&answer=22839

Gracias a ambos por su ayuda :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 22/10/2012, 15:03
 
Fecha de Ingreso: octubre-2012
Ubicación: Talcahuano
Mensajes: 4
Antigüedad: 7 años, 1 mes
Puntos: 1
Información Respuesta: PHP Mailer - Cambiar remitente y errores de SMTP

stramin, estos días me he estado devanando los sesos para resolver un problema similar que tienes para conectar desde PHPMailer con el servidor de Gmail. La solución que encontré consiste en dos partes.

1) Debes tener habilitado OpenSSL (extension=php_openssl.dll) en tu archivo php.ini

2) Si estas trabajando con un servidor pagado por Internet tendrás que contactarte con soporte técnico y pedirles que te habiliten el puerto 465 en las variables TCP_IN y TCP_OUT en la configuración del firewall para que el phpmailer se pueda comunicar con el server de Gmail. Caso contrario siempre te aparecerá el famoso mensaje "SMTP -> ERROR: Failed to connect to server". Y "ojo" que no es algo automático. Yo le solicité al administrador de mi servidor que hiciera estos cambios y demoró más de un día. Fíjate que hice la petición el viernes, lo cual fue inmediato; configuraron el firewall, probé y nada, así que me resigné y dejé de lado el asunto. Hoy lunes volví a probar y ya funcionaba.

Espero que esto te sea de ayuda.

Y el tema de la dirección remitente, por lo visto parece que siempre será la de la cuenta Gmail que uses para enviar los mensajes.

Saludos,

Etiquetas: errores, html, mailer, mysql, remitente, smtp, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:07.