Я пытаюсь отправить NewsLetter 1500 пользователям, использующим PHPMailer и мои SMTP-серверы.
Я попытался отправить письма на 2 письма BCC для тестирования, и он успешно отправил письма. Но прежде чем я пойду вперед и отправлю почту на 1500 адрес электронной почты, у меня есть несколько вопросов.
Я использую этот фрагмент кода.
<?php require "../PHPMailer-master/PHPMailerAutoload.php"; $bcc_list = array('emailaddrs1,emailaddress2'); $mail = new PHPMailer(); $body = file_get_contents('contents.html'); $body = eregi_replace("[\]",'',$body); $mail->IsSMTP(); // telling the class to use SMTP $mail->Host = "smtp.myserver.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "smtp.myserver.com"; // sets the SMTP server $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "mailer@myserver.com"; // SMTP account username $mail->Password = "mypasss"; // SMTP account password $mail->SetFrom('mailer@myserver.com', 'myserver Support'); $mail->AddReplyTo("mailer@myserver.com","myserver Support"); $mail->Subject = "Email sent from xampp"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test $mail->MsgHTML($body); $address = "support@myserver.com"; $mail->AddAddress($address, "support@myserver.com"); foreach($bcc_list as $bcc_email){ $mail->AddBCC($bcc_email); } if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; //insert that emaill address into database for re-emailing. } else { echo "Message sent!"; }
1) Как я могу сделать, адрес электронной почты для пользователей электронной почты в поле <To>
а не мой фиктивный адрес?
2) Отправляет ли он 1 электронное письмо или 1500 писем? то есть, как я могу поймать, какие письма успешно отправлены и какой arent (из-за некоторого тайм-аута или что-то пойдет не так), чтобы я мог отправить их снова, и не нужно спамить всех остальных?
В вашем коде вы отправляете одно сообщение на 1 адрес и BCCing всем остальным, поэтому есть только один адрес To
адреса – это как раз то, как работает BCC. Если вы хотите, чтобы адрес каждого получателя был указан как адрес, вы должны отправить каждое сообщение индивидуально – посмотрите приведенный пример списка рассылки . Если вы хотите обнаружить сбои в длинном списке получателей любого рода, убедитесь, что вы используете обновленную версию PHPMailer, поскольку это было ошибкой в прошлом. Любые плохие адреса будут отображаться в $mail->ErrorInfo
.