Автор Тема: PHP: Отправка удаленного файла аттачем на еmail.  (Прочитано 4487 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Имеем код:

<?php 
$fileatt 
"http://www.yandex.ru/logo2.gif"// Path to the file                  
$fileatt_type "application/octet-stream"// File Type 
$fileatt_name "12345.gif"// Filename that will be used for the file as the attachment 

$email_from "perl@user.ru"// Who the email is from 
$email_subject "12"// The Subject of the email 
$email_txt "perl@user.ru"// Message that the email has in it 

$email_to "perl@net.ru"// Who the email is too 

$headers "From: ".$email_from

$file fopen($fileatt,\'rb\'); 
$data = fread($file,filesize($fileatt)); 
fclose($file); 

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
    
$headers .= "\\nMIME-Version: 1.0\\n" . 
            "Content-Type: multipart/mixed;\\n" . 
            " boundary=\\"{$mime_boundary}\\""; 

$email_message .= "This is a multi-part message in MIME format.\\n\\n" . 
                "--{$mime_boundary}\\n" . 
                "Content-Type:text/html; charset=\\"iso-8859-1\\"\\n" . 
               "Content-Transfer-Encoding: 7bit\\n\\n" . 
$email_message . "\\n\\n"; 

$data = chunk_split(base64_encode($data)); 

$email_message .= "--{$mime_boundary}\\n" . 
                  "Content-Type: {$fileatt_type};\\n" . 
                  " name=\\"{$fileatt_name}\\"\\n" . 
                  //"Content-Disposition: attachment;\\n" . 
                  //" filename=\\"{$fileatt_name}\\"\\n" . 
                  "Content-Transfer-Encoding: base64\\n\\n" . 
                 $data . "\\n\\n" . 
                  "--{$mime_boundary}--\\n"; 

$ok = @mail($email_to, $email_subject, $email_message, $headers); 

if($ok) { 
echo "<font face=verdana size=2>The file was successfully sent!</font>"; 
} else { 
die("Sorry but the email could not be sent. Please go back and try again!"); 

?>


Письмо отправляется, однако файл в аттаче нулевой длинны. Есть подозрение, что это из-за "filesize". Что поправить - для нормальной отправки удаленных файлов?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #1 : 28 Августа 2003, 19:24:48 »
"удаленный файл" сервер отправить не может. он его сначала скачать должен. вот и проверь - скачивает он или хостер это дело прикрыл
ну, будем исповедоваться?

Оффлайн gap

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #2 : 28 Августа 2003, 19:32:53 »
AliMamed
А как это 100% проверить?

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #3 : 29 Августа 2003, 10:42:09 »
[p]is_file[/p]
Не все коту матрица.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #4 : 29 Августа 2003, 11:51:17 »
Цитировать
Opmerking: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #5 : 29 Августа 2003, 11:56:15 »
Alexandr

Тебе ж написали, что
Цитировать
AliMamed:
"удаленный файл" сервер отправить не может. он его сначала скачать должен.


Т.е. ты сначала закачиваешь файл на сервер, потом используешь is_file, чтобы проверить - закачался он или нет, а потом отправляешь аттачем.
Не все коту матрица.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #6 : 29 Августа 2003, 12:31:19 »
is_file ни как в данном случае не поможет!!!!!
Цитировать
AliMamed:
скачивает он или

нет вообще. А потом проверять длину принятых данных.... ведь скачиваешь ты не файл, а данные!!!
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #7 : 29 Августа 2003, 12:47:25 »
Блин, ступил. Короче, проблема, я так полагаю в следующем:

int filesize string filename)

Returns the size of the file in bytes, or FALSE in case of an error
The results of this function are cachedSee clearstatcache() for more details
This function will not work on remote filesthe file to be examined must be accessible via the server\'s filesystem. 


Т.е. ты не можешь считать файл
Цитировать
gap:
$data = fread($file,filesize($fileatt));


потому как filesize в данном случае  возвращает false. и fread вроде как отрабатывает, но считывает 0 байт.
Не все коту матрица.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
PHP: Отправка удаленного файла аттачем на еmail.
« Ответ #8 : 29 Августа 2003, 13:01:45 »
Вот так вроде должно сканать:

$data
=\'\';
while (!feof($file)) $data.=fread($file,128);

или так

$data 
fread($file99999999/*заведомо бОльшее число*/);
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28