所以我正在为一个伙伴做一个Wordpress安装,让一个表单发送到他的电子邮件地址。我一直在测试邮件功能和..好吧,似乎经过一定次数我测试它,它只是停止工作...
我有一个
if( mail( ... ) )
echo " =) things are workin out all right...";
else
echo "fuk...";
语句检查邮件是否正在发送..过了一段时间它就停止了工作。
是否有限制可以设置的邮件数量的设置?我只是发了太多邮件?!
现在..在我等了一会儿(比如说一天)后,邮件突然又恢复了......嗯......
答案 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);
?>