如何使用PHP的mail()函数发送电子邮件

时间:2012-05-05 19:52:36

标签: php mysql arrays email function

我制作了一个不发送任何电子邮件的小代码。它给了我一个空白页面。有什么建议吗?

<?php 
$result_array1 = array();
$result_array2 = array();
$result_array3 = array();
$result_array4 = array();
$sql1 = "SELECT * FROM  `test_thing`";
$result1 = mysql_query("$sql1") or die($sql1.mysql_error());
while($row1 = mysql_fetch_array($result1))
{
   $result_array1[] = $row1['email'];
   $result_array2[] = $subject;
   $result_array3[] = $message;
   $result_array4[] = $header;
}
$sentmail = mail($result_array1,$result_array2,$result_array3,$result_array4);
?>

6 个答案:

答案 0 :(得分:7)

It gives me a blank page.

实际上它应该。您不在您显示的代码中使用输出函数。如果您预计会出现错误消息,请确保您已启用display_errorserror_reportingE_ALL

答案 1 :(得分:4)

Mail将字符串作为参数,而不是数组。您需要在每个数组上为其索引执行for循环和调用邮件。

答案 2 :(得分:1)

while($row1 = mysql_fetch_array($result1))
{
   $result_array1[] = $row1['email'];
   $result_array2[] = $subject;
   $result_array3[] = $message;
   $result_array4[] = $header;
}

我希望你的意思是:

while($row1 = mysql_fetch_array($result1))
{
   $result_array1 = $row1['email'];
   $result_array2 = $subject;
   $result_array3 = $message;
   $result_array4 = $header;
}

mail()期待字符串。除非你想循环并发送多个邮件,否则你需要重新设计一下代码。

答案 3 :(得分:1)

如果这是您的完整代码,则表示您的数据库未正确初始化。阅读mysql_connect()上的文档以获取更多信息和示例。

另外,尝试回显一些调试数据,看看你实际上是从数据库中获取了一些数据。

答案 4 :(得分:0)

为什么不

<?php 
  $result_array1 = array();
  $result_array2 = array();
  $result_array3 = array();
  $result_array4 = array();
  $sql1 = "SELECT * FROM  `test_thing`";
  $result1 = mysql_query("$sql1") or die($sql1.mysql_error());
  while($row1 = mysql_fetch_array($result1))
  {
    $sentmail = mail($row1['email'],$subject,$message,$header);
  }
?>

答案 5 :(得分:0)

我认为你不止一个问题。 首先,您必须连接到数据库。如答案1,请阅读php手册中的mysql界面,特别是函数mysql_connect。 其次,事实上是错误的。 虽然(x = any_function)不将any_function结果归因于变量&#39; x&#39;。 &#39; x = any_function&#39;返回一个布尔值,没有别的。 你可以这样写: while((x = any_function()))或在您的情况下: while(($ row1 = mysql_fetch_array($ result1))) 其中&#39; $ row1 = mysql_fetch_array($ result1)&#39;属性为mysql_fecth_array和。返回的$ rows1值 &#39;($ row1 = mysql_fetch_array($ result1))&#39;返回一个布尔值来控制while结构。 我希望我能帮到你。