Codificación rusa no consistente en mail.ru con phpmailer -- php campo con encoding campo con phpmailer camp Relacionados El problema

Russian encoding not consistent on mail.ru with phpmailer


0
vote

problema

Español

IM Enviando correos electrónicos automatizados a los usuarios rusos, usé la codificación UTF-8 y cuando se abren en Gmail, se muestra perfecto, en Outlook, muestra incorrecta pero en mail.ru, que es una cuenta de correo electrónico popular para los usuarios rusos, aparece como gobblygook.

Entonces enviamos un correo electrónico de Outlook en Accryllic a mail.ru y mostró el mismo contenido sin problemas, luego cambié la codificación a Windows-1251, nuevamente se muestra bien en Gmail pero en Mail.ru (que no Tenga una opción que pueda encontrar para cambiar la codificación y no admite UTF-8) se muestra como un tipo diferente de gooblygook.

El código está aquí:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" /> <title>Untitled Document</title>   </head>  //error_reporting(E_ALL); error_reporting(E_STRICT);  date_default_timezone_set('America/Toronto');  require_once('PHPMailer_5.2.2/class.phpmailer.php'); //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded  $mail             = new PHPMailer();   $body = "Это письмо отправлено потому. This is english";     $mail->IsSMTP(); // telling the class to use SMTP $mail->Host       = "smtp.gmail.com"; // SMTP server $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)                                            // 1 = errors and messages                                            // 2 = messages only $mail->SMTPAuth   = true;                  // enable SMTP authentication $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server $mail->Port       = 465;                   // set the SMTP port for the GMAIL server $mail->Username   = "xxx@gmail.com";  // GMAIL username $mail->Password   = "xxx";            // GMAIL password  $mail->SetFrom('xxx@gmail.com', 'xxx');  $mail->AddReplyTo("xxx@gmail.com","xxx");  $mail->Subject    = "Urgent";  $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test  $mail->MsgHTML($body);  $address1 = "xxx@mail.ru"; $address2 = "xxx@gmail.com";   if(!$mail->Send()) {   echo "Mailer Error: " . $mail->ErrorInfo; } else {   echo "Message sent!"; }   

Seguramente hay una manera de enviar un mensaje ruso a mail.ru, obviamente estoy haciendo algo estúpido porque incluso enviando de Outlook como trabajos acrílicos, pero tal vez tenga que colocar la codificación en otro lugar que no sea el encabezado.

Mi plan fue que codificaría automáticamente el mensaje, pero ya que no admiten UTF-8, mi nuevo plan es mostrar un mensaje que dice "Haga clic aquí para ver este mensaje en una página web" en ruso y luego puedo controlar la codificación. y se mostrará bien, pero ni siquiera puedo descubrir cómo enviar el mensaje ruso a mail.ru porque todo se muestra en Gobblygook para Win-1251, UTF-8 e incluso Kio

Original en ingles

Im sending automated emails to Russian users, i used utf-8 encoding and when they open in gmail it shows perfect, in outlook it shows incorrect but in mail.ru which is a popular email account for Russian users it shows up as gobblygook.

So we sent an email from outlook in accryllic to mail.ru and it showed the same content without problem, i then changed the encoding to windows-1251, again it shows up fine in gmail but in mail.ru (who dont have an option i could find to switch encoding and dont support UTF-8) it shows as a different type of gooblygook.

Code is here:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" /> <title>Untitled Document</title>   </head>  //error_reporting(E_ALL); error_reporting(E_STRICT);  date_default_timezone_set('America/Toronto');  require_once('PHPMailer_5.2.2/class.phpmailer.php'); //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded  $mail             = new PHPMailer();   $body = "xd0xadxd1x82xd0xbe xd0xbfxd0xb8xd1x81xd1x8cxd0xbcxd0xbe xd0xbexd1x82xd0xbfxd1x80xd0xb0xd0xb2xd0xbbxd0xb5xd0xbdxd0xbe xd0xbfxd0xbexd1x82xd0xbexd0xbcxd1x83. This is english";     $mail->IsSMTP(); // telling the class to use SMTP $mail->Host       = "smtp.gmail.com"; // SMTP server $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)                                            // 1 = errors and messages                                            // 2 = messages only $mail->SMTPAuth   = true;                  // enable SMTP authentication $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server $mail->Port       = 465;                   // set the SMTP port for the GMAIL server $mail->Username   = "xxx@gmail.com";  // GMAIL username $mail->Password   = "xxx";            // GMAIL password  $mail->SetFrom('xxx@gmail.com', 'xxx');  $mail->AddReplyTo("xxx@gmail.com","xxx");  $mail->Subject    = "Urgent";  $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test  $mail->MsgHTML($body);  $address1 = "xxx@mail.ru"; $address2 = "xxx@gmail.com";   if(!$mail->Send()) {   echo "Mailer Error: " . $mail->ErrorInfo; } else {   echo "Message sent!"; } 

Surely there is a way to send a Russian message to mail.ru, im obviously doing something stupid cause even sending from outlook as acryllic works but maybe i have to put encoding somewhere else other than header.

My Plan was it would auto encode the message but since they dont support UTF-8 my new plan is to display a message saying "click here to view this message in a webpage" in Russian and then i can control the encoding myself and it will display fine but i cant even figure out how to send the Russian message to mail.ru because it all displays in gobblygook for win-1251,UTF-8 and even kio

        

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

El accidente que establece en un encabezado HTML tendrá un efecto absolutamente no en el código PHP que se ejecuta más adelante en el mismo script. No se le pudo importar PHP menos acerca de los carros del lado del cliente, hasta que el cliente envíe algunos datos de nuevo a PHP. Debe generar un correo electrónico de MIME adecuado y configurar los carros correctos en los encabezados para eso.

Sugeriría encarecidamente usar phpmailer o SWIFTMAILER, ambos que hacen que envíe los correos electrónicos de MIME trivial, y mucho más fácil y más confiable que la basura total que es la función 9988766669 de PHP.

 

The charset you set in an HTML header will have absolutely NO effect on the php code running later in the same script. PHP couldn't care less about client-side charsets, until the client sends some data back to php. You need to generate a proper MIME email, and set the proper charsets in the headers for that.

I'd strongly suggest using PHPMailer or Swiftmailer, both which make sending MIME emails trivial, and far far easier and more reliable than utter garbage that is PHP's mail() function.

 
 
     
     
0
 
vote

También puedes agregar:

$ mail- & gt; setlanguage ("ru", "phpmailer / idioma");

Funciona con o sin hacer cumplir cuando se envía en ruso.

 

You can also add:

$mail->SetLanguage("ru","phpmailer/language");

It works with or without but enforces when sending in Russian I have found.

 
 

Relacionados problema

-1  ¿Por qué el correo no va a ir?  ( Why mail is not going ) 
$sql="insert into landing_client_data(name,email,contact_no,company,ip,city,region,country,postal,utm_source,utm_medium,utm_term,utm_campaign,created_dat...

-1  Cómo hacer que el correo electrónico aparezca en la bandeja de entrada y no el correo electrónico no deseado (PHP)  ( How to make email appear in inbox and not junk email php ) 
He escrito una función de correo PHP para permitir que un usuario en mi sitio web complete un formulario y envíe el formulario a mi correo electrónico. Como d...

0  Phpmailer: Cómo configurar el tipo de contenido a Multipart / Alternative  ( Phpmailer how to set content type to multipart alternative ) 
Estoy enviando correos electrónicos con phpmailer, pero los mensajes vienen con el tipo de contenido: texto / html en el encabezado. ¿Cómo puedo cambiarlo a m...

-1  Phpmailer - archivos adjuntos únicos de correo electrónico  ( Phpmailer unique email attachments ) 
Estoy tratando de enviar múltiples correos electrónicos con un archivo adjunto único. Actualmente, tengo éxito en enviar múltiples correos electrónicos a dife...

0  SWIFTMAILER - PHP-Mails Aterrizaje en la carpeta Spam  ( Swiftmailer php mails landing in spam folder ) 
IM usando SWIFTMAILER para enviar correos a través de PHP. La mayoría de las veces funciona bien. Pero a veces, mis correos de correo están aterrizando en car...

3  Phpmailer envía al correo electrónico no deseado  ( Phpmailer sends to junk email ) 
Acabo de actualizar un formulario de contacto para usar phpmailer para evitar que los correos electrónicos estén marcados como basura, sin suerte. Es una co...

1  Enviando el correo en PHP: error SMTP: no se pudo autenticar  ( Sending mail in php smtp error could not authenticate ) 
Estoy tratando de enviar el correo en PHP . Utilizo el mismo código para localhost y servidor. Pero cuando uso el código en el servidor, no parece funcionar:...

0  PHP Mailer: Correo no aceptado desde el servidor. La siguiente dirección falló  ( Php mailer mail not accepted from server the following from address failed ) 
Estoy teniendo problemas enviando MIL usando PHP Mailer. He intentado dos servidores de correo diferentes. A uno de estos servidores de correo, también tengo ...

-1  Phpmailer divulga la dirección IP del servidor, ¿cómo ocultarlo?  ( Phpmailer disclose server ip address how to hide it ) 
Estoy usando CloudFlare para ocultar la dirección IP original del servidor (evitando los ataques al servidor, DDOS ...), pero cuando uso PHPMmailer en el siti...

17  Problema con la autenticación SMTP en PHP con PHPMailer, con Works Pear Mail  ( Problem with smtp authentication in php using phpmailer with pear mail works ) 
Estoy teniendo problemas para enviar un correo electrónico con la clase PHPMailer, pero funciona con Pear Mail :: Factory. Supongo que el problema es con la...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos