Я не совсем понимаю, как все это работает, но я получаю эту ошибку:
Неустранимая ошибка: допустимый объем памяти 8388608 байт исчерпан (попытка выделить 261858 байт) в /Users/andrew/Sites/myApp/library/Zend/Mail/Transport/Smtp.php в строке 213
Я запускаю этот код локально на моем Mac с MAMP. Не уверен, что это как-то связано с этим. Это мой код, в основном:
$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'username', 'password' => 'password');
$smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
foreach ($subscribers as $subscriber) {
$message = new Zend_Mail('utf-8');
$message->setFrom('my@mailinglist.com', '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);
}
Однако, чем больше подписчиков, тем выше будет это число, и это исправление будет помогать только так долго:
ini_set("memory_limit","12M");
Мне нужно выяснить, как отправить электронное письмо с вложением на пару сотен человек. Вот еще кое-что, что я придумал, но кажется немного глупым задавать только bcc, а не адрес:
$message = new Zend_Mail('utf-8');
$message->setFrom('my@mailinglist.com', 'Mailing list')
->setSubject($subject)
->setBodyText($body);
$attachment = $message->createAttachment(file_get_contents($filepath));
$attachment->type = 'application/pdf';
$attachment->filename = $filename;
foreach ($subscribers as $subscriber) {
$message->addBcc($subscriber->email);
}
$message->send($smtpConnection);
Однако, даже делая это, мне нужно указать «memory_limit». Можете ли вы указать мне правильное направление с этим? Есть что-то, чем я не занимаюсь?