Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2012-01-19 06:44:15 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 19:45:36
карма: 0

0
Ответов: 85
Рейтинг: 0
#2: 2012-01-19 06:57:00 ЛС | профиль | цитата
Сорри, предыдущее сообщение моё, необычный форум.. пока разобрался как зарегистрироваться, ляпнул в топик ошибку.
Суть вопроса такова:
Пытаюсь отправить письмо и аттач в нём.
Аттач ищется с томощью компоненты - поиск фала, найденное значение(имя файла)выдаётся в поток, из потока в список, из списка аттачиться в компоненту smtp
В отправленном письме аттач выглядит в виде текста, а нужно отправлять в виде вложения(файла)
Вот так выглядит аттач

-HIASM_7209
Content-Type: application/octet-stream; name="last_rec.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="last_rec.txt"

0e/o8e7qIPTo6vHo7ePu4g0KDQoxMzoxMCAxOC4wNC4yMDEwDQoNCi0gZml4OiDn4O/w5fIg7eAg8e7n5ODt6OUg4u3l+O3l4+4g8eIt4uAg7eAg5PDz4+7l
IOLt5fjt5eUg8eIt4u4NCi0gdXBnOiDu8urw+/Lo5SDx8uDt5ODw8u3u6SDx7/Dg4uroIO3gIP3r5ezl7fIg7+4g4vvn7uLzIOru7ODt5PsgaGVscA0KDQow
OjUwIDE3LjA0LjIwMTANCg0KLSBmaXg6IOrw6PLo9+Xx6uD/IO746OHq4CDu8u7h8ODm5e3o/yDv7uTx6uDn6ugg6iDy7vfq5SDv7vHr5SDz5ODr5e3o/yDj
8PPv7/sg/evl7OXt8u7iICMxNDMNCg0KMTM6NTYgMTMuMDQuMjAxMA0KDQotIGFkZDog7vLx6+Xm6OLg7ejlIOLu5+zu5u3u8fLoIOLx8uDi6ugg/evl7OXt
8u7iIOjnIO/g6+jy8Psg4iDy5erz+ejpIPLo7yDq7u3y5ent5fDgDQoNCg==
--HIASM_7209--
Что нужно сделать чтобы нормально отправлялся файл?


карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2012-01-19 10:55:56 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 19:45:36
карма: 0

0
Ответов: 85
Рейтинг: 0
#4: 2012-01-20 13:51:55 ЛС | профиль | цитата
Нормально - это когда файл приходит в виде аттача(как файл), а не в виде набора символов-текста в теле письма.
Письмо уходит из программы на hiasm(см выше), принимается на почтовый ящик - принимаю почтовым клиентом the bat
Вот вы и посоветуйте, может быть что-то в самой программе не так?
карма: 0

0
Ответов: 273
Рейтинг: 29
#5: 2012-01-20 17:34:17 ЛС | профиль | цитата
а не в виде набора символов-текста в теле письма
Каких именно символов?
Содержимого вложенного текстового файла или же шестнадцатеричных кодов base64?
Если первое - это не глюк, а фича слишком умной почтовой программы.
Если второе - это несоответствие формату. Нужно отыскать что именно не соответствует. Если этот параметр будет относиться к компоненту - возможно компонент неисправен. Если так, выловленный глюк поможет определить неисправность и относительно быстро ее удалить.


Глюк где-то выше по тексту. Сообщение не соответствует формату.

Для отлова глюка сохраните принятое сообщение в файл, и откройте его блокнотом.
Внимательно изучите все поля - где-то ошибка.
Проверить, исправлена ли она, также легко - загрузите письмо в почтовую программу с диска, она покажет его так же, как и принятые из сети.
Исправляйте ошибки, пока программа не станет открывать письмо правильно.

У меня сообщение распознало ваш attach только после внесения его id в поле boundary. Больше никаких ошибок в приведенном фрагменте не было.
test.eml
Date: Sun, 10 May 2009 10:23:25 +0300
Subject: test
From: bot <mail@mail.ru>
To: mail@mail.ru
Content-Type: multipart/mixed; boundary=HIASM_7209

--HIASM_7209
Content-Type: application/octet-stream; name="last_rec.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="last_rec.txt"


0e/o8e7qIPTo6vHo7ePu4g0KDQoxMzoxMCAxOC4wNC4yMDEwDQoNCi0gZml4OiDn4O/w5fIg7eAg8e7n5ODt6OUg4u3l+O3l4+4g8eIt4uAg7eAg5PDz4+7l
IOLt5fjt5eUg8eIt4u4NCi0gdXBnOiDu8urw+/Lo5SDx8uDt5ODw8u3u6SDx7/Dg4uroIO3gIP3r5ezl7fIg7+4g4vvn7uLzIOru7ODt5PsgaGVscA0KDQow
OjUwIDE3LjA0LjIwMTANCg0KLSBmaXg6IOrw6PLo9+Xx6uD/IO746OHq4CDu8u7h8ODm5e3o/yDv7uTx6uDn6ugg6iDy7vfq5SDv7vHr5SDz5ODr5e3o/yDj
8PPv7/sg/evl7OXt8u7iICMxNDMNCg0KMTM6NTYgMTMuMDQuMjAxMA0KDQotIGFkZDog7vLx6+Xm6OLg7ejlIOLu5+zu5u3u8fLoIOLx8uDi6ugg/evl7OXt
8u7iIOjnIO/g6+jy8Psg4iDy5erz+ejpIPLo7yDq7u3y5ent5fDgDQoNCg==
--HIASM_7209--
И Thunderbird сразу же его расшифровал и вставил в тело письма
txt
Список фиксингов

13:10 18.04.2010

- fix: запрет на создание внешнего св-ва на другое внешнее св-во
- upg: открытие стандартной справки на элемент по вызову команды help

0:50 17.04.2010

- fix: критическая ошибка отображения подсказки к точке после удаления группы элементов #143

13:56 13.04.2010

- add: отслеживание возможности вставки элементов из палитры в текущий тип контейнера
Но если расширение в первом листинге заменить на rar, то предложит сохранить, без вставки содержимого текстового файла в тело письма.
карма: 0

0
Ответов: 85
Рейтинг: 0
#6: 2012-01-20 19:08:55 ЛС | профиль | цитата
Ошибка в моей схеме или нет, я не в курсе. Но если убрать из схемы компонент - поиск файла и кабель
Всё работает.
Вот схема работающая.
Но всё-таки мне надо искать файл в директории по расширению *.zip
Передавать его полное имя в поток и аттачить этот файл в письмо.


ВСЁ-таки отловил глюк(возможно)
Если присоеденить список с Темой письма в точку smtp клмпоненты
То письмо приходит в виде
Content-Type: application/octet-stream; name="last_rec.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="last_rec.txt"
А вложение в виде текста.

Если не присоединять, а Тему задавать в самих свойствах smtp
Письмо приходит нормальное
карма: 0

0
Ответов: 273
Рейтинг: 29
#7: 2012-01-20 19:26:27 ЛС | профиль | цитата
После хаба (на первой схеме), перед smtp, поставить DoData (вкладка инструменты) - тогда на вход smtp не пойдет строка с путем к файлу.
В списке строк хранить только массив имен файлов для аттача, а остальное (from/subj) только в Memory - возможно мешает то, что список строк содержит дополнительные управляющие символы, помимо самой строки (а в Memory их нет).
карма: 0

0
Ответов: 85
Рейтинг: 0
#8: 2012-01-20 20:13:11 ЛС | профиль | цитата
Немного не понял Если будет DODATA то вроде и хаб не нужен.
Не понял куда передавать из DO DATA данные для записи в поток?

карма: 0

0
Ответов: 273
Рейтинг: 29
#9: 2012-01-20 20:52:46 ЛС | профиль | цитата
Попробуй так.
Add(SMTP,9514139,378,308)
{
Point(Attach)
link(Subject,11402162:Value,[(405,296)(370,296)])
link(Body,11455520:Text,[])
link(Attach,11360052:Array,[(419,295)(468,295)])
}
Add(DoData,12702675,329,308)
{
link(onEventData,9514139:doSend,[])
}
Add(Hub,15999886,294,224)
{
link(onEvent1,11360052:doAdd,[])
link(onEvent2,12702675:doData,[(315,237)(315,314)])
}
Add(Memory,11402162,364,252)
{
}
Add(ListBox,11360052,448,224)
{
Left=445
Top=160
}
Add(ListBox,11455520,406,238)
{
Left=445
Top=160
}
карма: 0

0
Ответов: 85
Рейтинг: 0
#10: 2012-01-20 23:46:03 ЛС | профиль | цитата
Не работает, письмо вообще никуда не уходит.
Буду копать
Начну по одному отключать точки кроме attach может быть тогда пойму где ошибка
------------ Дoбавленo в 21.55:
Вот так работает
Спасибо за инфу

------------ Дoбавленo в 23.46:
последний вопрос,
как считать из ini файла адрес электронной почты куда отправлять письмо и грамотно передать его в smtp?

Делаю вот так

судя по всему компонент МТ поток не получает значение ключа из компонента ini
отправка почты не происходит
карма: 0

0
Ответов: 3889
Рейтинг: 362
#11: 2012-01-20 23:57:23 ЛС | профиль | цитата
bayan, выглядит как путаница в голове. Вы в курсе, что в хабе события происходят сверху-вниз, начиная с первого? Вы сначала шлёте, потом пытаетесь читать (опустим пока вопрос, оттуда ли вообще читаете).
карма: 1

0
Ответов: 85
Рейтинг: 0
#12: 2012-01-21 00:08:32 ЛС | профиль | цитата
Хорошо, я исключил хаб из схемы. Чтение вставил перед модуkем smtp
Но все равно не функционирует

карма: 0

0
Ответов: 9
Рейтинг: 1
#13: 2012-01-21 03:32:27 ЛС | профиль | цитата
bayan, секция в свойстве прописана так [mail] или так mail?
карма: 0

0
Ответов: 85
Рейтинг: 0
#14: 2012-01-21 10:29:59 ЛС | профиль | цитата
В ini секция прописана согласно всех стандартов те как [mail]
В свойствах ini компонента hiasm
Filename=settings.ini
Section=mail
Key=mailto
Type=string
карма: 0

0
Ответов: 8926
Рейтинг: 823
#15: 2012-01-21 10:48:34 ЛС | профиль | цитата
bayan, картинки -- наглядно, но схема гораздо информативнее
Информация.jpg
карма: 19

0
файлы: 1Информация.jpg [67.2KB] [432]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)