Проблема с отправкой аттачей - PEAR :: Mail_Mime

virakochi

Устал
Проблема с отправкой аттачей - PEAR :: Mail_Mime

Впервые работаю именно с этим классом и никак не могу справиться с такой проблемой.

PHP:
$crlf = "\n";
$headers = array(
		'From'		=> 'blabla <[email protected]>',
		'Bcc'		=> 'balbal <[email protected]>',
		'Subject'	=> 'test subj',
	);
	
	$mime = new Mail_mime($crlf);
	
	$text = 'test';
	$mime->setTXTBody($text);
	$mime->addAttachment(TEMP_DIR . ZIP_FILE, 'application/zip');
		
	$body = $mime->get();
	$hdrs = $mime->headers($headers);
	$mail =& Mail::factory('mail');
	
	$mail->send($email_address, $hdrs, $body);
Некоторые клиенты принимают нормальное письмо, а некоторые выдают напрямую все тело с заголовками..
Поиск решения не дал.
 

virakochi

Устал
Я же не говорил, что проблема в subject, или что я отсылаю тему письма в windows-1251. У меня iso-8859-1.
С письмами без аттачей проблем нету.
 

virakochi

Устал
Хм.. может я чего не понял..
Получилось через одно место:

PHP:
$mime_part = & new Mail_mimePart('');
	$params = array(
		'content_type'	=> 'plain/text',
		'encoding'		=> '7bit',
		'charset'		=>  'iso-8859-1',
	);
	
	$mime_part->addSubPart($text, $params);
	$params = array(
		'content_type'	=> 'application/zip',
		'encoding'		=> 'base64',
		'disposition'	=> 'attachment',
	);
	$mime_part->addSubPart(file_get_contents(TEMP_DIR . ZIP_FILE), $params);
	
	$body = $mime_part->encode();
Плюс Content-Typr => multipart/mixed

Я конечно все понимаю, но не должен ли все это делать сам класс? Или я что-то пропустил в первом варианте?

-~{}~ 10.02.05 18:35:

Хм.. Теперь ситуация с клиентами обратная.. Ничего не пойму..

-~{}~ 10.02.05 18:41:

Теперь ясно. То есть не совсем.
PHP:
    $mail =& Mail::factory('smtp');
-~{}~ 10.02.05 19:12:

Очень прошу знающих сказать, в чем все же была проблема... А то нехорошо как-то..
 

Huckster

Guest
Зачем это всЁ! Сами аттач отправляйте, ради этого с ПЕАРом заморачиваться не стоит... Куча лишних не байтов, а КБайтов...
 

зверек

Новичок
угу, а если пров навязывает использование PEAR :: Mail_Mime?
Просто никак по другому отправить почту нельзя. "небезопасно" - ответ прова :(((
 

virakochi

Устал
Вобщем, тут проблема была не в использовнии PEAR :: Mail, а в криво настроенном qmail на сервере..
 

зверек

Новичок
вот кусок переписки с хостером:

> Почему не работает у вас зауряднейшая ф-ция mail() ??? Которая еще с php3
> идет? Какие проблемы, я не понимаю? Почему она ВЕЗДЕ работает? На любых
> серверах, а у вас нет?

потому что функция mail не работает при отсутствии sendmail на сервере.
А функционирование sendmail на сервере с хостингом мы не предоставляли и не предоставляем.
 

virakochi

Устал
зверек
И почему это вдруг означает, что хостер навязал тебе PEAR :: Mail_Mime?????

А вообще-то тему закрыть надо, проблема решена.
 

зверек

Новичок
потому что на последующий вопрос : "как же письма отправлять?" был предложен PEAR :: Mail_Mime.
а есть еще альтернативы? я чайник, могу и не знать.
 

virakochi

Устал
зверек
А ты почитай, как умеет отправлять письма PEAR :: Mail...
И все станет на свои места
 

Frol

Новичок
зверек
у меня один вопрос.
как ты с помощью Mail_Mime _отправишь_ письмо?
 

virakochi

Устал
зверек
Скажи честно, ты хоть раз отправлял письмо с помощью Mail_Mime?
 

зверек

Новичок
хм...чувствую момент истины для меня настал :))))

я пишу:

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

и дальше

$hdrs = array(
'To' => $_REQUEST["mailto"],
'From' => ....,
'Subject' =>.... );

$mime = new Mail_mime($crlf);

$mime->setHTMLBody($message);

ну и так далее.

ЭТО разве не то, о чем речь собственно?
 
Сверху