Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с приёмом почты   Найти похожие ветки 

 
All   (2003-10-24 15:13) [0]

Может кто разбирался с NMPOP3.
Трабла в следующем,
попадаются письма с вложенными именами файлов
типа
[size=9]
[color=blue]
------=_NextPart_000_0009_01C39A26.03F63E10
Content-Type: application/octet-stream;
name=";j=true;s=1024*768;d=32;rand=0.4849253973841222"
Content-Transfer-Encoding: base64
Content-Location: http://top.list.ru/counter?id=611528;js=13;r=http%3A//mail.ru/;j=true;s=1024*768;d=32;rand=0.4849253973841222
[/color]
[/size]

Прога вылетает при попытке получить письмо с таким вложением
(GetMailMessage(indexmail)) т.е. она не может записать аттачмент
[color=blue]
;j=true;s=1024*768;d=32;rand=0.4849253973841222
[/color]
на диск.

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

Как разрешается данная трабла, может кто сталкивался?


 
All   (2003-10-29 08:53) [1]

ап


 
blackman   (2003-10-29 14:22) [2]

А как ты обрабатываешь вложения ?


 
All   (2003-10-29 15:27) [3]

В том то и дело, что вложения сейвятся на диск при вызове GetMailMessage(). И при сейве например того что написано выше, прога вылетит, т.к. имя файла недопустимое.


 
blackman   (2003-10-30 10:41) [4]

Метод NMPOP3->GetMailMessage(...)
http://delphi-k17.narod.ru/articles.html
http://deeco.h1.ru/cgi-bin/file14.php?text=9
http://forum.woweb.ru/index.php?s=e1b989596ace904155201d7c7ed5b3d9&act=ST&f=41&t=1134&view=pid&pid=15205


 
All   (2003-10-30 15:44) [5]

Спасибо, не думал что кто нить поможет (где только не лазил), а тут опа!

Во второй ссылке нашлось упоминание о событии OnDecodeStart которое возникает тогда, происходит запись на диск присоединённого аттача и в обработчике этого события можно обозвать файл по своему. ОК!

Далее, файл аттача который был ;j=true;s=1024*768;d=32;rand=0.4849253973841222 я обозвал как myfile и он записался на диск. По F3 его открыл там первые три символа GIF, значит он имеет такой формат.

Если не сложно то немогли бы Вы сказать во всех ли файлах записанных таким образом, можно обнаружить их тип (расширение) и как поступать если расширение имеет 1 символ или 2?
Какой есть метод "установления" типа файла?


 
blackman   (2003-10-30 15:48) [6]

extractfilepath()
Почитай третье, там пример


 
All   (2003-10-30 16:15) [7]

extractfilepath()
Returns the drive and directory portions of a file name.

Зачем мне драйв и дира?
Нужно узнать расширение файла у которого оно явно не задано, т.е. имя файла myfile и всё.


 
blackman   (2003-10-30 16:49) [8]

Пример посмотрел ?
http://forum.woweb.ru/index.php?s=e1b989596ace904155201d7c7ed5b3d9&act=ST&f=41&t=1134&view=pid&pid=15205


 
All   (2003-10-30 16:58) [9]

Да, пример посмотрел, но там же не определяется расширение файла
Ведь у меня ситуация такова, что файл приходит без расширения и надо быть провидицем, что бы догадаться (посмотрев лиш на его имя), gif там или bmp.
ДЫК вот, вопрос то теперь весь в том, как определить расширение файла у которого оно явно не задано?


 
blackman   (2003-10-30 17:10) [10]

По структуре конечно можно, но это уже слишком хорошо.
А как же отсылают ? Обрезают расширение ? Бред какой-то.
Структуру посмотри здесь
http://www.interdoc.by.ru/ext_b.htm
http://www.interdoc.by.ru/ext_g.htm


 
Andersen   (2003-10-30 17:20) [11]

>А как же отсылают ? Обрезают расширение ? Бред какой-то.

Такой случай, беру захожу на mail.ru, жму кнопочку выделить всё,
открываю АутГлюк, создаю новую мессагу и туда вставляю, то что ранее скопировал и отправляю на сервак(сервак в локалке), смотрю что пришло своим клиентом и выжу там:

Content-Type: application/octet-stream;
name=";j=true;s=1024*768;d=32;rand=0.4849253973841222"
Content-Transfer-Encoding: base64
Content-Location: http://top.list.ru/counter?id=611528;js=13;r=http%3A//mail.ru/;j=true;s=1024*768;d=32;rand=0.4849253973841222

т.е. ;j=true;s=1024*768;d=32;rand=0.4849253973841222 из названия я конечно могу догадаться что это рисунок 1024*768 и что он высотой 32, а что дальше?


 
All   (2003-10-30 17:21) [12]

Пардон, Andersen это типа All
Ну да ладно, дык вот...


 
All   (2003-10-30 17:27) [13]

Посмотрел я эти расширения, что же мне базу чтоли под них делать?
Я вообщето имел введу, как нибудь API`шными функциями.
Неполучиться?


 
blackman   (2003-10-30 18:08) [14]

>Такой случай, беру захожу на mail.ru, жму кнопочку выделить всё
Выбирать надо, а не выделять. Посмотри текст HTML (просмотр html кода ) и оттуда адреса бери с нормальными расширениями.


 
All   (2003-10-31 08:57) [15]

>Выбирать надо, а не выделять.

:) Прогу то я не под себя пишу, и преднозначена она как вы уже догадались для закачки писем с использованием POP3, и чё там, мне нашлют уж увольте, я даже и предположить не могу.

> Посмотри текст HTML (просмотр html кода ) и оттуда адреса бери с нормальными расширениями.

Есть большой соблазн привести текст msg-файла с НТМЛ`ом письма и именнами аттачментов, но думаю админы не поймут.

Но кусочек всё ж таки приведу:

<SCRIPT language=3DJavaScript><!--
d.write("<img src=" http://top.list.ru/counter"+
"?id=3D611528;js="+js+a+";rand="+Math.random()+
"" height=1 width=1>")
if(js>11)d.write("<"+"!-- ")//--></SCRIPT>
<IMG height=1=20
=
src=" http://top.list.ru/counter?id=611528;js=13;r=http%3A//mail.r=
u/;j=true;s=1024*768;d=32;rand=0.4849253973841222"=20
width=1><!-- <noscript><img
src=" http://top.list.ru/counter?js=na;id=3D611528"
height=3D1 width=1 alt=""></noscript><script =
language="JavaScript">

Вот, смотрите внимательно на первую строчку с src=...

Сразу скажу что, этот файл присутствует в аттачментах письма, я его уже приводил раннее. Ну так как Вы с него выципите расширение, очень лЮбопытно!


 
blackman   (2003-10-31 09:16) [16]

counter = 1 x 1 , 88 x 31 = gif ! а остальные картинки (1024*768 и другие) как правил jpg если это из инета


 
All   (2003-10-31 09:40) [17]

>counter = 1 x 1 , 88 x 31 = gif !
чё то не очень понятно, можно по подробнее.

И вообщето, по идее в письме должна быть инфа, о том какое расширение у файла , ведь АутГлюк обрабатывает данное письмо без проблемс.


 
blackman   (2003-10-31 10:02) [18]

1 x 1 , 88 x 31 - размеры изображения


 
Andersen   (2003-10-31 10:05) [19]

Но это же не даёт 100% гарантии, что это GIF, может это и BMP или ещё что либо.


 
All   (2003-10-31 10:43) [20]

И вообще, это баг!


 
blackman   (2003-10-31 11:33) [21]

Полную гарантию даёт только страховой полис. :)
>И вообще, это баг!
Пересылать по почте неизвестно что то же баг :)


 
All   (2003-10-31 12:07) [22]

Да, я с Вами полностью согласен.
Думаю надо забить на всё на это, и вообще не принимать письма с неправильным именем файла, и что из этого само собой вытекает с неизвестными расширениями.
Если появятся к.л. предложения как расколбасить неправильное имя файла присутствующее в приведенном мной примере куска НТМ страницы из msg-файла и самого аттача из того же файла, то милости просим.
blackman большое спасибо за обсуждение!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.013 c
1-99606
kasetoff
2003-12-16 16:10
2003.12.30
Редактор тестов


14-99788
ИдиотЪ
2003-12-05 08:55
2003.12.30
резонанс


14-99714
RainKm
2003-12-09 10:47
2003.12.30
Com


14-99743
Сатир
2003-12-07 19:30
2003.12.30
Новый взгляд на курение


6-99675
Addead
2003-11-02 18:21
2003.12.30
послать письмо на почту от...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский