Inicio > Programación > claudiopazos > Envio de correos con php

Envio de correos con php

Experto:
Usuario: Anónimo Fecha: 15/10/2009
Valoración: (4,00 sobre 5) Categoría: Programación
14/10/2009
Usuario
Buen dia, necesito enviar formurarios por correo desde mi portal el codigo que uso es
" mail ($mail_envio[$x],$subject,$html,$header);"
el problema es que cambio el correo a donde debe llegar este formulario y ahora no recibe los envios, me imagino que necesito autentificar el emisor, si alguien me puede ayudar a solucionar mi problema, se los agradecere mucho.
14/10/2009
sanely_86, experto respondiendo en Programación
Experto
Hola. la funcion mail usa el servidor smtp predeterminado que este configurado en el webserver,
Proba usandp php mailer, es un conjunto de librerias que debes colocar en un directorio, incluir la libreria principal, y luego usarla. te pongo un ejemplo de como usarla. En esta debes configurar el servidor de salida, el usuario y la clave, tal como lo harias en cualquier cliente de correo.
las librerias las puedes descargar de
http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.0.0/PHPMailer_v5.0.0.zip/download
Espero te sirva.
Saludos.
<?
require_once "class.phpmailer.php";
function sendmail($name,$email,$to,$subject,$body,$filenames)
{
    $mail = new phpmailer();
    $mail->PluginDir = "ruta de las librerias";
    $mail->Mailer = "smtp";
    $mail->Host = "ip o nombre del servidor smtp";
    $mail->SMTPAuth = true;
    $mail->Username = "usuario para acceder al servidor smtp";
    $mail->Password = "clave del ";
    $mail->From = "$email";
    $mail->FromName = "$name";
    $mail->Timeout=30;
    foreach ($to as $To)
    {
        if ($To!="") $mail->AddAddress($To);
    }
    $mail->Subject = "$subject";
    $mail->Body = "$body";
    $mail->AltBody = "";
    foreach ($filenames as $filename) {
        $fileinfo = pathinfo($filename);
        $mail->AddAttachment($filename,$fileinfo["filename"].".".$fileinfo["extension"]);
    }
    $exito = $mail->Send();
    $intentos=1;
    while ((!$exito) && ($intentos < 5)) {
    sleep(5);
        //echo $mail->ErrorInfo;
        $exito = $mail->Send();
        $intentos=$intentos+1;    
    }
    
    if(!$exito)
    {
        echo "\nProblemas enviando correo electrónico a ".$valor;
        echo "\n".$mail->ErrorInfo."\n";    
        return false;
    }
    else
    {
        echo "\nMensaje enviado correctamente\n";
        return true;
    }
}
?>
15/10/2009
Usuario
Gracias por el código. Es lo que estaba buscando.
Enlaces patrocinados