格式化我使用mail()通过PHP和IIS7发送的电子邮件

时间:2014-02-26 21:47:18

标签: php html email gmail sendmail

第一件事。我的代码有效。我在IIS7的sendmail.ini中正确设置了我的SMTP信息,我正在使用gmail。我所拥有的是用于订购食物的购物车。

在我的cart.php页面中,我有打印输出拉动用户选择:

$printoutput .= "<table width='500' border='0' cellspacing='0' cellpadding='0'>
                            <tr><td> <strong>Order Item # ". ($i+1) ."</strong></td></tr>
                            <tr><td> ". $product_name . "</td></tr>
                            <tr><td>$" . $price . ".00</td></tr>
                            <tr><td>". $displayoptions . "</td></tr></table>

                            <table height='1%' width='500' border='0' cellspacing='0' cellpadding='0'><tr><td></td></tr></table>";

            $i++;   

此输出在Web浏览器中看起来很完美。稍后在代码中,我使用表单发布$printoutput并将其命名为order。但是在我的email.php页面上,我使用了

session_start();
if(isset($_POST['order'])){
  $order = $_POST['order'];
}

然后

mail($email_to, $email_subject, $order, $headers);

就像我说的那样,我可以简单地echo $order,它在网络浏览器中看起来很完美。但是当实际发送电子邮件时,我会收到一封电子邮件,其中包含所有html标记。我尝试了一些东西,但没有任何东西像我想要的那样格式化我的信息。有谁知道如何在电子邮件中基本正确格式化?

我想简单地列出我的信息:
订单项目#
产品名称
价格
选项

但目前电子邮件中的输出有大量额外空格,并显示所有HTML。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

http://www.w3schools.com/Php/func_mail_mail.asp

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?>