Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

INDY attach   Найти похожие ветки 

 
zdm ©   (2006-11-22 11:40) [0]

Дайте пожалуйста пример прикрепления файла к письму.


 
zdm ©   (2006-11-22 11:56) [1]

ведь не сложно же, просто встрял и не могу растормозиться, ну помогите же!!!! есть IdSMTP,IdMessage -просто письмо отрправляется без проблем, а для присоединения файла нужен constructor, в инете все ссылки на одну и ту же статью, не могу самостоятельно разобраться, может есть у кого готовый unit , приведите пример, пожалуйста!


 
zdm ©   (2006-11-22 12:51) [2]

АУ


 
Орион ©   (2006-11-22 13:19) [3]

в ответ эхо: "у... у..."


 
easy ©   (2006-11-22 13:19) [4]

*:\Program Files\Borland\Delphi\Demos\Indy\MailClient\MailDemo.dpr


 
Megabyte ©   (2006-11-22 14:29) [5]

msg : TIdMessage;
file : TIdMessagePart;
file := TIdAttachment.Create(msg.MessageParts, путь до attachfile);


 
zdm ©   (2006-11-22 14:34) [6]

блин, диска нету, а демки не ставил, скиньте текст юнита


 
zdm ©   (2006-11-22 14:39) [7]


> Megabyte ©   (22.11.06 14:29) [5]

Так и делал. Я правильно понял?
procedure TForm_Osn.Button1Click(Sender: TObject);
var
msg : TIdMessage;
file_for_attach : TIdMessagePart;

begin
 IdSMTP1.Connect;
 file_for_attach := TIdAttachment.Create(msg.MessageParts, "c:\1\1.zip");
выдает ошибку что кол-во пар-ров превышено, т.е.  "c:\1\1.zip" лишний... Я туплю и понимаю это ну помогите разобраться.


 
Anatoly Podgoretsky ©   (2006-11-22 14:50) [8]

> zdm  (22.11.2006 14:39:07)  [7]

F1 + TIdAttachment.Create


 
zdm ©   (2006-11-22 14:57) [9]

Хорошо, мне стыдно, но не занимался я ни когда constractor-ами, пожалуйста, распишите где, что и в каких секцияц надо прописать.
constructor Create(Collection: TIdMessageParts; const AFileName: TFileName = ""); reintroduce;


 
Anatoly Podgoretsky ©   (2006-11-22 15:02) [10]

> zdm  (22.11.2006 14:57:09)  [9]

Сначала справка, потом что непонятно в ней, потом что не выходит в коде.
Это как я понимают из справки по конструктору
Тогда первый параметр существующая коллекция, второй имя файла


 
zdm ©   (2006-11-22 15:08) [11]


> Anatoly Podgoretsky ©

Ты всё как всегда правильно понимаешь. Нету сейчас под рукой книги, ведь задачка то элементарная, кинуть пару компонент-присоеденить файл-и кинуть сюда текст юнита, чего разглагольствовать то? Ну туплю, а надо решить задачку побыстрей.


 
Anatoly Podgoretsky ©   (2006-11-22 15:19) [12]

> zdm  (22.11.2006 15:08:11)  [11]

Ну правильно говоришь, задача элементарная, тебе даже код привели.
А вот в чем тупишь, вот это и надо объяснять, да так что бы другим было понятно.


 
zdm ©   (2006-11-22 15:24) [13]


> Anatoly Podgoretsky ©   (22.11.06 15:19) [12]

Что и в каких секциях прописать!!!


 
zdm ©   (2006-11-22 15:27) [14]

ну не создавал я кострукторов!!!!


 
Anatoly Podgoretsky ©   (2006-11-22 15:28) [15]

> zdm  (22.11.2006 15:24:13)  [13]

О каких секциях идет речь.
Кроме того я сумел забыть почти все что знал про Инди где то за неделю.
Я его не использую ни в каком виде, альтернатив хватает.


 
zdm ©   (2006-11-22 15:30) [16]


> Anatoly Podgoretsky ©   (22.11.06 15:28) [15]

Какие?


 
Anatoly Podgoretsky ©   (2006-11-22 15:30) [17]

> zdm  (22.11.2006 15:27:14)  [14]

А их и не надо создавать, все уже создано до нас. Просто используй существующее.


 
Anatoly Podgoretsky ©   (2006-11-22 15:33) [18]

> zdm  (22.11.2006 15:30:16)  [16]

Сходи на торри, там этого добра уйма, от гигантских наборов, до узкоспециализированых, только отсылка почти и больше ничего. Можно посмотреть в сторону Синапс, тоже что и Инди, только не монстр.


 
zdm ©   (2006-11-22 15:33) [19]


> Anatoly Podgoretsky ©   (22.11.06 15:30) [17]

Какие?!?!?!? Анатолий, ну ответь хоть раз конкертно!


 
zdm ©   (2006-11-22 15:34) [20]

ок, у меня форум подтормаживает всегда, поэтому не одекватные ответы могут показаться, сейчас поищу


 
zdm ©   (2006-11-22 15:37) [21]


> > Anatoly Podgoretsky ©

если не трудно, кинь ссылки.


 
Anatoly Podgoretsky ©   (2006-11-22 15:44) [22]

> zdm  (22.11.2006 15:33:19)  [19]

Хорошо, конкретно - я использую ICS


 
Megabyte ©   (2006-11-22 15:44) [23]


> zdm ©  (22.11.06 14:57) [9]

Хорошо, мне стыдно, но не занимался я ни когда constractor-ами, пожалуйста, распишите где, что и в каких секцияц надо прописать.
constructor Create(Collection: TIdMessageParts; const AFileName: TFileName = ""); reintroduce;

Какие еще конструкторы, кроме стандартного? Не гони.

msg : TIdMessage;
file : TIdMessagePart;
msg := TIdMessage.Create(nil); Не забыл?
file := TIdAttachment.Create(msg.MessageParts, путь до attachfile);


 
Anatoly Podgoretsky ©   (2006-11-22 15:44) [24]

> zdm  (22.11.2006 15:37:21)  [21]

Сколько раз говорил, ссылки не храню, зачем? Есть же поисковые системы.


 
zdm ©   (2006-11-22 15:49) [25]


> Anatoly Podgoretsky ©   (22.11.06 15:44) [22]

ок, посмотрю


> Megabyte ©   (22.11.06 15:44) [23]

Не ругайся только, ну не получается, кинь пожалуйста целиком текст юнита. Спасибо


 
Anatoly Podgoretsky ©   (2006-11-22 15:57) [26]

> Megabyte  (22.11.2006 15:44:23)  [23]

Этот код уже приводили.


 
Megabyte ©   (2006-11-22 16:05) [27]


> Не ругайся только, ну не получается, кинь пожалуйста целиком текст юнита. Спасибо

Да нечего больеше приводить. Остальное к твоей задаче вообще не относится...


> Anatoly Podgoretsky ©  (22.11.06 15:57) [26]

> Megabyte  (22.11.2006 15:44:23)  [23]

Этот код уже приводили

Прочитал, не увидел...
Просто это единственное, что имхо можно было забыть, чтобы компилятор ругнулся... Все остальные проблемы уже не в приаттачивании файла.
Ну и конечно, в конце надо разрушить file, но на это компилятор не ругнется.


 
zdm ©   (2006-11-22 16:13) [28]


> Megabyte ©   (22.11.06 16:05) [27]

Брат, я писал, что не создавал конструкторов, ну если тебе не трудно, создай быстренько приложение с прекрепленным файлом, и брось сюда текст, пожалуйста, буду очень благодарен.


 
Virgo_Style ©   (2006-11-22 16:17) [29]

а при чем тут создание конструкторов


 
Андрей Сенченко ©   (2006-11-22 16:18) [30]

zdm ©   (22.11.06 16:13) [28]

да не нужно тебе создавать никаких конструкторов. Тебе нужно создать переменную объявленного тобой класса


 
Андрей Сенченко ©   (2006-11-22 16:22) [31]

На вот. В местной кладовке нарыто. Давно бы уже сам нашел.

procedure SendMail;
var
 LSMTP: TIdSMTP;
 LMsg: TIdMessage;
begin
 LSMTP := TIdSMTP.Create(nil);
 LMsg := TIdMessage.Create(LSMTP);

with LMsg do
 begin
   CharSet := "rus-ascii";
   From.Name := spMailName;
   From.Address := spMailAddr;
   Recipients.EMailAddresses := spToMail;
   Subject := spToSubj;
   Body.Text := spToBody;
   if length(spToAttc) > 0
   then TIdAttachment.Create(LMsg.MessageParts, spToAttc);
 end;

with LSMTP do
 begin
   AuthenticationType:=atLogin;
   Port := spMailPort;
   Host := spMailHost;
   UserId := spUserId;
   if length(spMailPass) > 0
   then Password := spMailPass;
   try
     Connect;
     Send(LMsg);
//     ShowMessage("письмо отправлено");
   except
     on e:exception do
     begin
       showmessage (Trim(e.message));
     end;
   end;
   Disconnect;
 end;
 FreeAndNil(LMsg);
 FreeAndNil(LSMTP);
end;


 
zdm ©   (2006-11-22 16:24) [32]

я понимаю, что туплю в какой то мелочи , но не могу её вычеслить вот код, подскажите где ошибка?

unit Unit5;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
 IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdIMAP4,
 IdMessage,IdAttachment,IdMessageParts;

type
 TForm5 = class(TForm)
   IdSMTP1: TIdSMTP;
   Button1: TButton;
   IdMessage1: TIdMessage;

   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public

   { Public declarations }
 end;

var
 Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);
var
msg : TIdMessage;
file_ : TIdMessagePart;

begin
IdSMTP1.Disconnect;
 msg := TIdMessage.Create(nil);
 IdSMTP1.Connect;
 file_ := TIdAttachment.Create(msg.MessageParts, "c:\1\1.zip"); ////Вот сдесь ошибка!!!!!!!

TIdAttachment.Create(IdMessage1);
IdSMTP1.Send(IdMessage1);
end;

end.


 
zdm ©   (2006-11-22 16:31) [33]

блин, у меня сейчас крыша съедит, ну нету у TIdAttachment.create свойства "имя файла" там только "Tcollecrtion"


 
Anatoly Podgoretsky ©   (2006-11-22 16:31) [34]


> Прочитал, не увидел...

Смотри 5, там не приведено создание всей цепочки объектов, но это ведь само собой подразумеваемое.


 
zdm ©   (2006-11-22 16:34) [35]

приведите пожалуйста весь текст юнита, ну неужели это так сложно?!?!?!?!?


 
Anatoly Podgoretsky ©   (2006-11-22 16:34) [36]

Так может у тебя версия не та?


 
zdm ©   (2006-11-22 16:37) [37]


> Anatoly Podgoretsky ©   (22.11.06 16:34) [36]

блин, а может правда, у меня bds2006 ну и полагающейся с ней комплект indy компонент.


 
Джо ©   (2006-11-22 16:40) [38]

> > Anatoly Podgoretsky ©   (22.11.06 16:34) [36]
>
> блин, а может правда, у меня bds2006 ну и полагающейся с
> ней комплект indy компонент.

Да, вроде в том Инди, который в BDS2006, в конструкторе всего один параметр. Зато у TIdAttachment имеется метод TIdAttachment.LoadFromStream :)


 
Anatoly Podgoretsky ©   (2006-11-22 16:41) [39]

> zdm  (22.11.2006 16:37:37)  [37]

Тогда у тебя Инди 10


 
Джо ©   (2006-11-22 16:41) [40]

Более того, у него имеется специализированный наследник: TIdAttachmentFile. И у него уже в конструкторе можно прямо задавать имя файла.


 
zdm ©   (2006-11-22 16:43) [41]


> Джо ©   (22.11.06 16:40) [38]

И как им воспользоваться?


 
Джо ©   (2006-11-22 16:44) [42]

Т.е., разумным представляется такое:


uses
 ..., IdAttachmentFile;

var
 Msg : TIdMessage;
 Att : TIdMessagePart;
begin
 Msg := TIdMessage.Create(nil);
 Att := TIdAttachmentFile.Create(Msg.MessageParts,"d:\myfile.dat");


 
zdm ©   (2006-11-22 16:45) [43]


> Джо ©   (22.11.06 16:41) [40]

Не кидай понты, похоже ты прав, научи лучше. И если можно поподробней. Заранее Спасибо!


 
Megabyte ©   (2006-11-22 16:45) [44]

Гы %)
Я то код привожу из 7-ки...


 
Джо ©   (2006-11-22 16:46) [45]

Offtop.
Никогда с этими Аттачментами и прочей почтовой ерундой в Инди не сталкивался. Сейчас ушло 2 минуты, чтобы заглянуть в штатную Справку и сварганить тестовый пример по сабжу. 2 минуты. ВО у меня нет, у автора топика есть. Внимание, вопрос: нахрена такое ВО и чему сейчас в ВУЗах обучают. То, что не умению читать, так это точно. Не перестаю удивляться.


 
Джо ©   (2006-11-22 16:47) [46]

> [43] zdm ©   (22.11.06 16:45)
>
> > Джо ©   (22.11.06 16:41) [40]
>
> Не кидай понты, похоже ты прав, научи лучше.

Богатство своего словарного запаса оттачивал бы где-то в другом месте.


 
Anatoly Podgoretsky ©   (2006-11-22 16:50) [47]

> Джо  (22.11.2006 16:41:40)  [40]

Ты наверно справку смотрел :-)


 
zdm ©   (2006-11-22 16:50) [48]


> Джо ©   (22.11.06 16:44) [42]

Я твой должник, вот так все бы отвичали и было бы счастье на земле. СПАСИБИЩЕ ОГРОМНОЕ!!!!!!!!!!!!!!!!!


 
Джо ©   (2006-11-22 16:53) [49]

>
>
> [48] zdm ©   (22.11.06 16:50)
>
> > Джо ©   (22.11.06 16:44) [42]
>
> Я твой должник

Раз должник, то требую возвратить должок, а именно: Поклянешься прямо тут и при всех прежде, чем набрасываться на окружающих с вопросами — залезть в Справку и тщательно изучить вопрос. Для этого необходима самая малость — умение читать.
;->


 
zdm ©   (2006-11-22 16:58) [50]


> Джо ©   (22.11.06 16:53) [49]

Обязуюсь, так и делаю, но иногда встряну на элементарнейшем вопросе и не могу растормозиться. Сначала всегда ищу информацию, либо по справке либо по инету,,, нашел, но не получается и где именно ошибка иногда понять трудно. Спасибо всем за участие и тебе особенно!


 
Андрей Сенченко ©   (2006-11-22 17:00) [51]

Джо ©   (22.11.06 16:53) [49]

Положа руку на сердце, Ты бы сам смог разобраться с INDY-йскими почтовыми компонентами по голой справке без примеров ? Там есть пара отнюдь не интуитивно понятных мест, которые лучше смотреть с куском готового кода.

Хотя здесь по поводу .Create - другая история.


 
Джо ©   (2006-11-22 17:06) [52]

> [51] Андрей Сенченко ©   (22.11.06 17:00)
> Джо ©   (22.11.06 16:53) [49]
>
> Положа руку на сердце, Ты бы сам смог разобраться с INDY-
> йскими почтовыми компонентами по голой справке без примеров
> ? Там есть пара отнюдь не интуитивно понятных мест, которые
> лучше смотреть с куском готового кода.

Я именно так только что и "разобрался". Именно по "голой справке".


 
zdm ©   (2006-11-22 17:08) [53]


> Джо ©   (22.11.06 17:06) [52]

Без ехидства. Молодец. У меня не получилось. Ну на то он и форум.


 
Андрей Сенченко ©   (2006-11-22 17:10) [54]

Ну потому и голубой значок ... я в свое время уперся в TIdMessagePart пока примера не нарыл.


 
zdm ©   (2006-11-22 17:20) [55]


> Андрей Сенченко ©   (22.11.06 17:10) [54]

Не обращал раньше внимания на цвет? Это имеет значение?


 
Андрей Сенченко ©   (2006-11-22 17:21) [56]

zdm ©   (22.11.06 17:20) [55]

Мастер


 
zdm ©   (2006-11-22 17:25) [57]


> Андрей Сенченко ©   (22.11.06 17:21) [56]

УУУУх, Ещё больше уважать стал (без ехидства)


 
umbra ©   (2006-11-22 19:03) [58]

прочтя все это, еще раз убедился, что задавая вопросы по инди обязательно надо указывать версию библиотеки :)



Страницы: 1 2 вся ветка

Текущий архив: 2006.12.10;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.05 c
3-1160132563
Ikela
2006-10-06 15:02
2006.12.10
TDBGrid


1-1161929527
Shlomo
2006-10-27 10:12
2006.12.10
Точка входа в проц-у ConvertToGlobalHandle не найден в kernel32


2-1163903847
Мальвина
2006-11-19 05:37
2006.12.10
Работа с микшером винды


2-1164192623
pyJIoH
2006-11-22 13:50
2006.12.10
Юникод. Сигнатура UTF-8.


4-1154016016
Destroyer
2006-07-27 20:00
2006.12.10
Проблема с получением короткого пути