|
Вопрос # 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 (статус: Посетитель)
Вопрос отправлен: 7 июля 2009, 09:21
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 16; последнее сообщение — 7 июля 2009, 12:23; участников в обсуждении: 4.
|
Ученый (статус: 8-ой класс), 7 июля 2009, 09:40 [#1]:
вообще странно...должно быть все норм.....можно попробывать так: создать временный файл (допустим в тойже папке что и ехе), сохранить в него нужные данные, а потом этот файл забить в аттач и отправить, после отправки удалить...
хотя не совсем уверен что поможет, но думаю попробывать стоит.
|
|
Ice-Breaker (статус: Посетитель), 7 июля 2009, 09:54 [#2]:
Не совсем понял этот вариант ... Я то отправляю не текстовые фалы ... мне pdf отправлять надо ...
|
|
Ученый (статус: 8-ой класс), 7 июля 2009, 09:56 [#3]:
ADOTableFindFile.Fields[1].AsString - это что за файл? из базы сразу отправляете?
|
|
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 (статус: Посетитель), 7 июля 2009, 10:04 [#6]:
пробывал ... тот же самый результат ...
|
|
Ученый (статус: 8-ой класс), 7 июля 2009, 10:05 [#7]:
очень странно...значит не видит вообще файл? чем открывали письмо? Батом?
|
|
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 (статус: Посетитель), 7 июля 2009, 11:10 [#9]:
Может у кого-нить есть ещё идеи???
|
|
Пупкин В В (статус: 2-ой класс), 7 июля 2009, 11:28 [#10]:
то есть вложение не возможно сохранить? или что
по виду вроде все нормально вложение в base64.
|
|
Ice-Breaker (статус: Посетитель), 7 июля 2009, 11:30 [#11]:
получается что его как вложения нет ... оно всё я так думаю в теле письма лежит текстом, ну и соответсвенно сохранить его нельзя ...
|
|
Пупкин В В (статус: 2-ой класс), 7 июля 2009, 11:35 [#12]:
ContentType multipart/mixed
|
|
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
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|