=? UTF-8? B ?? = en correos electrónicos enviados a través del problema de correo php

Tengo un sitio web, y en la sección “Contacto” tengo un formulario que los usuarios pueden completar para contactarme. El formulario es una forma simple cuya acción es una página php.

El código php:

$to = "email@domain.com"; $name=$_POST['name']; // sender name $email=$_POST['email']; // sender email $tel= $_POST['tel']; // sender tel $subject=$_POST['subject']; // subject CHOSEN FROM DROPLIST, ALL TESTED $text=$_POST['text']; // Message from sender $text.="\n\nTel:".$tel; // Added to message to show me the telephone nr to the sender at bottom of message $headers="MIME-Version: 1.0"."\n"; $headers.="Content-type: text/plain; charset=UTF-8"."\n"; $headers.="From: $name "."\n"; mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '[email protected]'); 

¿Podría alguien decirme por qué esto funciona la mayor parte del tiempo, pero a veces recibo un correo electrónico sin texto y la línea de asunto que muestra

  =? UTF-8? B ?? = 

Utilizo Outlook Express, y he leído este System.Net.Mail y =? Utf-8? B? XXXXX …. Encabezados, pero no sirvió de nada.

El problema no está en Outlook, porque cuando inicio sesión en el progtwig de correo real de donde obtengo los correos POP3, el correo electrónico tiene el mismo aspecto.

Cuando hago clic con el botón derecho en Outlook y elijo “origen del mensaje”, no aparece la información “De”.

Por ejemplo, un buen mensaje debería verse así:

  Asunto: =? UTF-8? B? W5Z2cmlndA ==? =
 Versión MIME: 1.0
 Tipo de contenido: text / plain;  charset = UTF-8
 De: John Doe 

Sin embargo, los que tienen un problema se ven así:

  Asunto: =? UTF-8? B ?? =
 Versión MIME: 1.0
 Tipo de contenido: text / plain;  charset = UTF-8
 De: 

Como si la información se hubiera perdido en alguna parte.

También debes saber que tengo un VPS, que yo mismo administro. Uso postfix como un servidor de correo electrónico, si eso tiene algo que ver con eso. Pero, de nuevo, ¿por qué funciona a veces?

Otra cosa que he notado es que a veces los caracteres especiales no se muestran correctamente (tanto por Outlook como por el correo web).

Por ejemplo, el nombre “Björkman” en sueco se muestra como Björkman , pero de nuevo, solo algunas veces.

Espero que alguien sepa algo sobre este problema, porque es muy difícil localizarme al menos.

Si necesita más información hágamelo saber.

Gracias

Al mirar el correo de PHP () , veo que se está rompiendo otra línea: ¿no deberías usar \r\n como finales de línea?

Y ese ejemplo de Björkman parece mucho a que su correo no está reconocido como UTF-8 codificado.