Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отсылка писем размером большим, чем 4 Мб
 
 автор: Tread   (26.02.2007 в 11:45)   письмо автору
 
 

Здравствуйте!
Заранее говорю спасибо за помощь :)

Вопрос такой - как средствами PHP отослать письмо с аттачем большим чем 4 Мб?
Ходя по инету наткунлся на 3-4 нормальных класса отсылки писем с аттачами, но все они дают сбой при аттаче больше чем 3-4 Мб...
Ошибка вылетает такая
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 5763915 bytes) in /home/тра-та/public_html/copy_send.php on line 87

line 85 : function build_message($part) {
line 86 : $message = $part["message"];
line 87 : $message = chunk_split(base64_encode($message));
line 88 : $encoding = "base64";
line 89 : return "Content-Type: ".$part["ctype"].($part["name"]? "; name = \"".$part["name"]."\"" :
line 90 : "")."\nContent-Transfer-Encoding: $encoding\n\n$message\n";
line 91 : }

Если кто сталкивался, просьба просветить...

   
 
 автор: mihdan   (26.02.2007 в 11:48)   письмо автору
 
   для: Tread   (26.02.2007 в 11:45)
 

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 5763915 bytes) in /home/тра-та/public_html/copy_send.php on line 87 - это ошибка РНР, а не скриптов, настройте ваш php.ini

   
 
 автор: cheops   (26.02.2007 в 12:24)   письмо автору
 
   для: Tread   (26.02.2007 в 11:45)
 

Ну скажем так сильно больше 4 Мб у вас передаётся, на скрипт выделено 16 Мб, у вас расходуется больше - и PHP-интерпретатор останавливает скрипт.

   
 
 автор: Tread   (26.02.2007 в 12:26)   письмо автору
 
   для: cheops   (26.02.2007 в 12:24)
 

На самом деле я передаю аттач на 5 мб :) но выдает такое ...
А какой параметр подправить в php.ini?
Часом не memory_limit?

Спасибо

   
 
 автор: mihdan   (26.02.2007 в 12:39)   письмо автору
 
   для: Tread   (26.02.2007 в 12:26)
 

memory_limit = 8M - исправь число на побольше

   
 
 автор: Tread   (26.02.2007 в 13:02)   письмо автору
 
   для: mihdan   (26.02.2007 в 12:39)
 

Исправил...
Не помогло :(

   
 
 автор: Trianon   (26.02.2007 в 12:42)   письмо автору
 
   для: Tread   (26.02.2007 в 12:26)
 

Вы уверены, что адресат сможет принять это письмо?

   
 
 автор: Tread   (26.02.2007 в 12:52)   письмо автору
 
   для: Trianon   (26.02.2007 в 12:42)
 

Да, уверен!

   
 
 автор: Trianon   (26.02.2007 в 12:42)   письмо автору
 
   для: cheops   (26.02.2007 в 12:24)
 

Я только в приведенном Выше фрагменте вижу:
$part["message"] - X МБ
$message - X Мб
base64_encode() - X *1.34
chunk_split()- X *1.34
---
то есть уже 4.67* X

Немудрено, что вылетает с пределом в 16 метров....

   
 
 автор: Tread   (26.02.2007 в 12:53)   письмо автору
 
   для: Trianon   (26.02.2007 в 12:42)
 

Хмм, а что тогда делать ...
Спасибо

   
 
 автор: mihdan   (26.02.2007 в 13:31)   письмо автору
 
   для: Tread   (26.02.2007 в 12:53)
 

memory_limit = 8M - исправь число на побольше

   
 
 автор: Tread   (26.02.2007 в 13:39)   письмо автору
 
   для: mihdan   (26.02.2007 в 13:31)
 

Не помогло....
Спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования