PHP mail () ошибка; Я не вижу, чтобы искать! - PullRequest
0 голосов
/ 21 декабря 2009

У меня проблема с простой почтовой программой 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 ]

0 голосов
/ 21 декабря 2009

Я скопировал ваш код (php file и index.html) и отправил себе приятное письмо с Рождеством :) Для меня это сработало как прелесть, поэтому проблема в конфигурации вашего сервера или, возможно, в вашем почтовом клиенте (я использую GMail). Надеюсь, это поможет.

0 голосов
/ 21 декабря 2009

Вы проверяли свои почтовые журналы? (обычно в /var/log/mail.log). Возможно, вас временно заблокировали, если вы отправляли слишком много писем за короткий период (это происходит с Gmail).

0 голосов
/ 21 декабря 2009

В некоторых редких случаях из-за неправильной конфигурации почтового сервера вам нужно только \ n вместо \ r \ n Попробуйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...