PHP自动发送电子邮件不起作用

PHP自动发送电子邮件不起作用,php,mysql,sql,email,Php,Mysql,Sql,Email,我已经写了一些代码,使电子邮件自动发送到用户的电子邮件地址点击一个按钮。但出于某种原因,它不发送任何电子邮件,我用两个不同的电子邮件地址对它进行了测试 按钮代码: form action="sendellie.php" method="post"> <input type="submit" value="Buy tickets"/> </form> formaction=“sendellie.php”method=“post”> 处理页面的代码: <?ph

我已经写了一些代码,使电子邮件自动发送到用户的电子邮件地址点击一个按钮。但出于某种原因,它不发送任何电子邮件,我用两个不同的电子邮件地址对它进行了测试

按钮代码:

form action="sendellie.php" method="post">
<input type="submit" value="Buy tickets"/>
</form>
formaction=“sendellie.php”method=“post”>
处理页面的代码:

<?php
session_start();
    include 'connect.php';
     ini_set("sendmail_from", "********");

    $user_id= $_SESSION['id'];
    $sql = "SELECT username FROM user WHERE user_id = '$user_id'";

    $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    $uname = mysql_fetch_array($result);

     $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    $uemail = mysql_fetch_array($result);

    $user_id= $_SESSION['id'];
    $sql = "SELECT email FROM user WHERE user_id = '$user_id'";

    $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    $uemail = mysql_fetch_array($result);

     while($row = mysql_fetch_array($result))
     {
        $name = $uname['username'];
        $email = $uemail['email'];
        $message = "This email is to confirm you have purchased one Ellie Goulding Ticket for the O2";
        $subject = $uname['username'];
        echo "sent to"." ".$email." ".$subject." ".$message."<p />";

        mail($email, $subject, $message);
        }

        echo "Go check your mail box:";
        include 'close.php';
        ?>
    <?php echo $uemail['email'] ?><br>
    <a href="ellie.php">Back</a>
这应该有效(检查下面的注释):


我用这个代码来发送邮件,试试这个

<html>
    <body>

    <?php
    if (isset($_REQUEST['email']))

      {

      $email = $_REQUEST['email'] ;
      $subject = $_REQUEST['subject'] ;
      $message = $_REQUEST['message'] ;
      mail("someone@example.com", $subject,
      $message, "From:" . $email);
      echo "Thank you for using our mail form";
      }
    else

      {
      echo "<form method='post' action='mailform.php'>
      Email: <input name='email' type='text'><br>
      Subject: <input name='subject' type='text'><br>
      Message:<br>
      <textarea name='message' rows='15' cols='40'>
      </textarea><br>
      <input type='submit'>
      </form>";
      }
    ?>

    </body>
    </html>


很多事情都会阻止电子邮件到达某人的收件箱,其中很少有事情与代码有关。日志中是否有错误消息?SMTP服务器出错?当您针对您控制的模拟SMTP服务器进行测试时,其行为是什么?调试时,是否调用了
mail()
?(旁注:为什么要两次点击数据库以从同一条记录中获取两个字段?)。相反,给自己发一封简单的电子邮件,看看你是否收到了。你确定用户id是字符串吗?如果是int,则执行以下操作:$sql=“从用户选择用户名,其中用户\u id={$user\u id}”;通过使用外部变量构建SQL语句,您将面临SQL注入攻击。此外,任何带有单引号的输入数据,如“O'Malley”的名称,都会破坏您的SQL查询。请了解如何使用参数化查询(最好是PDO模块)来保护您的web应用程序。我的网站有一些例子可以让你开始,并且有很多详细的例子。
mail(to,subject,message,headers,parameters) 
<html>
    <body>

    <?php
    if (isset($_REQUEST['email']))

      {

      $email = $_REQUEST['email'] ;
      $subject = $_REQUEST['subject'] ;
      $message = $_REQUEST['message'] ;
      mail("someone@example.com", $subject,
      $message, "From:" . $email);
      echo "Thank you for using our mail form";
      }
    else

      {
      echo "<form method='post' action='mailform.php'>
      Email: <input name='email' type='text'><br>
      Subject: <input name='subject' type='text'><br>
      Message:<br>
      <textarea name='message' rows='15' cols='40'>
      </textarea><br>
      <input type='submit'>
      </form>";
      }
    ?>

    </body>
    </html>