PHP邮件有时候工作,有些不是吗?

时间:2012-11-23 02:20:39

标签: php sendmail

所以我正在为一个伙伴做一个Wordpress安装,让一个表单发送到他的电子邮件地址。我一直在测试邮件功能和..好吧,似乎经过一定次数我测试它,它只是停止工作...

我有一个

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

语句检查邮件是否正在发送..过了一段时间它就停止了工作。

是否有限制可以设置的邮件数量的设置?我只是发了太多邮件?!

现在..在我等了一会儿(比如说一天)后,邮件突然又恢复了......嗯......

1 个答案:

答案 0 :(得分:2)

某些主机限制每分钟/小时/天可以发送的邮件数量。


要解决此问题,我设置了第二个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 = 'username@gmail.com';
    $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('username@gmail.com', 'First Last', 'someone@example.com', 'Subject here', 'message here');
// Or, with debugging:
$result = do_mail('username@gmail.com', 'First Last', 'someone@example.com', 'Subject here', 'message here', true);
// Print the result
var_dump($result);
?>