почему мои переменные php не инициализируются, какой обходной путь для отправки электронной почты html с инициализированными значениями переменных php перед отправкой электронной почты? Я уверен, что я должен что-то упустить.
$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
Любая помощь будет высоко ценится.
Написать $message .= "{$template}";
Или использовать str_replace
функция =>
str_replace($arr , $arr1 , $string)
Если вы работаете с PHP 5.2.x или выше, вы можете воспользоваться Mandrill и, возможно, использовать его с MailChimp для генерации вашего шаблона.
Режим песочницы у них довольно хороший.