如何在html表中发送动态电子邮件模板

时间:2014-09-17 10:01:07

标签: php email mysqli

为什么我的php变量没有初始化,在发送电子邮件之前发送带有初始化的php变量值的html电子邮件的解决方法是什么?我肯定我一定错过了什么。

$query=mysqli_query($conDB,"SELECT * FROM client_profile WHERE client_id='1'") or die(mysql_error());
    while($row = mysqli_fetch_array($query)) {
    $client_name = $row['client_name'];
    }

我从上面的查询中获取了$client_name中的客户名称。

$query2=mysqli_query($conDB,"SELECT * FROM emails WHERE emailfor='1'") or die(mysql_error());
while($row2 = mysqli_fetch_array($query2)) {

$from = $row2['fromEmail'];
$sendTO = $row2['to_Email'];
$template = $row2['template'];  //this database column holds this variable $client_name with table template
$subject = $row2['subject'];

}

$template变量包含以下结构

    <div style="color:#333;font-size: 14px;">
    Dear, '. $client_name .'<br /><br /><br />
    <table border="1" style="border-collapse:collapse; border:thin dotted #CCC; padding:5px; color:#333; font-size:13px;">
      <tr>
        <td><h3>Client Information</h3></td>    
      </tr>

      <tr><td>Client Name</td>    <td>'. $client_name .'</td></tr>
    </table>
    </div>

现在我发送电子邮件如下---

$to = $sendTO;
$emailSubject="$subject";
$from = $fromTO;    

$message = '<html><body bgcolor="#FFFFFF">';
$message .= '<head>';
$message .= '</head>';

$message .= "$template";    
$message .= "</body></html>";    

$headers = "From: $from \r\n" . "CC: $from";
$headers .= "Reply-To: $from \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";

mail($to, $emailSubject, $message,$headers);

我收到的变量名为Dear, $client_name的电子邮件 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

撰写$message .= "{$template}";

或使用str_replace function =&gt;

str_replace($arr , $arr1 , $string)

http://php.net/manual/ru/function.str-replace.php

答案 1 :(得分:-1)

如果您正在使用PHP 5.2.x或更高版本,您可能需要签出Mandrill,并可能与MailChimp一起用于生成模板。

他们拥有的沙盒模式非常好。

Mandrill - https://mandrillapp.com/api/docs/index.php.html