проблема с \n\r при отправке писмо с аттачментами

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
termes
Сообщения: 5
Зарегистрирован: 17 янв 2009, 15:24

хочу отпрваить письмо

$boundary="SMasdml9877asds5s5s4f454645irov";
$headers = "From: asd@asd.ru\r\n";
$headers .= "Reply-To: asd@asd.ru\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$headers .= "--$boundary\r\n";
$headers .= "Content-Type: text/plain; charset=\"windows-1251\"\r\n\r\n";//после этой строки должна бить пустая строка

$headers .= "Текст Текст Текст Текст Текст Текст Текст Текст Текст \r\n\r\n";
$headers .= "--$boundary\r\n";
$headers .= "Content-Type: application/octet-stream; name=\"webmoney.jpg\"\r\n";
$headers .= "Content-Transfer-encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"webmoney.jpg\"\r\n\r\n";

$headers .= "$code_file\r\n";
$headers .= "--$boundary--";

imap_mail("akmal@scc.uz", "bu tema", "", $headers) ;

НО где есть \n\r\n\r не ставиться пустых строк! Подумал что может я что та не правилно делаю и $headers пробовал записать на отдельный файл:

$file_name="temp.txt";
$fopen=fopen($file_name, "r+");
fwrite($fopen, $headers);
fclose($fopen);

получился то что надо :

From: akmal@scc.uz
Reply-To: akmal@scc.uz
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="SMasdml9877asds5s5s4f454645irov"

--SMmailAkmal9877asds5s5s4f454645Kadirov
Content-Type: text/plain; charset="windows-1251"

Текст Текст Текст Текст Текст Текст Текст Текст Текст

-----------
как видете есть пустые строки - то что надо.

тот же самый $headers отправляю как imap_mail("akmal@scc.uz", "bu tema", "", $headers) ;
получается без пустых строк:

From: akmal@scc.uz
Reply-To: akmal@scc.uz
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="SMasdml9877asds5s5s4f454645irov"
--SMmailAkmal9877asds5s5s4f454645Kadirov
Content-Type: text/plain; charset="windows-1251"
Текст Текст Текст Текст Текст Текст Текст Текст Текст
------------
а почтовые клиенты невидять без пустых строк



даже на блокноте открываю пршедшое письмо там нет пустых строк. Сам их на блокноте делаю пустые строки и все работает! Может это от сервера? Я использую денвер. А smtp сервер хорошо работает потому что я када письма отправляю с оутлока писма получаются с пустыми строками.

Помогите пожалюста
ivan!
Сообщения: 9
Зарегистрирован: 16 июл 2009, 20:58
Откуда: St. Petersburg
Контактная информация:

Насколько я знаю, чтобы вставить пустую строку, нужно писать \r\n
А ещё, насколько я знаю, Unix воспринимает только \n, Windows только \r\n, а Mac - только \r
Попробуйте \n
Возможно, и даже не возможно, а скорее всего на smtp-сервере стоит Unix!!
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

На крайняк можно написать
fwrite($fopen, $headers1);
fwrite($fopen, '');
fwrite($fopen, $headers2);
[syntax=Delphi] [/syntax]
termes
Сообщения: 5
Зарегистрирован: 17 янв 2009, 15:24

Duncon писал(а):На крайняк можно написать
fwrite($fopen, $headers1);
fwrite($fopen, '');
fwrite($fopen, $headers2);
да нет када пишу на файл он пишет нормально, вот када отправляю через mail() или imap_mail() получается неправильно
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Только сей час обратил внимание это заголовки..
Ппс люди go описание функции mail читать.
[syntax=Delphi] [/syntax]
Ответить