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

Форум PHP

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

 

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

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

тема: Не прикрепляется файл к отправляемой почте.
 
 автор: lbgraf   (24.12.2008 в 14:37)   письмо автору
 
 

Добрый день подскажите что я делаю не так

function send_mail($mail_to, $thm, $msg ,$server_path)
{
$fp = fopen($server_path,"r");
if (!$fp)
{
print "File $path can not be readed";
exit();
}
$file = fread($fp, filesize($server_path));
fclose($fp);
$path = $server_path;

$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$headers .= "From: flbgraf@gmail.com";
$multipart .= "--$boundary\n";
//$kod='windows-1251';
$kod='koi8-r';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$msg\n\n";

$message_part = "";
$message_part .= "Content-Type: application/octet-stream";
$message_part .= "; file_name = \"$path\"\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= "--$boundary\n".$message_part."--$boundary--\n";

if(!mail($mail_to, $thm, $multipart, $headers))
{
echo "mail dose not sended";
exit();
}
}


получаю следующую ошибку

Warning: mail() [function.mail]: SMTP server response: 503 Bad sequence of commands. You must specify the recipients of a message before you can send it in D:\Domains\bgraf.biz\httpdocs\ordering.php on line 241

  Ответить  
 
 автор: Zend72   (24.12.2008 в 14:44)   письмо автору
 
   для: lbgraf   (24.12.2008 в 14:37)
 

Не правильная последовательность комманд. Вы должны определить получателей сообщения прежде, чем посылать соообщение в D:\Domains\bgraf.biz\httpdocs\ordering.php в строке 241

Вроде верно перевел ;)

PS
Прочтите документацию и информацию по ссылке

  Ответить  
 
 автор: lbgraf   (24.12.2008 в 14:51)   письмо автору
 
   для: Zend72   (24.12.2008 в 14:44)
 

помойму я определил получателя
$mail_to = "lbgraf@gmail.com";




if(empty($_FILES['m_attachment']['name']))
{
$mail_to = "lbgraf@gmail.com";
$thm = "Order";
$msg = "From ".$_POST['sex']." ".$_POST['f_name']." ".$_POST['l_name']."\n".$_POST['m_message'];
$headers = "From: ".$_POST['com_name']." "."<".$_POST['email'].">"."\n";
mail($mail_to, $thm, $msg ,$headers);

}
else
{
$file = $_FILES['m_attachment']['name'];
$tmp_file = $_FILES['m_attachment']['tmp_name'];
$server_path = "mail_attachment/".$file ;
//echo($file);
//echo($tmp_file);
if(copy($_FILES['m_attachment']['tmp_name'],$server_path))
{
send_mail($mail_to, $thm, $msg ,$server_path);
}
}

  Ответить  
 
 автор: lbgraf   (24.12.2008 в 15:47)   письмо автору
 
   для: lbgraf   (24.12.2008 в 14:51)
 

Все разобрался но вот проблема теперь с большим документом . Если он весит много то не отправляется что делать мне надо отправлять и большие документы тоже

  Ответить  
 
 автор: AcidTrash   (24.12.2008 в 16:38)   письмо автору
 
   для: lbgraf   (24.12.2008 в 15:47)
 

А большие это сколько метров?

Скорее всего большой файл, не то что не прикрепляется, а не копируется на сервер, так как его размер превышает максимальный размер загружаемого файл прописанного в директиве upload_max_filesize файла php.ini

  Ответить  
 
 автор: lbgraf   (24.12.2008 в 18:36)   письмо автору
 
   для: AcidTrash   (24.12.2008 в 16:38)
 

а как его увеличить

  Ответить  
 
 автор: lbgraf   (24.12.2008 в 18:37)   письмо автору
 
   для: lbgraf   (24.12.2008 в 18:36)
 

ну вот к примеру больше 300 килобайт виснит

  Ответить  
 
 автор: AcidTrash   (24.12.2008 в 21:40)   письмо автору
 
   для: lbgraf   (24.12.2008 в 18:37)
 

>300 килобайт виснит
Хм наврядли 300 килобайт повиснит
Посмотрите
phpinfo();
Сколько максимальный размер директивы upload_max_filesize ?
Кстати, не стоит использовать устаревшую copy(), а использовать move_uploaded_file().
Попробуйте просто воспользоваться функцией move_uploaded_file() и посмотрите будет ли файл на сервере.

  Ответить  
 
 автор: lbgraf   (25.12.2008 в 18:44)   письмо автору
 
   для: AcidTrash   (24.12.2008 в 21:40)
 

попробывал уже все и move_uploaded_file тоже . осталось только тайм аут изменить . спасибо всем за помощь

  Ответить  
 
 автор: BinLaden   (25.12.2008 в 20:00)   письмо автору
 
   для: AcidTrash   (24.12.2008 в 21:40)
 

> Кстати, не стоит использовать устаревшую copy(), а использовать move_uploaded_file()

Вы её устарили?

  Ответить  
 
 автор: lbgraf   (25.12.2008 в 23:17)   письмо автору
 
   для: BinLaden   (25.12.2008 в 20:00)
 

поменял .

  Ответить  
 
 автор: BinLaden   (25.12.2008 в 23:23)   письмо автору
 
   для: lbgraf   (25.12.2008 в 23:17)
 

Чо, на что? В данном случае действительно нужна move_uploaded_file()

  Ответить  
 
 автор: AcidTrash   (26.12.2008 в 20:27)   письмо автору
 
   для: BinLaden   (25.12.2008 в 20:00)
 

Да вообщем то не я, а разработчики, создав с версии php 4.0.3 данную функцию.

  Ответить  
Rambler's Top100
вверх

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