•  

ГлавнаяIndyЧастые вопросы по Indy → Как отправить файл на почту?

Создано: 24.05.2014 23:20:52 · Исправлено: 24.05.2014 23:20:52 · Прочтений: 979

Всем доброго времени! Не могу решить проблему облазил весь инет, вроде все должно работать!
Отправляю excel файл созданный программой на почту, пользуюсь indy.
вот код:
Att:=TIdAttachmentfile.Create(IdMessage1.MessageParts);
att.storedPathName:=c:\request90.3.xls;
att.FileName:=c:\request90.3.xls;

IdMessage1.Body.AddObject(Файл:,att);
IdMessage1.IsEncoded:=true;;
IdMessage1.Subject := Request;
IdMessage1.Body.Text := Its Test;
IdMessage1.ContentType := text/plaint;
IdMessage1.CharSet := windows-1251;

IdMessage1.Recipients.EMailAddresses := [email protected];
IdMessage1.From.Address := [email protected];
IdMessage1.From.Name := xxxxx;

IdSMTP1.Host := 192.168.0.1;
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect; 

Все отправляется без ошибок,письмо приходит но атачмент находится в письме! т.е не прикреплен к письму а в письме в виде текста! (все равно что excel блокнотом открыть)
уже что только не пробывал в итоге добился что атачмент есть но текстовый и содержит само письмо и текст атачмента! В Чем проблема????
Так вы сами файл в тело и запихиваете :)
IdMessage1.Body.AddObject(Файл:,att);
А если эту строку убрать?
Пробовал, результат тот же! как будто эта строчка вообще не на что не влияет!!!
После игр с бубном, теперь письмо приходит пустой с текстовым атачментом (хотя должен быть excel)в файле вот такое содержание
This is a multi-part message in MIME format

--1ohiFm6ib=_fHnDP24QpKMdzYP8ldy8TKh
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


Its Test

--1ohiFm6ib=_fHnDP24QpKMdzYP8ldy8TKh
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment


UEsDBBQABgAIAAAAIQCqUB8G
.........Очень много букв)))) сам ексел файл..................DQBkAwAAJSQAAAAA

--1ohiFm6ib=_fHnDP24QpKMdzYP8ldy8TKh--
может я вопрос задал не правильно!!
Очень срочно! Надеюсь на вашу помощь!!!
Мне нужно оправлять екселевский файл на почту! в данный момент файл отправляется, Но
приходит на почту не ексел файл а ATT00056.dat!!!
Я уже кучу вариантом перелопатил и все равно не получается, мне даже не
важен сам текст письма, главное что бы отправлялся файл!!!
smtp.Host:=192.168.0.1;
smtp.Connect;

idMessage1.ClearBody;
TidAttachmentFile.Create(IdMessage1.MessageParts, C:\request90.3.xls);
IdMessage1.Subject := test;
IdMessage1.Body.Add (huty);
TidText.Create(IdMessage1.MessageParts, idMessage1.Body);

IdMessage1.MessageParts.Items[0].ContentType := application/octet;
IdMessage1.MessageParts.Items[1].ContentType := text/html;

IdMessage1.ContentType := multipart/mixed;
IdMessage1.CharSet:= Windows-1251;

IdMessage1.From.Address := [email protected];
IdMessage1.Recipients.Add.Address := [email protected];

IdMessage1.Encoding:= meMIME;

SMTP.Send(IDmessage1);
SMTP.Disconnect;


Низкий поклон! надеюсь на вашу помощь!
Возможно я западала с ответом, но думаю что не у меня последней возникла эта проблема.
Причина, как оказалась в кодировке, если ее убрать то письма доходят нормально.

IdMessage1.CharSet:= Windows-1251;