で複数の電子メールを送信するためにZendのメールトランスポートを使用しようとすると、私は完全にこのすべてがどのように機能するかを理解していないが、私はこのエラーを取得しています:Zend Frameworkの:致命的なエラーが発生した添付ファイル
致命的なエラー:許可されたメモリサイズを/Users/andrew/Sites/myApp/library/Zend/Mail/Transport/Smtp.php 213行目にある8388608バイトの空き(261858バイトの割り当てを試みました)
私は実行中の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('[email protected]', '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('[email protected]', '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」を指定する必要があります。あなたはこれを正しい方向に向けることができますか?私がやっていないことはありますか?
ロットアドバイスはこちら!しかし、(メモリ制限を設定せずに)メールを1通送信するだけで、まだエラーが発生しています。エラーはメモリの制限が現在8Mbに設定されていることを意味し、250Kを超えていますか?私はこれをローカルで(MAMPを使って)実行しています。私はこれを私のコードで32Mbに設定すると、それは私のサーバーが可能なものより少ないでしょうか?より良い解決策を見つけるよりも、この価値を設定することで不利益を蒙っていますか? – Andrew
8Mが小さすぎます。実際、デフォルトのPHP memory_limitはPHP5.2.0時点で16Mです。あなたが非常にローエンドのサーバ/コンピュータを持っていない限り、それを32Mに設定することは全く問題ではありません。個人的には私のワークステーションと私のサーバー(それぞれ4G/2Gメモリ)で128Mを実行しています。あなたの現在のmemory_limitは、ini_get( 'memory_limit')と同じです。あなたの現在の使用法に関しては、memory_get_peak_usage()とmemory_get_usage()。中傷をするのは?イモ、いいえ。使用はまだ受け入れ可能なパラメータの範囲内です。 – tommym