Hola Cluster, sigo con problemas...
Ayer probé en mi casa (tengo un servidor para una página personal) el class.phpmailer en localhost y quedé contento pues todo me funcionó, pero hoy en la oficina el script para enviar email me da fallo:
connect_host.
Temo que tenga algo que ver con estar metido en la red de empresa (firewall)pero me quiero asegurar antes pues todo este sitema es crítico (Sistema de Información central y no quiero crear pánico en el departamento de informática (Yo soy el Director de desarrollo y sabrás de nuestras diferencias).
//////////ESTE ES EL SCRIPT DE MI SISTEMA///////
function enviamail($toemail,$toname,$mymail,$myname,$subjec t,$message) {
Global $mailerror;
require("includes/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "localhost"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "mi_cuenta_intranet"; // SMTP username
$mail->Password = "mi_clave_intranet"; // SMTP password
$mail->From = $mymail;
$mail->FromName = $myname;
$mail->AddAddress("$toemail",$toname);
$mail->AddReplyTo("
[email protected]","Information" );
$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // pendiente
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //pendiente
$mail->IsHTML(true); // send as HTML
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = "mensaje solo texto";
if(!$mail->Send()){
echo "Message was not sent <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
// exit;//lo llevo al script principal
$mailerror="<b>Mensaje No enviado</b><br>" . $mail->ErrorInfo;
}else{
echo "Mensaje enviado";
$mailerror="Mensaje enviado";
}
}
//////////////////////////////////
Esta es la función del class.phpmailer.php donde falla
function SmtpConnect() {
if($this->smtp == NULL) { $this->smtp = new SMTP(); }
$this->smtp->do_debug = $this->SMTPDebug;
$hosts = explode(";", $this->Host);
$index = 0;
$connection = ($this->smtp->Connected());
// Retry while there is no connection
while($index < count($hosts) && $connection == false)
{
if(strstr($hosts[$index], ":"))
list($host, $port) = explode(":", $hosts[$index]);
else
{
$host = $hosts[$index];
$port = $this->Port;
}
echo "HASTA AQUí LLEGO CON EL HOST:localhost y EL PORT:25";
if($this->smtp->Connect($host, $port, $this->Timeout))
{
echo " AQUÍ FALLÓ LA CONEXION ";
if ($this->Helo != '')
$this->smtp->Hello($this->Helo);
else
$this->smtp->Hello($this->ServerHostname());
if($this->SMTPAuth)
{
if(!$this->smtp->Authenticate($this->Username,
$this->Password))
{
$this->SetError($this->Lang("authenticate"));
$this->smtp->Reset();
$connection = false;
}
}
$connection = true;
}
$index++;
}
if(!$connection)
$this->SetError($this->Lang("connect_host"));
return $connection;
}
////////////////////
Perdona mi insistencia pero estoy metido en un compromiso importante (pasar un sistema que había desarrollado para la red a operar con la INTRANET (los hackers) y realmente me has demostrado que puedes ayudarme.
Saludos