Envío de correos electrónicos de texto plano con PHPMailer
-
13-09-2019 - |
Pregunta
Tengo un problema al enviar mensajes de correo electrónico de texto sin formato que utilizan PHPMailer.
Tengo texto que he leído de un archivo de texto y enviarlo por correo a destinatario de correo a través de PHPMailer
Cuando el destinatario recibe el correo electrónico real, el formato del correo electrónico no es como en el archivo de texto, todo está en una línea, no hay nuevas líneas y las pestañas están incluidas en el correo electrónico que envío. ajuste de texto es totalmente apagado.
Código:
$mail->ContentType = 'text/plain';
$mail->IsHTML(false);
$address = "test@test.com";
$mail->AddAddress($address, "John Doe");
$mail->SetFrom(EMAIL_TEST_FROM);
$mail->AddReplyTo(EMAIL_TEST_REPLY);
$mail->Subject = $action." REGISTRATION ".$formName.$tld;
$mail->From = EMAIL_TEST;
$mail->MsgHTML(file_get_contents($newFile));
if($mail->Send()){
return true;
}
Solución
Esta poniendo $mail->MsgHTML()
a un mensaje de texto sin formato, y desde el formato de espacio en blanco es ignorado en HTML, que está recibiendo un texto en línea.
No he utilizado PHPMailer por un tiempo, pero a partir de intento de memoria:
$mail->Body = file_get_contents($newFile);
Otros consejos
$mail->ContentType = 'text/plain';
$mail->IsHTML(false);
$address = "test@test.com";
$mail->AddAddress($address, "John Doe");
$mail->SetFrom(EMAIL_TEST_FROM);
$mail->AddReplyTo(EMAIL_TEST_REPLY);
$mail->Subject = $action." REGISTRATION ".$formName.$tld;
$mail->From = EMAIL_TEST;
// Very important: don't have lines for MsgHTML and AltBody
$mail->Body = file_get_contents($mailBodyTextFile);
// $mail->Body = $_POST["msg"]; //If using web mail form, use this line instead.
if($mail->Send()){
return true;
}
Trate a continuación código que funciona bien:
try {
$mail->AddAddress('jitpal@domain.com', 'Jit Pal');
$mail->SetFrom('testuser@domain.com', 'Test User');
$mail->Subject = "All machine's tests.";
$mail->Body = "All machine's tests working fine.";
$mail->Send();
echo "<br/>Message sent successfully...<br/><br/>\n";
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}