|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Приветствую сообщество кашистов! Столкнулась с такой проблемой. На веб-сайте нашего предприятия для лиц, желающих к нам попасть, выложен шаблон заявки на пропуск в формате MS Excel. Клиент скачивает шаблон, заполняет его и отправляет на робот файлом-вложением. На сервере в фоновом режиме работает программа, обрабатывающая почту и сохраняющая файлы-вложения в папке для последующей их обработки. С большинством почтовых сервисов всё замечательно отрабатывает, однако сообщения с mail.ru и ukr.net по какой-то причине не сохраняются. Вот в этом коде: set mailserver.StoreAttachToFile = 1 set mailserver.AttachDir = folder set status = mailserver.Fetch(i,.mailMsg,1)последняя команда нагло игнорируется в случае, если сообщение пришло с одного из этих сервисов. Может, кто-нибудь уже сталкивался с подобным? w $zv Cache for Windows (x86-32) 2008.1.1 (Build 578) Thu Jun 26 2008 16:38:28 EDT, если это имеет значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:17 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
А статус какой, сообщения об ошибках? Они там где-то есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:19 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
status = 1, то есть, сообщение обрабатывается без ошибок, но вложение не сохраняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:24 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
svetaportstatus = 1, то есть, сообщение обрабатывается без ошибок, но вложение не сохраняется. Может банально антивирус/антиспам так реагирует на mail.ru? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:30 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
imdbsvetaportstatus = 1, то есть, сообщение обрабатывается без ошибок, но вложение не сохраняется. Может банально антивирус/антиспам так реагирует на mail.ru? Уже пытала сисадминов, говорят, что ничего такого не установлено. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:43 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
svetaport, Само сообщение вообще приходит? Что в mailMsg? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 13:14 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
svetaport, Попробуйте посмотреть аттрибуты. If $F(mailMsg.Headers.GetAt("content-disposition"), "attachment") { Set fileName = mailMsg.FileName }Или If $F(mailMsg.Headers.GetAt("content-disposition"), "inline") { Set fileName = mailMsg.GetAttribute("content-disposition", "filename") }Или If mailMsg.ContentType = "application/octet-stream" { Set fileName = mailMsg.GetAttribute("content-type", "name") }Если mailMsg.IsMultiPart=1, то тоже самое проверить еще во всех его частях. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 13:35 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Petr0vi4444svetaport, Само сообщение вообще приходит? Что в mailMsg? Да, сообщение приходит, анализируются, переменные set subject = mailMsg.Subject set date = mailMsg.Date set messagesize = mailMsg.MessageSizeприсваиваются. Petr0vi4444svetaport, Попробуйте посмотреть аттрибуты. If $F(mailMsg.Headers.GetAt("content-disposition"), "attachment") { Set fileName = mailMsg.FileName }Или If $F(mailMsg.Headers.GetAt("content-disposition"), "inline") { Set fileName = mailMsg.GetAttribute("content-disposition", "filename") }Или If mailMsg.ContentType = "application/octet-stream" { Set fileName = mailMsg.GetAttribute("content-type", "name") }Если mailMsg.IsMultiPart=1, то тоже самое проверить еще во всех его частях.А вот fileName во всех трёх случаях почему-то пустое, даже если отправляю не с mail.ru. На mailMsg.IsMultiPart не проверяла - у меня всё в одной части. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 14:16 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Точнее, даже не пустое, а просто не попадает ни в одно из этих условий: If $F(mailMsg.Headers.GetAt("content-disposition"), "attachment") { Set fileName = mailMsg.FileName set ^POP3DSTATUS2(fcdate,fctime,"fileName1")=$g(fileName) } If $F(mailMsg.Headers.GetAt("content-disposition"), "inline") { Set fileName = mailMsg.GetAttribute("content-disposition", "filename") set ^POP3DSTATUS2(fcdate,fctime,"fileName2")=$g(fileName) } If mailMsg.ContentType = "application/octet-stream" { Set fileName = mailMsg.GetAttribute("content-type", "name") set ^POP3DSTATUS2(fcdate,fctime,"fileName3")=$g(fileName) }запись с fileName в ^POP3DSTATUS2 не создаётся ни в одном из случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 14:24 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
svetaportНа mailMsg.IsMultiPart не проверяла - у меня всё в одной части.Это вам так кажется. Как только вы добавите вложение, mail.ru сделает multipart. Данный факт легко проверить, приняв сообщение какой-нибудь почтовой программой: ThunderBird, TheBat!, etc. Все они позволяют увидеть исходник сообщения в "сыром" виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 14:30 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Alexey MaslovsvetaportНа mailMsg.IsMultiPart не проверяла - у меня всё в одной части.Это вам так кажется. Как только вы добавите вложение, mail.ru сделает multipart. Данный факт легко проверить, приняв сообщение какой-нибудь почтовой программой: ThunderBird, TheBat!, etc. Все они позволяют увидеть исходник сообщения в "сыром" виде. Точно, так и есть! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 14:58 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Значит, нужно сначала собрать всё в кучу, а потом сохранять вложение, правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 15:01 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
svetaport, Посмотрите какого типа вложение у вас и его обрабатывайте, если ничего не нашли предыдущим способом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 15:03 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Спасибо всем откликнувшимся. Поняла, куда копать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2014, 10:47 |
|
Не сохраняются вложения с mail.ru
|
|||
---|---|---|---|
#18+
Поэксперементировав, обнаружила вот что. Файл-вложение обычно находится во второй части. В случае с Mail.ru для части №2 сообщения part.ContentType = "application/x-excel". В случае, например, Gmail.com - part.ContentType = "application/vnd.ms-excel". Кроме того, имя файла в случае gmail.com и других почтовых сервисов определяется отсюда: Set fileName = part.FileName. Для Mail.ru part.FileName="", но зато Set fileName=part.GetAttribute("content-type", "name") определяет имя файла. Как я понимаю, проблема заключается в том, что метод Fetch не может определить имя файла и потому не сохраняет вложение. Как быть в этом случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2014, 19:42 |
|
|
start [/forum/topic.php?fid=39&fpage=21&tid=1556893]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 141ms |
0 / 0 |