2009-07-14 13 views
17

Ho un problema nell'invio di e-mail in puro testo tramite PHPMailer.Invio di e-mail di testo semplice tramite PHPMailer

devo testo che ho letto da un file di testo e posta a destinatario posta tramite PHPMailer

Quando il destinatario riceve l'e-mail reale, la formattazione della posta non è come nel file di testo, tutto è in una riga, nessuna nuova riga e scheda sono incluse nell'e-mail che invio. L'avvolgimento del testo è completamente disattivato.

Codice:

 $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; 
     } 
+0

Si tratta di un file di registrazione del dominio, whois. co.za, ma il problema è stato risolto. Thx James – Roland

+0

Puoi semplificare la parte 'if ($ mail-> Send())' per restituire $ mail-> Invia(); '. – Melebius

risposta

23

Si sta impostando $mail->MsgHTML() a un messaggio di testo normale, e dal momento che la formattazione spazio bianco viene ignorato in HTML, che stai ricevendo un testo in linea.

Non ho usato PHPMailer per un po ', ma dalla memoria prova:

$mail->Body = file_get_contents($newFile); 
10
$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; 
    } 
+1

+1 per la spiegazione di quali righe escludere e cosa includere per l'attivazione del solo testo. – squarecandy

0

Prova di sotto codice che funziona bene:

 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(); 
     }