Código:
Has enviado un mensaje a: [email protected] El Mensaje se envió correctamente, estaremos en contácto con Usted, Gracias Problemas enviando correo electrónico a [email protected] SMTP Error: The following recipients failed [[email protected]] Volver al Inicio
Código PHP:
if ($enviar) {
OpenTable2();
//creamos un array que estará formado por las direcciones de destino
$direcciones["direccion1"]="[email protected]";
$direcciones["direccion2"]="[email protected]";
//pasamos a enviar el correo
// primero hay que incluir la clase phpmailer para poder instanciar
//un objeto de la misma
require "includes/class.phpmailer.php";
//instanciamos un objeto de la clase phpmailer al que llamamos
//por ejemplo mail
$mail = new phpmailer();
//Definimos las propiedades y llamamos a los métodos
//correspondientes del objeto mail
//Con PluginDir le indicamos a la clase phpmailer donde se
//encuentra la clase smtp que como he comentado al principio de
//este ejemplo va a estar en el subdirectorio includes
$mail->PluginDir = "includes/";
//Con la propiedad Mailer le indicamos que vamos a usar un
//servidor smtp
$mail->Mailer = "smtp";
//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "correo.terra.cl";
//Le indicamos que el servidor smtp requiere autenticación
$mail->SMTPAuth = false;
//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "[email protected]";
$mail->Password = "mipassword";
//Indicamos cual es nuestra dirección de correo y el nombre que
//queremos que vea el usuario que lee nuestro correo
$mail->From = "[email protected]";
$mail->FromName = $nombreper;
//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo
//que se vea en negrita
$mail->Subject = "From: $email \nReply-To: $adminMail";
$mensaje = "\n\n$nombreper $apellido($email)";
$mensaje .= "\n\nTelefono: $telefono";
$mensaje .= "\n\nTítulo:$titulomsg";
$mensaje .= "\n\nMensaje:$msg";
$mensaje = nl2br($mensaje);
$mail->Body = $mensaje;
//Definimos AltBody por si el destinatario del correo no admite
//email con formato html
$mail->AltBody =$mensaje;
//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
//una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120
$mail->Timeout=120;
//Indicamos cuales son las direcciones de destino del correo y enviamos
//los mensajes
reset($direcciones);
while (list($clave, $valor)=each($direcciones)) {
$mail->AddAddress($valor);
//se envia el mensaje, si no ha habido problemas la variable $success
//tendra el valor true
$exito = $mail->Send();
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas
//como mucho para intentar enviar el mensaje, cada intento se hara 5 s
//segundos despues del anterior, para ello se usa la funcion sleep
$intentos=1;
while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
//attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
//valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;
}
if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br/>".$mail->ErrorInfo;
}
else
{
//Mostramos un mensaje indicando las direccion de
//destino y fichero adjunto enviado en el mensaje
$mensaje="<p>Has enviado un mensaje a:<br/>";
$mensaje.=$valor." <br/>";
$mensaje.="El Mensaje se envió correctamente, estaremos en contácto con Usted, Gracias</p>";
echo $mensaje;
}
// Borro las direcciones de destino establecidas anteriormente
$mail->ClearAddresses();
}
echo "<a href='$PHP_SELF'> Volver al Inicio</a>";
CloseTable();
}
else {
OpenTable2();
?>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide code from non-js browsers
function validate()
{
formObj = document.contact;
if ((formObj.name.value == "") ||
(formObj.email.value == "") ||
(formObj.subject.value == "") ||
(formObj.msg.value == ""))
{
alert("Debe llenar los campos Requeridos");
return false;
}
/*else {
alert('<? echo $finishedtext; ?>');
return true;
}*/
}
// end hiding -->
</SCRIPT>
<TABLE BORDER=0 cellpadding=5 cellspacing=0>
<TR>
<TD>
<TABLE BORDER=0 cellpadding=2 cellspacing=0>
<form ENCTYPE="multipart/form-data" action="index.php?modulo=contacto" method="post" name="contact" onSubmit="return validate()">
<TR>
<TD>
<BR>
<DIV>
1. Nombre(*)<BR>
<input type=text size=50 maxlength=50 name=nombreper class='txtfield'><BR>
2. Apellidos<BR>
<input type='text' size='50' maxlength='50' name='apellido'><BR>
3. Direccion de Correo (*)<BR>
<input type='text' size='50' maxlength='60' name='email'><BR>
4. Numero Telefono<BR>
<input type='text' value='(000) 000-0000' size='50' maxlength='32' name='telefono'><BR>
5. Titulo (*)<BR>
<input type='text' value='' size='50' maxlength='60' name='titulomsg'><BR>
6. Mensaje (*)<BR>
<textarea name='msg' rows='7' cols='50'></textarea><BR>
</DIV>
<input type='submit' name='enviar' value='Enviar'><BR><BR>(*) Campos Requeridos
</TD>
</tR>
</FORM>
</tABLE>
</TD>
</TR>
</tABLE>
<?php
CloseTable();
}
?>
salu2