代码之家  ›  专栏  ›  技术社区  ›  Martin Bean

php mail()错误;找不到!

  •  0
  • Martin Bean  · 技术社区  · 15 年前

    我对一个简单的PHP邮件程序有问题。我已经让这个脚本工作了,但它现在不工作了,我看不到我的生活为什么不。而是吐出原始的HTML,而不是呈现的模板。

    如果有人能浏览一下并回复我,那就太好了。事先谢谢。

    <?php
    if (isset($_POST['send']))
    {
        // explode the email addresses
        $emails = explode(',', strtolower($_POST['to']));
    
        // validate each email address
        foreach ($emails as $id => $email) {
            if (!filter_var(trim($email), FILTER_VALIDATE_EMAIL)) {
                die($email . ' is not a valid email address');
            }
        }
    
        // all is good, let's send the emails out
        $subject = 'Digital Pop Christmas Email';
        $message = file_get_contents('index.html');
    
        // loop through each recipient
        foreach ($emails as $email) {
            $to = $email;
            $subject = 'Merry Christmas from Digital Pop';
            $headers  = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $headers .= 'To: ' . $email . "\r\n";
            $headers .= 'From: Digital Pop <info@digitalpop.co.uk>' . "\r\n";
            if (mail($to, $subject, $message, $headers)) {
                echo "Email successfully sent to $email";
            } else {
                echo "Error sending email to $email";
            }
            echo "<br />\r\n";
        }
        exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title>PHP Mailer</title>
        <meta http-equiv="author" content="martin@digitalpop.co.uk" />
      </head>
      <body>
        <p>Send the <a href="./">Digital Pop Christmas Email</a>.</p>
        <form action="?" method="post">
          <fieldset>
            <div><label for="to">To:</label> <small>(separate email addresses with commas)</small></div>
            <div><textarea name="to" id="to" cols="50" rows="8"></textarea></div>
            <div><input type="submit" name="send" value="Send" /></div>
          </fieldset>
        </form>
      </body>
    </html>
    
    3 回复  |  直到 12 年前
        1
  •  0
  •   MindStalker    15 年前

    在少数情况下,由于邮件服务器配置错误,您只需要\n而不是\r\n 试试看。

        2
  •  0
  •   frnhr    15 年前

    我复制了你的代码(php文件和index.html)并给自己发了一封圣诞快乐邮件:) 它对我来说就像是一个魅力,所以问题在于服务器的配置或者邮件客户端(我使用gmail)。希望有帮助。

        3
  •  0
  •   Januz    15 年前

    你查过邮件日志了吗?(通常在/var/log/mail.log中)。如果你在短时间内发送了太多的电子邮件,你可能会被暂时阻止(Gmail会发生这种情况)。