Почта PHP просто иногда работает, а другие нет?
Итак, я работаю над установкой Wordpress для приятеля, отправляя форму на его адрес электронной почты. Я тестировал функцию почты и.. Ну, похоже, что после определенного количества раз, когда я его тестирую, он просто перестает работать...
У меня есть
if( mail( ... ) )
echo " =) things are workin out all right...";
else
echo "fuk...";
Оператор проверяет, отправляется ли почта.. и через некоторое время он просто перестает работать.
Есть ли параметр, который ограничивает количество писем, которые можно установить, или что-то в этом роде? Я тоже просто посылаю много почты?!
Теперь.. После того, как я подожду некоторое время (скажем, день), почта внезапно снова заработает.. хм...
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);
?>