Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прочитать собщение? Расшифровка вложения 
:(
    Опции темы
champion
Дата 27.1.2005, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Вот пишу я свой Web фейс для чтения почты, но такая фигня, когда мне приходит сообщение с вложением всё закодировано, вот содержание:
Цитата
------=_Part_2199_25443675.1106794699714
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Test

------=_Part_2199_25443675.1106794699714
Content-Type: image/gif; name="tile_cat.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="tile_cat.gif"

R0lGODlhawAeAMQAAPLy8/Hy8vX19vb39vr6+v7///j5+f39/Pj4+O/w8PPz9PDw8f39/vb39/z8
/Pf3+PT09fb29vr7+/v7/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAABrAB4AAAX/YCWOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj0hiYclsOp/QqHRK
rVqvS4p2y+16v+CweEwum8/otHrN5jLe8Lh8Tq/b7/i8fv8++P+AgYKDhIWGh4iJin4OjY6PkJGS
k5SVlpeYmY0TnJ2en6ChoqOkpaanqJwSq6ytrq+wsbKztLW2t6sEuru8vb6/wMHCw8TFxroGycrL
zM3Oz9DR0tPU1ckI2Nna29zd3t/g4eLj5NgP5+jp6uvs7e7v8PHy8+cN9vf4+fr7/P3+/wADCrQ3
oKDBgwgTKlzIsKHDhxAjFoxAsaLFixgzatzIsaPHjyApChhJsqTJkyhTb6pcybKly5cjIcicSbOm
zZs4c+rcybOnT5kKggodSrSo0aNIkypdyrRpUABQo0qdSrWq1atYs2rdyhVqgK9gw4odS7as2bNo
06pd+3WB27dw48qdS7eu3bt48+p1m6Cv37+AAwseTLiw4cOIE/cNAQA7
------=_Part_2199_25443675.1106794699714--

1. Как мне его расшифровать
2. Как вывести в конце сообщения его название, и когда на него кликают чтобы октрывался сам файл?


--------------------
user posted image
PM MAIL   Вверх
Vaulter
Дата 27.1.2005, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



champion
читай rfc


--------------------
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 28.1.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Вложение можно расшифровать с помощью функции
Код

$source = base64decode($text);



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
champion
Дата 29.1.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Расширвоать то могу а вывсети? Плз приведите пример, а то никак понять немогу


--------------------
user posted image
PM MAIL   Вверх
Opik
Дата 30.1.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Надо ещё отсылать заголовок:
Код
Header("Content-Type: image/gif; name=\"tile_cat.gif\"");

PM MAIL Skype   Вверх
champion
Дата 29.3.2005, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Все делаю как говорите, но не помогает =(
Код

<?
$m="-----=_Part_2199_25443675.1106794699714
Content-Type: image/gif; name=\"tile_cat.gif\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"tile_cat.gif\"

R0lGODlhawAeAMQAAPLy8/Hy8vX19vb39vr6+v7///j5+f39/Pj4+O/w8PPz9PDw8f39/vb39/z8
/Pf3+PT09fb29vr7+/v7/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAABrAB4AAAX/YCWOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj0hiYclsOp/QqHRK
rVqvS4p2y+16v+CweEwum8/otHrN5jLe8Lh8Tq/b7/i8fv8++P+AgYKDhIWGh4iJin4OjY6PkJGS
k5SVlpeYmY0TnJ2en6ChoqOkpaanqJwSq6ytrq+wsbKztLW2t6sEuru8vb6/wMHCw8TFxroGycrL
zM3Oz9DR0tPU1ckI2Nna29zd3t/g4eLj5NgP5+jp6uvs7e7v8PHy8+cN9vf4+fr7/P3+/wADCrQ3
oKDBgwgTKlzIsKHDhxAjFoxAsaLFixgzatzIsaPHjyApChhJsqTJkyhTb6pcybKly5cjIcicSbOm
zZs4c+rcybOnT5kKggodSrSo0aNIkypdyrRpUABQo0qdSrWq1atYs2rdyhVqgK9gw4odS7as2bNo
06pd+3WB27dw48qdS7eu3bt48+p1m6Cv37+AAwseTLiw4cOIE/cNAQA7
------=_Part_2199_25443675.1106794699714--";
preg_match("'Content-Type:.*?\".*?\"'si",$m,$match);
preg_match("'Content-Disposition.*?\".*?\"'si",$m,$s);
//print_r($match);
header($match[0]);
header($s[0]);
$m=base64_decode($m);
header($m);
echo base64_decode($m);
?>



--------------------
user posted image
PM MAIL   Вверх
IZ@TOP
Дата 29.3.2005, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



champion, только вот вырезать нужно то что между
Цитата
Content-Disposition: attachment; filename=\"tile_cat.gif\"

и
Цитата
------=_Part_2199_25443675.1106794699714--


Код

preg_match("%Content-Disposition:[^\s]\s(.*)------=_Part%si", $m, $Match);



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Alx
Дата 29.3.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



и все заголовки лучше прописывать ждва раз - перед msg и после него


--------------------
PM MAIL WWW ICQ   Вверх
champion
Дата 31.3.2005, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Код

<?
ini_set('error_reporting',E_ALL);
include("inc/config.inc.php");
$read=$_GET['id'];
$login=$_COOKIE['login'];
$login="".$prefix."".$_COOKIE['login']."";
$imap=imap_open("{".$pop_domain."/pop3:110}INBOX",$login,$_COOKIE['password']) or die ("<font face=verdana size=1 color=red><b><center>Невозможно соединиться с сервером</center></b></font></td></tr><tr><td><img src=images/bottom.gif></td></tr></table></body>");
$body=imap_body($imap,$read);
$body=imap_base64($body);
preg_match("'Content-Disposition:.*?--------------'si", $body, $match);
header($match[1]);
echo $match[0];
echo base64_decode($match[0]);
preg_match_all("/--------------(.*)--------------/s", $body, $tmp);
var_dump($tmp);
$count =  sizeof($tmp); // Кол во типов
preg_match_all("/Content-Type: (.*?);/U", $tmp[1], $match); // ищем тип
header("Content-Type: ".$match[1][1]);// надо отдавать заголовок
echo base64_decode($tmp[1]); // тут надо отдавать содержимое
var_dump($match);
echo base64_decode($body);
?>

Мне помогли сделать код для расшиврофки вложения, но за место вложения выводится
array(2) { [0]=> array(0) { } [1]=> array(0) { } } array(0) { }
Как сделать чтобы я его увидел? Где ошибка?


--------------------
user posted image
PM MAIL   Вверх
IZ@TOP
Дата 31.3.2005, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Код

$m="-----=_Part_2199_25443675.1106794699714
Content-Type: image/gif; name=\"tile_cat.gif\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"tile_cat.gif\"

R0lGODlhawAeAMQAAPLy8/Hy8vX19vb39vr6+v7///j5+f39/Pj4+O/w8PPz9PDw8f39/vb39/z8
/Pf3+PT09fb29vr7+/v7/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAABrAB4AAAX/YCWOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj0hiYclsOp/QqHRK
rVqvS4p2y+16v+CweEwum8/otHrN5jLe8Lh8Tq/b7/i8fv8++P+AgYKDhIWGh4iJin4OjY6PkJGS
k5SVlpeYmY0TnJ2en6ChoqOkpaanqJwSq6ytrq+wsbKztLW2t6sEuru8vb6/wMHCw8TFxroGycrL
zM3Oz9DR0tPU1ckI2Nna29zd3t/g4eLj5NgP5+jp6uvs7e7v8PHy8+cN9vf4+fr7/P3+/wADCrQ3
oKDBgwgTKlzIsKHDhxAjFoxAsaLFixgzatzIsaPHjyApChhJsqTJkyhTb6pcybKly5cjIcicSbOm
zZs4c+rcybOnT5kKggodSrSo0aNIkypdyrRpUABQo0qdSrWq1atYs2rdyhVqgK9gw4odS7as2bNo
06pd+3WB27dw48qdS7eu3bt48+p1m6Cv37+AAwseTLiw4cOIE/cNAQA7
------=_Part_2199_25443675.1106794699714--";
preg_match("%[\s]{4}(.*)[\s]%si", $m, $Match);
header('Content-Type: image/gif');
echo base64_decode($Match[1]);

Рабочий вариант. Сам проверял.
Добавлено @ 08:04
А выбрать зоголовки можно следующим образом:

Код

preg_match_all("%([a-z]*-[a-z]*): ([^\s]*)%i", $m, $Matches);
Получится примерно следующего вида массив:

Код

Array
(
    [0] => Array
        (
            [0] => Content-Type: image/gif;
            [1] => Transfer-Encoding: base64
            [2] => Content-Disposition: attachment;
        )

    [1] => Array
        (
            [0] => Content-Type
            [1] => Transfer-Encoding
            [2] => Content-Disposition
        )

    [2] => Array
        (
            [0] => image/gif;
            [1] => base64
            [2] => attachment;
        )

)



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
champion
Дата 31.3.2005, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



ВОт я составил код:
Код

<?
ini_set('error_reporting',E_ALL);
error_reporting(E_ALL);
 $mailbox="{pop3.spaceweb.ru/pop3:110}INBOX";
 $domain="elabuga-city.ru";
 $pop_domain="pop3.spaceweb.ru";
 $langs="ru";
 $template="default";
 $title="webrik-mail";
 $prefix="elabuga-city.ru+";
$read=$_GET['id'];
//$login=$_COOKIE['login'];
//$login="".$prefix."".$_COOKIE['login']."";
$login="elabuga-city.ru+test";
$password="test";
$imap=imap_open("{".$pop_domain."/pop3:110}INBOX",$login,$password) or die ("<font face=verdana size=1 color=red><b><center>?хтючьюцэю ёюхфшэшЄ№ё  ё ёхЁтхЁюь</center></b></font></td></tr><tr><td><img src=images/bottom.gif></td></tr></table></body>");
$m=imap_body($imap,$read);
preg_match("%[\s]{4}(.*)[\s]%si", $m, $Match);
preg_match("'Content-type.*?;'si",$m,$type);
header($type[0]);
echo base64_decode($Match[1]);
?>

Зачемто не пашет =( Подскажите плз



--------------------
user posted image
PM MAIL   Вверх
IZ@TOP
Дата 31.3.2005, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



champion, конечно не пашет!

Код

header("Content-Type: {$type[0]}");



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
champion
Дата 31.3.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Плз., попробуйте сами, у меня не работает =(
Код

<?
ini_set('error_reporting',E_ALL);
error_reporting(E_ALL);
$read=$_GET['id'];
//$login=$_COOKIE['login'];
//$login="".$prefix."".$_COOKIE['login']."";
$login="elabuga-city.ru+test";
$password="test";
 $mailbox="{pop3.spaceweb.ru/pop3:110}INBOX";
 $domain="elabuga-city.ru";
 $pop_domain="pop3.spaceweb.ru";
 $langs="ru";
 $template="default";
 $title="webrik-mail";
 $prefix="elabuga-city.ru+";
$imap=imap_open("{".$pop_domain."/pop3:110}INBOX",$login,$password) or die ("<font face=verdana size=1 color=red><b><center>Невозможно соединиться с сервером</center></b></font></td></tr><tr><td><img src=images/bottom.gif></td></tr></table></body>");
$m=imap_body($imap,$read);
preg_match("%[\s]{4}(.*?)[\s]%si", $m, $Match);
//echo nl2br(print_r($Match));
preg_match("'Content-type.*?;'si",$m,$type);
header("Content-Type: ".$type[0]."");
echo base64_decode($Match[1]);
?>




--------------------
user posted image
PM MAIL   Вверх
champion
Дата 1.4.2005, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Я тут подправил, все бы хорошо, но вложения так и нет, хотя заголовок правильный =(
Код

<?
include("inc/config.inc.php");
if (isset($_GET['id'])) {$read=$_GET['id'];
//$login=$_COOKIE['login'];
//$login="".$prefix."".$_COOKIE['login']."";
$login="elabuga-city.ru+test";
$password="test";
$imap=imap_open("{".$pop_domain."/pop3:110}INBOX",$login,$password) or die ("<font face=verdana size=1 color=red><b><center>?хтючьюцэю ёюхфшэшЄ№ё  ё ёхЁтхЁюь</center></b></font></td></tr><tr><td><img src=images/bottom.gif></td></tr></table></body>");
$m=imap_body($imap,$read);
$m=ereg_replace("This is a multi-part message in MIME format.","",$m);
$m=ereg_replace("\n","",$m);
preg_match("%[\s]{4}(.*)[\s]%si", $m, $Match);
preg_match("'Content-type.*?;'siU",$Match[0],$type);
header($type[0]);
echo base64_decode($Match[1]); 
}
?>



Это сообщение отредактировал(а) champion - 1.4.2005, 04:30


--------------------
user posted image
PM MAIL   Вверх
champion
Дата 1.4.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



У меня почти все работает! Только не выводится само вложение!
Код

<?
$mailbox="{pop3.spaceweb.ru/pop3:110}INBOX";
 $domain="elabuga-city.ru";
 $pop_domain="pop3.spaceweb.ru";
 $langs="ru";
 $template="default";
 $title="webrik-mail";
 $prefix="elabuga-city.ru+";
$read=$_GET['id'];
$login="elabuga-city.ru+test";
$password="test";
$pop_domain="pop.elabuga-city.ru";
$imap=imap_open("{".$pop_domain."/pop3:110}INBOX",$login,$password) or die ("<font face=verdana size=1 color=red><b><center>?????????? ??????????? ? ????????</center></b></font></td></tr><tr><td><img src=images/bottom.gif></td></tr></table></body>");
$m=imap_body($imap,$read);
preg_match("'[\s]{4}(.*)[\s]'si", $m, $Match);
preg_match("'Content-type.*?\".*?\"'si",$Match[0],$type);
//print_r($type);
preg_match("'Content-Disposition.*?\".*?\"'si",$Match[0],$typ);
header($type[0]);
header($typ[0]);
$Match[0]=preg_replace("'Content.*?\"'siU","",$Match[0]);
preg_match("%[\s]{4}(.*)[\s]%si", $Match[0], $M);
echo base64_decode($M[1]);
?>

Заголовки, все замечательно, а вложение не видать


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1410 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.