Foros del Web » Programando para Internet » PHP »

no puedo mandar correos con formato HTML

Estas en el tema de no puedo mandar correos con formato HTML en el foro de PHP en Foros del Web. Hola a todos, Tengo este pequeño script que lo que hace es mandar correos a traves del exchange. Mi problema es que no puedo ponerle ...
  #1 (permalink)  
Antiguo 19/10/2010, 03:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 480
Antigüedad: 15 años, 7 meses
Puntos: 1
no puedo mandar correos con formato HTML

Hola a todos,
Tengo este pequeño script que lo que hace es mandar correos a traves del exchange.

Mi problema es que no puedo ponerle un simple <br> o un stylo.

¿Como podria solucioanr este problema? :S


Código PHP:
<?php
// Modify the path to this class file as needed. 
require_once("class_http.php"); 
require_once(
"class_xml.php"); 
// Change these values for your Exchange Server. 
$exchange_server "https://mail.ejemplo.com"
$exchange_username "user"
$exchange_password "pass"


$toaddresses "[email protected]"//TO email address
$ccaddresses ""//CC email addresse
$bccaddresses ""//BCC email addresses

//-------------------------------
$subject "titulo del correo";
$body "Esto es un ejemplo"// AQUI ESTA EL PROBLEMA, NO PUEDO PONER UN SIMPLE <br>
//-----------------------------



// We use Troy's http class object to send the XML-formatted WebDAV request 
// to the Exchange Server and to receive the response from the Exchange Server. 
// The response is also XML-formatted. 
$h = new http(); 
$h->headers["Content-Type"] = 'text/xml; charset="UTF-8"'
$h->headers["Depth"] = "0"
$h->headers["Translate"] = "f";
// Build the XML request. 
// This section must be against the left margin. 
$h->xmlrequest '<?xml version="1.0"?>';
$h->xmlrequest = <<<END
<a:propertyupdate   xmlns:a="DAV:"
xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"
xmlns:g="http://schemas.microsoft.com/mapi/"
xmlns:e="urn:schemas:httpmail:"
xmlns:d="urn:schemas:mailheader:"
xmlns:c="xml:"
xmlns:f="http://schemas.microsoft.com/mapi/proptag/"
xmlns:h="http://schemas.microsoft.com/exchange/"
xmlns:i="urn:schemas-microsoft-com:office:office"
xmlns:k="http://schemas.microsoft.com/repl/"
xmlns:j="urn:schemas:calendar:"
xmlns:l="urn:schemas-microsoft-com:exch-data:">
<a:set>
<a:prop>
<a:contentclass>urn:content-classes:message</a:contentclass>
<h:outlookmessageclass>IPM.Note</h:outlookmessageclass>
<d:to>$toaddresses</d:to>
<d:cc>$ccaddresses</d:cc>
<d:bcc>$bccaddresses</d:bcc>
<g:subject>$subject</g:subject>
<e:htmldescription>$body</e:htmldescription>
</a:prop>
</a:set>
</a:propertyupdate>
END;
// IMPORTANT -- The END line above must be completely left-aligned. No white-space.
// The http object's 'fetch' method does the work of sending and receiving the 
// request. We use the WebDAV PROPPATCH method to create or update Exchange items.
$url $exchange_server."/Exchange/" $exchange_username "/Borradores/".urlencode($subject).".EML";
if (!
$h->fetch($url0null$exchange_username$exchange_password"PROPPATCH")) { 
echo 
"<h2>There is a problem with the http request!</h2>";
echo 
$h->log
exit(); 
}
// You can print out the response to help troubleshoot. 
//echo "<pre>".$h->header."</pre><hr />\n"; 
//echo "<pre>".$h->body."</pre><hr />\n"; 
// Bonus tip! You can automatically open this new draft message for your user by 
// formulating an outlook URL. Then either redirect to the URL by uncommenting the
// header line below, or pop the URL in client-side javascript using window.open. 
#header("Location: outlook:drafts/~".urlencode($subject)); 
$g = new http(); 
$g->headers["Content-Type"] = 'text/xml; charset="UTF-8"'
$g->headers["User-Agent"] = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)'
$g->headers["Cookie"] = 'sessionid='.$sessionid.'; cadata='.$cadata
$g->headers["Depth"] = "0";  
$g->headers["Translate"] = "f"
$g->headers["Destination"] = 
"$exchange_server/Exchange/$exchange_username/##DavMailSubmissionURI##/";
if (!
$g->fetch($url0null$exchange_username$exchange_password"MOVE")) {
echo 
"<h2>There is a problem with the http request!</h2>";
echo 
$g->log;
exit();
}
elseif(
$g->status 200 || $g->status >= 300)
{
echo 
"<h2>There is a problem with the http request!</h2>";
// You can print out the response to help troubleshoot.
//echo "<pre>".$g->header."</pre><hr />\n";
//echo "<pre>".$g->body."</pre><hr />\n";
echo $g->log;
exit();
}
else
{
//echo "<h2>Email Sent!</h2>";
// You can print out the response to help troubleshoot.
//echo "<pre>".$g->header."</pre><hr />\n";
//echo "<pre>".$g->body."</pre><hr />\n";
//echo "<pre>".$g->log."</pre><hr />\n";
}
?>
  #2 (permalink)  
Antiguo 19/10/2010, 03:55
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Respuesta: no puedo mandar correos con formato HTML

ufff mi madre todo eso para enviar un email ???

Porque no usas phpmailer, desde que yo lo uso, me evité muchos quebraderos de cabeza.

Te recomiendo que lo uses, es muy fácil de configurar, y además, creo que viene con ejemplo de como usarlo, pero si no, postea y te podré ayudar.

Saludos.
  #3 (permalink)  
Antiguo 19/10/2010, 03:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 480
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: no puedo mandar correos con formato HTML

ya lo utilizo jejeje, pero con en este proyecto no puedo, debido a que el servidor exchange esta alojado en otro servidor y la Web esta en otro. (Y ademas no se hablan entre ellos), probe a configurarlo pero no me dejaba autentificarlos, y por lo tanto no me dejaba mandar correos internos.

es una movida panki >.<

De todas formas, muchas gracias por tu colaboracion
  #4 (permalink)  
Antiguo 19/10/2010, 04:19
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Respuesta: no puedo mandar correos con formato HTML

AH vale... a mi también me pasado una movida de esas... y en ese caso, uso la funcion mail de php de la siguiente manera.

Te copio un fragmento de codigo que uso donde no me dejan usar phpmailer.

Saludos

Código PHP:
$para "[email protected]";
$subject "El asunto de la cuestion";

$body="<p style='font-size:14pt;font-weight:bold;'>Creacion de nuevo usuario</b></p>
        <br />
        <p>Nombre: <b>nombre</b></p>
        <p>Email: <b>email</b></p>
        <p>Telefono: <b>telefono</b></p>
</p>"
;

$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$cabeceras .= "From: Yo mismo <[email protected]>\r\n";
mail($para,$subject,$body,$cabeceras); 
  #5 (permalink)  
Antiguo 19/10/2010, 04:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 480
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: no puedo mandar correos con formato HTML

claro, pero el script que me estas poniendo se utiliza cuando tienes un servidor de correo en la misma pagina Web, no?

En mi Servidor no hay ningun servidor de correo.

Última edición por davicito; 19/10/2010 a las 04:34
  #6 (permalink)  
Antiguo 19/10/2010, 06:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 480
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: no puedo mandar correos con formato HTML

Por si le vale a alguien,lo he resuelto de la siguiente manera,
$body='esto es un <br> ejemplo';
$go_body=htmlspecialchars($body);

<e:htmldescription>$go_body</e:htmldescription>


Un saludo :)

Etiquetas: correos, formato, html, mandar
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 10:44.