Почта PHP просто иногда работает, а другие нет?


Итак, я работаю над установкой Wordpress для приятеля, отправляя форму на его адрес электронной почты. Я тестировал функцию почты и.. Ну, похоже, что после определенного количества раз, когда я его тестирую, он просто перестает работать...

У меня есть

if( mail( ... ) )
    echo " =) things are workin out all right...";
else
    echo "fuk...";

Оператор проверяет, отправляется ли почта.. и через некоторое время он просто перестает работать.

Есть ли параметр, который ограничивает количество писем, которые можно установить, или что-то в этом роде? Я тоже просто посылаю много почты?!

Теперь.. После того, как я подожду некоторое время (скажем, день), почта внезапно снова заработает.. хм...

Author: connorbode, 2012-11-23

1 answers

Некоторые хосты ограничивают количество сообщений, которые можно отправлять в минуту/час/день.


Чтобы обойти это, я создал вторую учетную запись Gmail для отправки сообщений из скрипта с помощью PHPMailer, затем создал этот скрипт (называемый mail.php):

<?php
include_once 'phpmailer/class.phpmailer.php';
function do_mail($from, $name, $to, $subject, $message, $debug = false) {
    $blah = base64_decode('base64-encoded password here');
    $mail = new PHPMailer();
    $mail->IsSMTP();
    if($debug) $mail->SMTPDebug = 2;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'tls';
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;
    $mail->Username = '[email protected]';
    $mail->Password = $blah;
    $mail->SetFrom($from, $name);
    $mail->AddAddress($to, $to);
    $mail->Subject = $subject;
    $body = $message;
    $mail->MsgHTML($body);
    $mail->AltBody = $message;
    if($mail->Send()) {
        return true;
    } else {
        return $mail->ErrorInfo;
    }
}
?>

Затем, чтобы отправить сообщение:

<?php
include_once 'mail.php';
$result = do_mail('[email protected]', 'First Last', '[email protected]', 'Subject here', 'message here');
// Or, with debugging:
$result = do_mail('[email protected]', 'First Last', '[email protected]', 'Subject here', 'message here', true);
// Print the result
var_dump($result);
?>
 2
Author: Unobtainium', 2012-11-23 02:54:13