php - 简单的 mail() 将从 mysql 生成一个获取的报告

标签 php mysql email

使用简单的 mail() 函数在 php 中发送邮件。

我想发送邮件,该邮件将生成从 mysql 数据库获取的报告,但 mail() 需要 4 个参数mail($to,$subject,$message,$from ) 我无法生成 $message 因为它将包含具有获取的值和特定格式的邮件正文。

我的script.php来生成报告:-

<?php
$to  = 'abc@gmail.com' . ', ';
$subject = 'Test Mail';

$query=mysql_query("SELECT * from table_name ");

echo'<html>
<head>
<title>Testing</title>
</head>
<h1>Test User</h1>
<table border="1" cellspacing="1">

<tr>
<th>id</th>
<th>user</th>
<th>phoneCount</th>';

while($row = mysql_fetch_array($query))
 {
echo  "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['user'] . "</td>";
echo "<td>" . $row['phone'] . "</td>";
echo "</tr>";
}
echo "</table>";      
echo "</html>";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// More headers
$headers .= 'From: <from@example.com>' . "\r\n";
mail($to, $subject, $msg, $headers);
?>

因为我得到了 $to、$subject、$headers 的值,但是 $msg 造成了问题。我怎样才能以这种格式发送邮件。我不知道如何获取邮件正文$msg 将生成报告

最佳答案

以其最简单的形式,而不是回显内容,您希望将其分配给变量。

您有几个选项可以执行此操作:

1)变量串联

$message = '<p>Line 1</p>';
$message .= '<p>' . $line2 . '</p>';
$message .= '<p>Line 3</p>';

$message 的内容将是:

<p>Line 1</p><p>Line 2</p><p>Line 3</p>

2) 输出缓冲

ob_start(); // http://www.php.net/manual/en/function.ob-start.php

echo '<p>Line 1</p>';
echo '<p>' . $line2 . '</p>';
echo '<p>Line 3</p>';

$message = ob_get_clean(); // http://www.php.net/manual/en/function.ob-get-clean.php

3) Heredoc 语法(这种方法可能会很棘手,我现在不推荐它)

$message = <<<EOT

<p>Line 1</p>
<p>$line2</p>
<p>Line 3</p>

EOT;

这 3 种方法中的每一种都可以让您将内容分配到 $message 中。

但是默认情况下邮件只会发送纯文本电子邮件。如果您想发送 HTML 电子邮件,您需要设置特定的 header ,理想情况下您应该设置多部分边界等。我可能会建议使用像 Zend 这样的库,您可以逐个包含它。如果失败的话,这是一个基本示例:http://css-tricks.com/sending-nice-html-email-with-php/

希望有帮助。

关于php - 简单的 mail() 将从 mysql 生成一个获取的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456084/

相关文章:

php - Piwik 安装不工作

php - 如何使用原始查询在 laravel 5 中使用分页

php - 如何根据php中的创建日期从目录中删除文件?

mysql - 带有 Node.js 以及数据库和流程的 Microsoft Bot 框架

ruby-on-rails - 通过 Heroku Rails 应用程序使用 DNS 和 SMTP 检查进行电子邮件验证

php - 如何将一个数字四舍五入到能被 16 整除的最接近的数字?

php - 复选框细化使用逗号分隔字段存储的 mysql 表的搜索

MySQL查询: GROUP BY - get specific row (not always the first one)

php - 这个使用 Pear Mail 发送邮件的 PHP 脚本有什么问题?

javascript - 通过 Outlook 发送电子邮件