如何使用SMTP格式化电子邮件

时间:2012-05-11 11:29:56

标签: php email formatting smtp

我正在尝试使用 php smtp身份验证发送带格式的电子邮件,但由于某些原因\n\r\nPHP_EOL无法格式化消息,因此一切都出现在一条线上。

以下是我尝试的内容

$order .= "Title : {$title}" . PHP_EOL
."Author : {$author}" . PHP_EOL
."ISBN : {$isbn}" . PHP_EOL
."Publisher : {$publisher}" . PHP_EOL
."Supplier : {$supplier}\n
Quantity : {$qty}\r\n   

变量$order包含电子邮件的正文。 这是我的sendMail()函数

的一部分
$from = "{$sender_name} <{$sender}>";
$to = $reciever." <$email>";
$subject = $subj;
$body = $msg;
$host = "mail.thekingsbooks.com";           
$username = "noreply@thekingsbooks.com";
$password = "password";

$headers = array(
  'From'    => $from, 
  'To'      => $to, 
  'Subject' => $subject
);

$smtp = Mail::factory(
  'smtp',
   array(
     'host'   => $host, 
     'auth'   => true,
     username => $username, 
     password => $password
   )
 );

$mail = $smtp->send($to, $headers, $body);

发送的邮件如下所示

Ordered items\r\nTitle : A Retreat With Pope John Paul II: Be Not Afraid (Retreat With-- Series)\r\nAuthor : \r\nISBN : 0867164204\r\nPublisher : \r\nSupplier : \r\n\r\n                               Quantity : 6\r\n\r\n         

有关如何格式化电子邮件正文的任何​​建议?谢谢

2 个答案:

答案 0 :(得分:0)

如果您在Outlook中查看此内容,Outlook可能正在剥离空白。在Outlook中,单击显示已还原空白的选项。

答案 1 :(得分:-1)

可能是它以HTML格式发送。尝试在标题中添加“Content-type:text / plain; charset = iso-8859-1”。