Foros del Web » Programando para Internet » PHP »

[ERROR] mail(); Enviar correo html

Estas en el tema de [ERROR] mail(); Enviar correo html en el foro de PHP en Foros del Web. Buenas, estoy enviando un correo con formato html usando la funcion mail de php. El correo lo envio de la siguiente forma: Código: $mensaje = ...
  #1 (permalink)  
Antiguo 08/04/2013, 03:22
 
Fecha de Ingreso: agosto-2012
Ubicación: España
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 1
Pregunta [ERROR] mail(); Enviar correo html

Buenas, estoy enviando un correo con formato html usando la funcion mail de php.
El correo lo envio de la siguiente forma:
Código:
$mensaje = " 
		<html>
			<body>
			<p align='right' style='font-size:10px;'> ".date("d-m-Y H:i:s")."</p>
				<table class='formulario_reserva' cellpadding=3 cellspacing=0 style='border:solid 2px #d8d8d8;margin:5px;widtd:100%'>
					<tr>
						<td><h3 style='margin-top:0px;'>".CONFIRMAR_RESERVA_MAIL."</h3>
							<h4><?php echo DATOS_DE_LA_RESERVA;?></h4>
							
							<h4>".DATOS_DEL_SOLICITANTE."</h4>
							
							<h4>".DATOS_COMPLEJO."</h4>
							<ul>
								<li>".CORREO_ELECTRONICO." : ".$email_contacto[0]."</li>
								<li>".TELEFONO." : ".$destin['telefono']."</li>
							</ul>
						</td>
					</tr>
					<tr>
						<td>
							".MENSAJE_SEND."<br>".MENSAJE_SALUDO."
						</td>
					</tr>
					<tr>
						<td>
							<img src='www.mi_dominio.com/images/logomio.jpg' >
						</td>
					</tr>
					<tr>
						<td>
							".MENSAJE_IMAGEN."
						</td>
						<td  style='font-size:2px;'>
							".MENSAJE_MEDIO_AMBIENTE."
						</td>
					</tr>
				</table>
			</body>
		</html>
	";
	
$headers="From: ".$email_contacto[0]."\r\n";
$headers.="Content-type: text/html\r\n";		
mail($_POST['correo'],$asuntoCliente,$mensaje, $headers);
El problema que tengo es que dentro del código html que contiene el correo existe una etiqueta <img>, cuando el correo llega al cliente no se visualiza la imágen que tiene la etiqueta img.
Otro problema que tengo (puede ser la codificacion, tengo que probar) es que los caracteres especiales como puede ser la letra Ñ no los muestra
Aunque en principio lo que me urge y lo que más me importa es que el destinatario pueda ver la imágen.
  #2 (permalink)  
Antiguo 08/04/2013, 04:26
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: [ERROR] mail(); Enviar correo html

Hola buenas

Prueba a poner http:// delante de www.mi_dominio.com/images/logomio.jpg
Si sigue sin ir, verifica que puedes acceder directamente al recurso desde el navegador, no sea que el htaccess de tu servidor bloquea el "hotlink"

Para lo que comentas de los caracteres especiales, prueba a poner estas cabeceras (adáptalo según lo tuyo):

Código PHP:
$headers "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: Tu Nombre <[email protected]>\r\n";
$headers.= "Reply-To: [email protected]\r\n"
Espero que te sirva, saludos!
  #3 (permalink)  
Antiguo 16/04/2013, 01:15
 
Fecha de Ingreso: agosto-2012
Ubicación: España
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: [ERROR] mail(); Enviar correo html

perdona por tardar en responderte, pero el problema sigue. Logre enviar las imágenes, pero los caracteres especiales como la Ñ siguen igual
  #4 (permalink)  
Antiguo 16/04/2013, 04:17
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: [ERROR] mail(); Enviar correo html

Prueba primero esto:

Añade entre el <html> y el <body> de $mensaje el siguiente código:

Código PHP:
<head>
     <
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</
head
Si sigue sin ir, mira en qué formato está codificado el fichero. Si usas un editor de programación (yo uso Notepad++ por ejemplo) puedes indicarle en qué formato debe guardar el fichero. Indícale que quieres que lo guarde como ISO-8859-1 (o ANSI) y si no está la opción, prueba UTF-8 y cambia en el código todo lo que diga ISO-8859-1 por utf-8

Saludos!
  #5 (permalink)  
Antiguo 16/04/2013, 05:09
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 15 años, 5 meses
Puntos: 26
Respuesta: [ERROR] mail(); Enviar correo html

Ten en cuenta que la etiqueta Charset tiene que ir de acuerdo al contenido del mensaje, si usas iso-8859-1 tendrias que usar &ntilde; para la Ñ pero si usas utf tendrias que usar directemante la Ñ.

Etiquetas: correo, formulario, html, mail
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 18:49.