私のコードはテーブルの最後のサブスクライバーにのみメールを送信したため、ここで何か間違ったことをしているに違いないと思います。サブスクライバーの配列をログに記録すると、送信しようとしているサブスクライバーが複数あることが明らかです。問題は、それらを一緒にバッチ処理しようとすることに関係していると思います...これを行うための最良の方法は何ですか? 添付ファイル付きの 1 つのメッセージを作成し、アドレスを個別に送信し、それらすべてを 1 つのバッチ処理として送信しようとしています。これが私のコードです:
$subscribersManager = new DD_Subscribers_Manager();
$subscribers = $subscribersManager->getAllSubscribers();
$subject = $form->getElement('subject')->getValue();
$body = $form->getElement('body')->getValue();
$filename = $form->getElement('bulletin')->getValue();
$filepath = Zend_Registry::get('rootDir') . '/public/downloads/archive/' . $filename;
$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'fake@email.com', 'password' => 'password');
$smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
foreach ($subscribers as $subscriber) {
$message = new Zend_Mail('utf-8');
$message->setFrom('fake@email.com', 'My Fake Mailing List')
->addTo($subscriber->email)
->setSubject($subject)
->setBodyText($body);
$attachment = $message->createAttachment(file_get_contents($filepath));
$attachment->type = 'application/pdf';
$attachment->filename = $filename;
}
$message->send($smtpConnection);