Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 973

/ вопрос открыт /

Здравствуйте, эксперты!
Может вопрос такой и поднимался, но я не смог его найти ... Задача банальная ... Отправка письма по email (CodeGear 2007) ...
SysLocale.PriLangID := LANG_UKRAINIAN;
IdMessage1.CharSet := 'Windows-1251';
IdMessage1.ContentType:= 'text/plain; charset=windows-1251';
IdMessage1.ContentTransferEncoding:='quoted-printable';
IdMessage1.Subject:='Тут тема письма'
IdMessage1.Recipients.EMailAddresses:='мыло@получателя';
IdMessage1.From.Address:='мыло@отправителя';
IdMessage1.Body.Add('Тело сообщения');

Всё хорошо ... всё уходит, кодировку понимает как в теме так и в сообщении ... Но стоит мне прикрепить файл
TIdAttachmentFile.Create(IdMessage1.MessageParts,ADOTableFindFile.Fields[1].AsString);
В письме получается куча мусора, а самого файла нет ... Если комментирую строку - "IdMessage1.ContentType:=...", то файл приходит нормально, но тело без кодировки :(
Чего я ещё недопонял в этом деле? Подскажите ...

Ice-Breaker Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ice-Breaker (статус: Посетитель)
Вопрос отправлен: 7 июля 2009, 09:21
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 16; последнее сообщение — 7 июля 2009, 12:23; участников в обсуждении: 4.
Ученый

Ученый (статус: 8-ой класс), 7 июля 2009, 09:40 [#1]:

вообще странно...должно быть все норм.....можно попробывать так: создать временный файл (допустим в тойже папке что и ехе), сохранить в него нужные данные, а потом этот файл забить в аттач и отправить, после отправки удалить...
хотя не совсем уверен что поможет, но думаю попробывать стоит.
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 09:54 [#2]:

Не совсем понял этот вариант ... Я то отправляю не текстовые фалы ... мне pdf отправлять надо ...
Ученый

Ученый (статус: 8-ой класс), 7 июля 2009, 09:56 [#3]:

ADOTableFindFile.Fields[1].AsString - это что за файл? из базы сразу отправляете?
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 09:58 [#4]:

нееее, там ссылка на файл ... ну типа
'E:\2009\07\02\BOF_Daily_Report_2009_07_02.pdf'
Ученый

Ученый (статус: 8-ой класс), 7 июля 2009, 10:02 [#5]:

хм.....попробуй напрямую ссылку вставить на файл: тоесть TIdAttachmentFile.Create(IdMessage1.MessageParts,'E:\2009\07\02\BOF_Daily_Report_2009_07_02.pdf'); если будет все норм то уже будет ясно где искать ошибку:)
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 10:04 [#6]:

пробывал ... тот же самый результат ... :(
Ученый

Ученый (статус: 8-ой класс), 7 июля 2009, 10:05 [#7]:

очень странно...значит не видит вообще файл? чем открывали письмо? Батом?
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 10:12 [#8]:

Открываю его потом Оутлуком
Да я так думаю что проблема в этой строке
IdMessage1.ContentType:= 'text/plain; charset=windows-1251';
Без неё то фал прикрепляется, а с ней, такое ощущение что его просто в тело письма вливают ...
вид письма становиться такой:

This is a multi-part message in MIME format

--57xnwCuHGlNhX7O=_rxV1i4FZ3tjAPEj3j
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

Тело сообщения

--57xnwCuHGlNhX7O=_rxV1i4FZ3tjAPEj3j
Content-Type: application/octet-stream;
name="BOF_Daily_Report_2009_07_01.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="BOF_Daily_Report_2009_07_01.pdf"

JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nO1dC7BdVXmWJOTe3AgEIaTEBweE8Vzs2Xe9H5lOLQkEgggBgpkhISUNEKHc
0ABakEcrxZFSsXaktWWwCtWKU8D6gKEWaqGljtYqQ6fjMNoqhQqS1g7OANpY6b/22WuvtfZZ5z/7
3HtD4wyTmZs96/zrX8//+/5/Pfbe3SEF7RD3r/p/x+zUzFm6s/OKqd1TipvC8g4XjBdWd2Z9gmCK
FkR0Lp3SlBWWikyKz3Tp1LumNnd2TZVldM46uXq4fCfop/3n6r8ds521m6Bw09EF14SYzqaLQJp2
eq5mmhRSirIyBQe9m2anup3pTZdABhtnYFANShjk2HTBVPeAA/oiiU5bECqI6ots6bLpHi2UZZp3
e+Uj5YyDbqbNeZtObeo38LumttK/aPGSAxcvncgUwnVBFZOV3LCaEuVrunRy2ZJJJ3XSpqkz4V/7
/qK0owrCddpfRhWcCtNhTBeWyLK/6s4I8qLgSjJeVWJNXyDRSJkslKrbO6jCFIRRoxsqeCTR48xA
b2iomSpo2XzX8QeUvQddbgh0Fu8unZhcMt3vcirjOopCk7qORaYAVSgoglYSy7buWl4JxWooLSSx
iBYGU5gI7efFaxcvd7XjzNrCyO7Wyw
..........................
ну и так далее в том же духе
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 11:10 [#9]:

Может у кого-нить есть ещё идеи???
Пупкин В В

Пупкин В В (статус: 2-ой класс), 7 июля 2009, 11:28 [#10]:

то есть вложение не возможно сохранить? или что
по виду вроде все нормально вложение в base64.
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 11:30 [#11]:

получается что его как вложения нет ... оно всё я так думаю в теле письма лежит текстом, ну и соответсвенно сохранить его нельзя ...
Пупкин В В

Пупкин В В (статус: 2-ой класс), 7 июля 2009, 11:35 [#12]:

ContentType multipart/mixed
Ice-Breaker

Ice-Breaker (статус: Посетитель), 7 июля 2009, 11:39 [#13]:

пробывал (IdMessage1.ContentType:= 'multipart/mixed; charset=windows-1251';).... файл приходит вложеным, всё вроде нормально ... но кодировка слетает ...
Вместо "Тело сообщения" приходит "рЕКН ЯННАЫЕМХЪ"

А если закомментировать отправку файла
TIdAttachmentFile.Create(IdMessage1.MessageParts,ADOTableNeOtpravleno.Fields[0].AsString);

то с кодировкой сразу всё нормально становиться ...
Вадим К

Вадим К (статус: Академик), 7 июля 2009, 12:03 [#14]:

Напишу ещё раз. Сколько не эксперементировал в "детстве" с инди - не умеют они корректно отправлять почту. А с вложениями вообще проблемы. Исследования кода показало, что там всё очень запущено... В свое время нашел synapse, мало того, что размером меньше, так ещё и работают лучше.
Галочка "подтверждения прочтения" - вселенское зло.
Ученый

Ученый (статус: 8-ой класс), 7 июля 2009, 12:12 [#15]:

to Вадим К. synapse конечно вещь хорошая, только мануалов на нее толковых днем с огнем не найти, особенно по отправке почты. я в свое время перечитал все что было написано на официальном сайте synapse, но так и не смог отправить писмо, хотя вроде делал все как там сказано:)
Пупкин В В

Пупкин В В (статус: 2-ой класс), 7 июля 2009, 12:23 [#16]:

иногда лучше один раз разобратся с инди
правильно ContentType:= 'multipart/mixed;...
а проблема с кодировкой стара как мир
смотрите в сторону IdMessage1InitializeISO

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.03 сек.