PHP - función mail()

 
Vista:

función mail()

Publicado por Ensy (19 intervenciones) el 22/05/2007 14:37:11
Hola!! Mi problema es que quiero enviar emails mediante un proceso automático realizado en php. Estoy dentro de una red que tiene servidor de correo. Si mando los emails a direcciones internas funciona pero al salir de la red el proxy me pide validación de usuario y contraseña. Hay alguna forma mediante código de configurarlo para generar el proceso automático y que no pida en cada email la contraseña?? Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:función mail()

Publicado por BlueStalker (55 intervenciones) el 22/05/2007 21:37:01
Hola!!!

baja el phpmailer http://sourceforge.net/project/showfiles.php?group_id=26031

se modifica una cosilla para ke funcione con gmail, mmm, bueno es con gmail
por su gran capacidad, si es ke vas a monitorear los mails enviados

del zip ke bajaste modificas el archivo class.phpmailer.php

busca estas instrucciones:

if(strstr($hosts[$index], ":"))
list($host, $port) = explode(":", $hosts[$index]);
else
{
$host = $hosts[$index];
$port = $this->Port;
}

Las cambias por:

if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))
{
$host = $match[1];
$port = $match[3];
}
else
{
$host = $hosts[$index];
$port = $this->Port;
}

Es muy facil de usar

y se llama de la siguiente forma:


<?php

require_once './phpmailer/class.phpmailer.php';

$mail = new PHPMailer ();

$mail -> From = "[email protected]"; /kien envia
$mail -> FromName = "Nombre"; //kien envia
$mail -> AddAddress ("kien_recibe@??.com"); //destinatario
$mail -> Subject = "Test";
$mail -> Body = "<h3>From GMail!</h3>"; //aki tu mensaje
$mail -> IsHTML (true);

$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'pass';

if(!$mail->Send()) {
echo 'Error: ' . $mail->ErrorInfo;
}
else {
echo 'Mail enviado!';
}

?>

y como no va a ser solo 1 envio, simplemente ponlo en un ciclo y listo

xD

Salu2 y Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:función mail()

Publicado por Nerea (19 intervenciones) el 23/05/2007 12:13:37
Muchisimas gracias!!!!

Esta clase ya la estaba utilizando pero sin estos cambios que me indicas:

if(strstr($hosts[$index], ":"))
list($host, $port) = explode(":", $hosts[$index]);
else
{
$host = $hosts[$index];
$port = $this->Port;
}

Las cambias por:

if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))
{
$host = $match[1];
$port = $match[3];
}
else
{
$host = $hosts[$index];
$port = $this->Port;
}

Con ellos me funciona perfectamente, si me pudieras explicar por qué hay que cambiar esto... es que no lo entiendo muy bien.

Muchisimas gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:función mail()

Publicado por BlueStalker (55 intervenciones) el 23/05/2007 21:14:19
Hola!!!!!

Se supone que gmail usa el protocolo de comunicación/autenticación SSL/TLS

mas info en este link, poco pero informativo :

http://es.wikipedia.org/wiki/Transport_Layer_Security
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:función mail()

Publicado por Ensy (19 intervenciones) el 24/05/2007 09:03:36
Ok, muchas gracias ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:función mail()

Publicado por Gonzalo (84 intervenciones) el 23/05/2007 14:51:03
Si ya hay un servidor de correo en la empresa, lo lógico sería enviar los correos externos también a través de ese servidor.

Cuando un usuario en su PC en la red envía un correo, lo hace a través del servidor de la empresa, ¿no? Pues lo mismo tendría que hacer tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:función mail()

Publicado por Ensy (19 intervenciones) el 24/05/2007 09:10:24
Si si, si mi aplicación utiliza el servidor de la empresa, por eso mismo hay que validar con usuario y contraseña para que el email pueda salir fuera de la red interna (razones de seguridad que tienen la mayoría de smtp), a direcciones que no pertenecen a la empresa.

De todas formas con la clase phpMailer está solucionado ya que tiene una función para controlar el usuario y otra para controlar la contraseña.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar