phpmailer在这么多发送后停止?
我试图通过phpmailer发送1,000多封电子邮件,但是在发送了100封电子邮件后,它停止发送它们,您知道为什么会这样吗?这是我的代码。
我正在使用phpmailer和Google SMTP,并将AG Suite电子邮件作为发件人。
它确实完美地执行了每个功能,但是由于某种原因,它只是随机停止在循环中。非常失落。
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
header('Content-Type: application/json');
require '/var/www/fakewebsite.com/vendor/autoload.php';
$newsletterid = $_POST['newsletterid'];
$allcontacts = Contacts::ReadAllNewsletter();
$allnewseletters = Newsletter::ReadAllNewsletter();
$mail = new PHPMailer(true);
//Server settings
//Enable verbose debug output
$mail->isSMTP();
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->SMTPKeepAlive = true; //Keep SMTP Connection Alive During Loop
$mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through
$mail->Username = '[email protected]'; //SMTP usernames
$mail->Password = 'fakepassword'; //SMTP password
$mail->SMTPSecure = 'tls'; //Enable implicit TLS encryption
$mail->Port = 587;
$mail->SMTPDebug = 1;
$mail->addReplyTo('[email protected]', 'Fake Name');
foreach ($allcontacts as $eachcontact) {
foreach ($allnewseletters as $eachnewsletter) {
if ($eachnewsletter["id"] == $newsletterid) {
if ($eachnewsletter["contactlist"] == 1) {
if ($eachcontact["contacttype"] == 'Client') {
if ($eachcontact["subscribed"] == 1) {
$sendnewsletter = new Newsletter();
$sendnewsletter->contactid = $eachcontact["id"];
$sendnewsletter->newsletterid = $eachnewsletter["id"];
$newslettercounter = new Newsletter();
$newslettercounter->id = $eachnewsletter["id"];
//Recipients
$mail->setFrom('[email protected]', $eachnewsletter["fromname"]);
$mail->addAddress($eachcontact["email"]);
$message1 = file_get_contents('/var/www/fakewebsite.com/public_html/admin/emailtemplates/newsletterunfilled.php');
$message1 = str_replace('{NEWSLETTERCONTENT}', $eachnewsletter["content"], $message1);
$message1 = str_replace('{First Name}', $eachcontact["name"], $message1);
$message1 = str_replace('..', "https://fakewebsite.com/admin", $message1);
$message1 = str_replace("api/unsubscribe.php?contactid={contactid}&newsletterid={newsletterid}", "https://fakewebsite.com/admin/newsletter/api/unsubscribe.php?contactid={contactid}&newsletterid={newsletterid}", $message1);
$message1 = str_replace('<span style="color: #ffffff;"><a style="color: #ffffff;" href="https://www.divinestatus.com" target="_blank" rel="noopener"><strong>SCHEDULE TRANPORT</strong></a></span>', '<span style="color: #ffffff;"><a style="color: #ffffff;" href="https://fakewebsite.com/admin/newsletter/api/linkclicked.php?url=https://www.fakewebsite.com&contactid={contactid}&newsletterid={newsletterid}" target="_blank" rel="noopener"><strong>SCHEDULE TRANPORT</strong></a></span>', $message1);
$message1 = str_replace('{First Name}', $eachcontact["name"], $message1);
$message1 = str_replace('{contactid}', $eachcontact["id"], $message1);
$message1 = str_replace('{newsletterid}', $eachnewsletter["id"], $message1);
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = $eachnewsletter["subject"];
$mail->Body = $message1;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$sendnewsletter->delivered = 1;
$sendnewsletter->SendNewsletter();
$newslettercounter->NewsletterDelivered();
$result = array('status' => "success", 'message' => "Message sent.");
echo json_encode($result);
if (!$mail->send()) {
$result = array('status' => "error", 'message' => "Message not sent!.");
echo json_encode($result);
echo "Mail Not Sent";
$sendnewsletter->delivered = 0;
$sendnewsletter->SendNewsletter();
}
$mail->ClearAllRecipients();
sleep(1);
}
}
}
}
}
}
I am attempting to send over 1,000 emails through phpmailer, however after roughly the 100 email sent, it stops sending them, do you know why this could be? Here is my code.
I am using PHPmailer and Google SMTP, with a g suite email as the sender.
It does execute every function perfectly, but for some reason it just randomly stops in the loop. Very lost.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
header('Content-Type: application/json');
require '/var/www/fakewebsite.com/vendor/autoload.php';
$newsletterid = $_POST['newsletterid'];
$allcontacts = Contacts::ReadAllNewsletter();
$allnewseletters = Newsletter::ReadAllNewsletter();
$mail = new PHPMailer(true);
//Server settings
//Enable verbose debug output
$mail->isSMTP();
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->SMTPKeepAlive = true; //Keep SMTP Connection Alive During Loop
$mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through
$mail->Username = '[email protected]'; //SMTP usernames
$mail->Password = 'fakepassword'; //SMTP password
$mail->SMTPSecure = 'tls'; //Enable implicit TLS encryption
$mail->Port = 587;
$mail->SMTPDebug = 1;
$mail->addReplyTo('[email protected]', 'Fake Name');
foreach ($allcontacts as $eachcontact) {
foreach ($allnewseletters as $eachnewsletter) {
if ($eachnewsletter["id"] == $newsletterid) {
if ($eachnewsletter["contactlist"] == 1) {
if ($eachcontact["contacttype"] == 'Client') {
if ($eachcontact["subscribed"] == 1) {
$sendnewsletter = new Newsletter();
$sendnewsletter->contactid = $eachcontact["id"];
$sendnewsletter->newsletterid = $eachnewsletter["id"];
$newslettercounter = new Newsletter();
$newslettercounter->id = $eachnewsletter["id"];
//Recipients
$mail->setFrom('[email protected]', $eachnewsletter["fromname"]);
$mail->addAddress($eachcontact["email"]);
$message1 = file_get_contents('/var/www/fakewebsite.com/public_html/admin/emailtemplates/newsletterunfilled.php');
$message1 = str_replace('{NEWSLETTERCONTENT}', $eachnewsletter["content"], $message1);
$message1 = str_replace('{First Name}', $eachcontact["name"], $message1);
$message1 = str_replace('..', "https://fakewebsite.com/admin", $message1);
$message1 = str_replace("api/unsubscribe.php?contactid={contactid}&newsletterid={newsletterid}", "https://fakewebsite.com/admin/newsletter/api/unsubscribe.php?contactid={contactid}&newsletterid={newsletterid}", $message1);
$message1 = str_replace('<span style="color: #ffffff;"><a style="color: #ffffff;" href="https://www.divinestatus.com" target="_blank" rel="noopener"><strong>SCHEDULE TRANPORT</strong></a></span>', '<span style="color: #ffffff;"><a style="color: #ffffff;" href="https://fakewebsite.com/admin/newsletter/api/linkclicked.php?url=https://www.fakewebsite.com&contactid={contactid}&newsletterid={newsletterid}" target="_blank" rel="noopener"><strong>SCHEDULE TRANPORT</strong></a></span>', $message1);
$message1 = str_replace('{First Name}', $eachcontact["name"], $message1);
$message1 = str_replace('{contactid}', $eachcontact["id"], $message1);
$message1 = str_replace('{newsletterid}', $eachnewsletter["id"], $message1);
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = $eachnewsletter["subject"];
$mail->Body = $message1;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$sendnewsletter->delivered = 1;
$sendnewsletter->SendNewsletter();
$newslettercounter->NewsletterDelivered();
$result = array('status' => "success", 'message' => "Message sent.");
echo json_encode($result);
if (!$mail->send()) {
$result = array('status' => "error", 'message' => "Message not sent!.");
echo json_encode($result);
echo "Mail Not Sent";
$sendnewsletter->delivered = 0;
$sendnewsletter->SendNewsletter();
}
$mail->ClearAllRecipients();
sleep(1);
}
}
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论