Письмо с аттачем: пустая картинка

Mandark

Guest
Письмо с аттачем: пустая картинка

Необходимо приаттачить к хтмл письму файл с изображением.
Использую PEAR-класс Mail_mime.
В результате все получается и картинка аттачится, но при ее открытии - она пуста, т.е. без содержимого. Файл есть - даже по размеру совпадает с приаттаченым.
В чем трабл - помогите разобраться, плз.
 

Mandark

Guest
Да, опробовал и этот тип и и 'image/gif' - тоже. Ситуация таже.
Перечитал весь контент по поиску здесь, но проблема остается той же. Все есть - но картинка пуста.
 

dnes

Новичок
Mandark

Так картинка-то какая, jpeg или gif?

Покажи-ка код.
 

Mandark

Guest
ну если для тебя это так принципиально пусть будет gif.
 

Mandark

Guest
Это я тоже понимаю, просто трабл этот возник и пока что от него никак избавиться не могу, может все же кто нить что нить посоветует?
Те примеры, которые приводят здесь в ссылках, дают тот же результат - письмо формируется, аттач вкладывается, но вот само изображение во вкладываемом файле-картинке - отстутствует.
 

Mandark

Guest
Вкладываю ее я посредством готового PEAR-класс Mail_mime.
Вот пример:


include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$html = '<html><body>HTML version of email<img src="ratings.gif"></body></html>';
$file = 'ratings.gif';
$crlf = "\r\n";
$hdrs = array(
'From' => '[email protected]',
'Subject' => 'Test mime message'
);

$f_open=@fopen($file,"r+") or die("Невозможно открыть файл!");
$f_read=@fread($f_open, filesize($file)) or die("Невозможно прочитать файл");

$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->addHTMLImage ($file, 'image/gif');
$mime->setHTMLBody($html);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('[email protected]', $hdrs, $body);

@fclose($f_open);
 

dnes

Новичок
Во! А мне не хотел показывать и грубил еще...

А теперь: знаю, но не скажу. Обиделся я.
 

Mandark

Guest
а может все же скажешь?
Да и не грубил я часа 3 уже просто сижу и никак - может и мысли от этого не туда заворачивают. :)
Так и все же - советуй, а то не в моготу уже.
 

dnes

Новичок
По глазам вижу, хочешь gif в тело документа вставить. А стоит ли?

Если стоит, внимательно почитай


статью


Если нет, разберись, какой мейл ты собссно посылаешь: text/plain или html.

Советую text/plain. Тогда убери все связанное с html а вместо

$mime->addHTMLImage ($file, 'image/gif');

поставь

$mime->addAttachment($file, 'image/gif');
 

Mandark

Guest
Та дело в том что письмо нужно обязательно в штмл и обязательно с картинкой.

Даже если я буде отправлять письмо в text/plain, то картинка все равно приходит пустой. Вот пример:

$text = 'Text version of email';
$file = 'ddd.jpg';
$hdrs = array(
'From' => '[email protected]',
'Subject' => 'Test mime message'
);

$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->addAttachment($file, 'image/gif');
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
$mail->send('[email protected]', $hdrs, $body);

Мне нужно чтобы картинка приходила такой же как отсылалась а не пустой. Дело не в отображении ее в документе, а в ее контенте, т.е. сам файл не является графическим
 

Mandark

Guest
это я те не тот кусок скопировал
в коде оно правильно - а вот результат никакой

у меня просто складывается впечатление, что сама обработка файла происходит криво - не копируется его контент
 

Mandark

Guest
если б это было так смешно я б посмеялся за компанию
можешь прислать мне свою правильную картинку - на ней проверю ;)
 

dnes

Новичок
Mandark

Расхлябаный ты какой-то братец... Зачем же нам сюда
"не тот кусок копировать" :)

Убедись, что картинка в порядке и:

<?php
include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$file = 'ratings.gif';
$crlf = "\r\n";
$hdrs = array(
'From' => '[email protected]',
'Subject' => 'Test mime message'
);

$f_open=@fopen($file,"r") or die("ERROR NUMBER ONE");
$f_read=@fread($f_open, filesize($file)) or die("ERROR NUMBER TWO");

$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->addAttachment($file, 'image/gif');
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('[email protected]', $hdrs, $body);

@fclose($f_open);
?>
 

Mandark

Guest
dnes
та не, не расхлябанный - вот то что подзадолбался малость - это да
короче, как я выше уже писал, весь прикол в том что фрмирует отсылаемый файл-изображение данный класс PEAR - немного своеобразно.
Исходный файл (который отсылается) и конечный файл (который приходит) - побитно отличаются.
Причем если ради эксперимента скопировать из исходного файла и заменить в полученном файле - получится нормальный файл. В чем причина - пока так и не понимаю. Возможно подглючивает сам PEAR класс либо мои локальные настройки.

-~{}~ 21.06.05 16:36:

Я имел в виду если скопировать определенный кусок - тот которым они отличаются.
 

dnes

Новичок
Пробуй на другом сервере, но вот судя по этому:

$text = 'Text version of email';
$html = '<html><body>HTML version of email<img src="ratings.gif"></body></html>';

возможно, сегодня у тебя руки "подглючивают".
 

Mandark

Guest
dnes
спасибо за то что принял живое участие в обсуждении этой проблемы
проблема решена - весь трабл в моих локальных настройках
на других серверах работает нормально

но все же, остр ты брат, остр :)
 
Сверху