Отправка обычных текстовых писем с использованием 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;
        }

person Elitmiar    schedule 14.07.2009    source источник
comment
Это файл регистрации домена whois.co.za, но проблема уже решена. Спасибо Джеймс   -  person Elitmiar    schedule 14.07.2009
comment
Вы можете упростить if($mail->Send()) часть до return $mail->Send();.   -  person Melebius    schedule 28.06.2014


Ответы (3)


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

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

$mail->Body = file_get_contents($newFile); 
person bumperbox    schedule 14.07.2009

Попробуйте следующий код, который отлично работает:

        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();
        }
person Jitesh Sojitra    schedule 24.05.2015

person    schedule
comment
+1 за объяснение того, какие строки исключить, а также что включить, чтобы активировать только текст. - person squarecandy; 03.09.2013