Foros del Web » Programando para Internet » PHP »

PHPMailer- enviar correo en formato html

Estas en el tema de PHPMailer- enviar correo en formato html en el foro de PHP en Foros del Web. Hola e bajado el php mailer, en el que me permite enviar un correo en el cual el mensaje lo pongo en html, pero solo ...
  #1 (permalink)  
Antiguo 11/12/2008, 09:18
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
PHPMailer- enviar correo en formato html

Hola e bajado el php mailer, en el que me permite enviar un correo en el cual el mensaje lo pongo en html, pero solo me permite entrarlos en el body, y yo necesito ponerlo en frame, y segun yo los frameset se suplen por body, como podria hacer para entrar los frame.

este es el codigo de mi php.


Cita:
<?
//Es necesario que al menos halla una dirección de destino
$error="";

if ($enviar) {
if ((!$email1) && (!$email2)) {
$error.="Debe indicar al menos una dirección de destino";
}
}

if ($enviar && !$error) {

//creamos un array que estará formado por las direcciones de destino
if ($email1) {
$direcciones["direccion1"]=$email1;
}
if ($email2) {
$direcciones["direccion2"]=$email2;
}


//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 = "pop.directnic.com";

//Le indicamos que el servidor smtp requiere autenticación
$mail->SMTPAuth = true;

//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "[email protected]";
$mail->Password = "******";

//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 = "------";

//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo
//que se vea en negrita
$mail->Subject = "Prueba de phpmailer";
$mail->Body = "<b>AQUI ES DONDE VA EL MENSAJE EN HTML<b>";
//Definimos AltBody por si el destinatario del correo no admite
//email con formato html
$mail->AltBody ="ESTE ES EL MENSAJE SI NO ACEPTA HTML EL CORREO";

//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 el fichero a adjuntar si el usuario seleccionó uno en el formulario
if ($achivo !="none") {
$mail->AddAttachment($archivo,$archivo_name);
}

//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 al registrar su cuenta: ".$valor;
echo "<br>".$mail->ErrorInfo;
}
else
{
//Mostramos un mensaje indicando las direccion de
//destino
$mensaje="<p>Cuenta registrada:<br>";
$mensaje.=$valor." ";
$mensaje.="</p>";
echo $mensaje;


}
// Borro las direcciones de destino establecidas anteriormente
$mail->ClearAddresses();

}
echo "<a href='$PHP_SELF'> VOLVER AL FORMULARIO</a>";
}
else {
?>

<HTML>
<BODY>
<? If ($error) echo "<font color='red'>$error</font>";?>
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="<?=$PHP_SELF?>">
<TABLE BORDER=0 ALIGN="CENTER">
<TR>
<TD>Direccion de destino1:</TD>
<TD><INPUT TYPE="text" NAME="email1" MAXLENGTH="30" SIZE="35"></TD>
</TR>
<TD>Direccion de destino2:</TD>
<TD><INPUT TYPE="text" NAME="email2" MAXLENGTH="35" SIZE="35"></TD>
</TR>
<TD>Fichero adjunto:</TD>
<input type="hidden" name="MAX_FILE_SIZE" value="307200">
<TD><INPUT TYPE="file" NAME="archivo" SIZE="35"></TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar" name="enviar"></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<?
}
?>
  #2 (permalink)  
Antiguo 11/12/2008, 10:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: PHPMailer- enviar correo en formato html

Hola Diegotopet,

Es indiferente para PHP si este corre en un frame, iframe o en la pagina completa, por lo que solo necesitas poner bien tus frames y apuntarlos al script PHP correcto.

Saludos.
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 08:33.