Foros del Web » Programando para Internet » PHP »

Función mail() no acentua ni pone Ñ solo en el Subject

Estas en el tema de Función mail() no acentua ni pone Ñ solo en el Subject en el foro de PHP en Foros del Web. Buenas al foro. En mi página mediante la función mail() en vio un correo de confirmación en formato html. La cosa es que en el ...
  #1 (permalink)  
Antiguo 25/09/2008, 08:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 16 años, 2 meses
Puntos: 0
Función mail() no acentua ni pone Ñ solo en el Subject

Buenas al foro.
En mi página mediante la función mail() en vio un correo de confirmación en formato html. La cosa es que en el cuerpo del mensaje utilizando los códigos tipo "ñ" todo me sale perfecto pero en el subject del mail cuando es una palabra con acento o Ñ me falla la cosa. Si escribo la letra "Ñ" (sin usar su codificación) por ejemplo me aparecen unos caracteres raros y si utilizó el codigo ñ me pone "ñ" tal cual en el mensaje en medio la palabra.
Mi codigo es el siguiemte:

Código PHP:
<?php
$to      
'[email protected]';
$subject 'Suscripción completada'// Esta palabra "suscripción" es el problema
$message '
<html>
  <p> Ense&ntilde;anza<p> // esto sale perfecto al igual que todos los acentos
</html>;

$headers  = '
MIME-Version1.0' . "\r\n";
$headers .= '
Content-typetext/htmlcharset=iso-8859-"\r\n";

mail($to$subject$message$headers);
?>
Alguien podría ayudarme a que los acentos salgan bien en el subject porfavor?

Gracias de antemano
  #2 (permalink)  
Antiguo 25/09/2008, 09:13
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Función mail() no acentua ni pone Ñ solo en el Subject

Hazte una funcion que reemplace todos los acentos de vocales (en mayuscula o minuscula) por su valor en html:
á = &aacute;
é = &eacute;
[...]

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 25/09/2008, 09:16
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Respuesta: Función mail() no acentua ni pone Ñ solo en el Subject

Puedes usar.. utf8_decode();

Código PHP:
<?php
$to      
'[email protected]';
$subject utf8_decode('Suscripción completada'); // Esta palabra "suscripción" es el problema
$message '
<html>
  <p> Ense&ntilde;anza<p> // esto sale perfecto al igual que todos los acentos
</html>;

$headers  = '
MIME-Version1.0' . "\r\n";
$headers .= '
Content-typetext/htmlcharset=iso-8859-"\r\n";

mail($to$subject$message$headers);
?>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 25/09/2008, 09:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 12
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Función mail() no acentua ni pone Ñ solo en el Subject

Solucionado. Utilizé la función utf8_decode(), aunque no estoy seguro exactamente que es lo hace, como sugirio _ssx y funcionó. La solución de Marvin voy a utilizarla para un problema que tengo para guardar esos caracteres en una tabla. Muchas gracias.
  #5 (permalink)  
Antiguo 25/09/2008, 10:09
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Función mail() no acentua ni pone Ñ solo en el Subject

utf8_decode() lo que hace es pasar todo lo que esta en UTF-8 a ISO-8859-1

Mas informacion: utf8_decode()

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 14:05.