2009-07-14 98 views
17

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

这是一个域名注册文件,域名注册。 co.za,但问题已经排序。 Thx James – Roland 2009-07-14 07:57:57

+0

您可以将`if($ mail-> Send())`部分简化为`return $ mail-> Send();`。 – Melebius 2014-06-28 09:55:02

回答

23

要设置$mail->MsgHTML()以纯文本邮件,由于空白格式化的HTML被忽略,你得到一个内联文本。

我还没有使用的PHPMailer了一段时间,但是从内存中尝试:

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

试试下面的代码工作正常:

 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(); 
     } 
相关问题