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

Форум PHP

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

 

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

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

тема: Проблема с отправкой mime-письма
 
 автор: stalk3r   (03.02.2009 в 22:28)   письмо автору
 
 

Открываю сформированное письма с аттачем в Outlook - тело письма правильно, затем 10 закорючек (вместо аттача)
Вот сам исходник письма


To: main@mail.ru
Subject: sbj
MIME-Version: 1.0
From: dev <main@mail.ru>
X-Priority: 3
Content-Type: multipart/mixed; boundary="----=_NextPart_000_0008_01C98648.6090F610"
------=_NextPart_000_0008_01C98648.6090F610
Content-Type: text/html; charset="windows-1251"
Content-Transfer-Encoding: base64

PHA+9Pvi9PviPC9wPg==
------=_NextPart_000_0008_01C98648.6090F610
Content-Type: image/jpeg; name="img.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="img.jpg"

<картинка в base64>
------=_NextPart_000_0008_01C98648.6090F610--



Что не так?

  Ответить  
 
 автор: Trianon   (03.02.2009 в 22:34)   письмо автору
 
   для: stalk3r   (03.02.2009 в 22:28)
 

-
Простите, а что Вы хотите получить в ответ, если тело картинки осталось за кадром?

Отсутствующая пустая строка между заголовком и телом наводит на мысль, что кто-то чего-то недоговаривает.

  Ответить  
 
 автор: AcidTrash   (03.02.2009 в 22:39)   письмо автору
 
   для: Trianon   (03.02.2009 в 22:34)
 

С вашего позволения, адресую:
http://softtime.ru/scripts/mailattach.php

  Ответить  
 
 автор: Trianon   (03.02.2009 в 22:49)   письмо автору
 
   для: AcidTrash   (03.02.2009 в 22:39)
 

Да ради бога.

Как бы еще попросить господ администраторов, чтоб они в том тексте убрали пустые строки...
А то гребешок какой-то, а не скрипт.

  Ответить  
 
 автор: stalk3r   (03.02.2009 в 23:35)   письмо автору
 
   для: Trianon   (03.02.2009 в 22:49)
 

Простите, а что Вы хотите получить в ответ, если тело картинки осталось за кадром?

Простите, а Вам нужно увидеть 250 строк кода картинки в кодировке base64?
А начиналось там все так...

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2l uZyBJSkcg
SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHk K/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZ EhMP

Что-то изменилось?



Отсутствующая пустая строка между заголовком и телом наводит на мысль, что кто-то чего-то недоговаривает.

Вот тут
С вашего позволения, адресую:
http://softtime.ru/scripts/mailattach.php

Так и написано
$multipart .= $EOL; // раздел между заголовками и телом html-части





Да ради бога.
Как бы еще попросить господ администраторов, чтоб они в том тексте убрали пустые строки...
А то гребешок какой-то, а не скрипт.


Вобще не понял, это к чему?



Сам PHP тут не при чем, я не могу правильно сформировать письмо. Зная правильный формат, закодировать алгоритм его генерации - не проблема.

  Ответить  
 
 автор: Trianon   (03.02.2009 в 23:48)   письмо автору
 
   для: stalk3r   (03.02.2009 в 23:35)
 

>
Простите, а что Вы хотите получить в ответ, если тело картинки осталось за кадром?

>Простите, а Вам нужно увидеть 250 строк кода картинки в кодировке base64?
>А начиналось там все так...
>
>/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2l uZyBJSkcg
>SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHk K/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZ EhMP[/code]
>Что-то изменилось?

Слегка. Возникло сильное подозрение, что строк не 250, а одна, длиннющая. И на куски разумной длины (с учетом MIME) она не разбита.


>>Отсутствующая пустая строка между заголовком и телом наводит на мысль, что кто-то чего-то недоговаривает.
>Вот тут Так и написано
>$multipart .= $EOL; // раздел между заголовками и телом html-части[/code]

Я не о заголовке html-части. Я о заголовке всего письма в целом.
Он должен отделяться пустой строкой от массива частей.


>[code]
>Да ради бога.
>Как бы еще попросить господ администраторов, чтоб они в том тексте убрали пустые строки...
>А то гребешок какой-то, а не скрипт.
>Вобще не понял, это к чему?
Это не в Ваш адрес.

>Сам PHP тут не при чем, я не могу правильно сформировать письмо. Зная правильный формат, закодировать алгоритм его генерации - не проблема.

Вот поэтому я и подсказываю. Пока Вы не очень сильно хамите в ответ :)

  Ответить  
 
 автор: stalk3r   (04.02.2009 в 00:40)   письмо автору
 
   для: Trianon   (03.02.2009 в 23:48)
 

> Вот поэтому я и подсказываю. Пока Вы не очень сильно хамите в ответ :)
Прошу прощения, если что-то сказал слишком резко)

> Слегка. Возникло сильное подозрение, что строк не 250, а одна, длиннющая. И на куски разумной длины (с учетом MIME) она не разбита.
Я уже привел пример 2х строк (именно 2х, и дальше еще 248), файл разбивается chunk_split(base64_encode($content)), все по фен-шую)

У меня лично подозрение что почтовик игнорирует boundary, т.е. он расшифровывает тело письма из base64, дальше видит разделитель, его тоже декодирует в закорючки, а потом заголовки аттача и его основую часть просто игнорирует

  Ответить  
 
 автор: Trianon   (04.02.2009 в 00:43)   письмо автору
 
   для: stalk3r   (04.02.2009 в 00:40)
 

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

To: main@mail.ru
Subject: sbj
MIME-Version: 1.0
From: dev <main@mail.ru>
X-Priority: 3
Content-Type: multipart/mixed; boundary="----=_NextPart_000_0008_01C98648.6090F610"


------=_NextPart_000_0008_01C98648.6090F610
Content-Type: text/html; charset="windows-1251"
Content-Transfer-Encoding: base64

PHA+9Pvi9PviPC9wPg==
------=_NextPart_000_0008_01C98648.6090F610
Content-Type: image/jpeg; name="img.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="img.jpg"

<картинка в base64>
------=_NextPart_000_0008_01C98648.6090F610--

сравнивайте. Я даже две вставил на случай всякий.

  Ответить  
 
 автор: stalk3r   (04.02.2009 в 01:19)   письмо автору
 
   для: Trianon   (04.02.2009 в 00:43)
 

Спасибо вам большое, проблема действительно была в этом пробеле перед boundary
До этого все работало, но при модификации из кода кто-то удалил одну пустую строку, вот и пошло-поехало)

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

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