Отправка обычных текстовых электронных писем с помощью PHPMailer


У меня проблема с отправкой обычных текстовых электронных писем с помощью PHPMailer.

У меня есть текст, который я прочитал из текстового файла и отправил его получателю почты через PHPMailer

Когда получатель получает фактическое электронное письмо, форматирование письма отличается от форматирования в текстовом файле, все находится в одной строке, в отправляемом мной электронном письме нет новых строк и вкладок. Перенос текста полностью отключен.

Код:

        $mail->ContentType = 'text/plain'; 
        $mail->IsHTML(false);
        $address = "[email protected]";
        $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;
        }
Author: random, 2009-07-14

3 answers

Вы устанавливаете $mail->MsgHTML() для обычного текстового сообщения, и поскольку форматирование пробелов в HTML игнорируется, вы получаете встроенный текст.

Я некоторое время не пользовался PHPMailer, но по памяти попробуйте:

$mail->Body = file_get_contents($newFile); 
 23
Author: bumperbox, 2018-01-28 19:29:48
    $mail->ContentType = 'text/plain'; 
    $mail->IsHTML(false);
    $address = "[email protected]";
    $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;
    }
 10
Author: elim, 2013-01-24 20:27:16

Попробуйте приведенный ниже код, который отлично работает:

        try {
            $mail->AddAddress('[email protected]', 'Jit Pal');
            $mail->SetFrom('[email protected]', '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();
        }
 0
Author: Jitesh Sojitra, 2015-05-24 16:30:17