Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите сделать отправку письма в консольном приложении


Пиво ©   (2004-05-26 05:48:00) 

Уважаемые программисты.
Я не смог найти статью по отправке электронной почты из   консольного приложения на Delphi, пожайлуста помоите мне кому не лень!
Заранее благодарен.


Winni   (2004-06-26 14:50:00) [1]

Спасибо, это действительно работает, и кроме того - понятно.


Пиво   (2004-05-29 04:42:00) [2]

Спасибо, попробую днём


ORMADA   (2004-05-27 09:41:00) [3]

Indy заюзать можно

program SendMail;
{$APPTYPE CONSOLE}
uses
 IdMessage, IdSMTP, SysUtils;
var
 M: TIdMessage;
 SMTP: TIdSMTP;
begin
{
структура сообщения
1 От кого
2 Кому
3 Тема
4 Тело
5 Хост (mail.ru)
6 UserName
7 UserPass
}
 if ParamCount < 7 then
 begin
   writeln('Message Structure');
   writeln('1 From <x@mail.ru>');
   writeln('2 To');
   writeln('3 Subject');
   writeln('4 Body');
   writeln('5 Host (mail.ru-194.67.23.111)');
   writeln('6 UserName');
   writeln('7 UserPass');
   Exit;
 end;
 try
   M := TIdMessage.Create(nil);
   M.From.Text := Paramstr(1); //отправитель
   M.Recipients.Add;
   M.Recipients.Items[0].Text := Paramstr(2); //Получатель
   M.Subject := Paramstr(3); //Тема письма
   M.Body.Add(Paramstr(4));

   SMTP := TIdSMTP.Create(nil);
   SMTP.AuthenticationType := atLogin;
   SMTP.Host := Paramstr(5); // mail.ru - 194.67.23.111
   SMTP.Username := Paramstr(6); // в формате usermane@mail.ru
   SMTP.Password := Paramstr(7);
   try
     SMTP.Connect;
     if SMTP.Connected then
     begin
       SMTP.Send(M);
       SMTP.Disconnect;
       writeln('message send!');
     end;
   except
     writeln('cant conneted to server-> ' + Exception(ExceptObject).Message);
   end;
 finally
   FreeAndNil(M);
   FreeAndNil(SMTP);
 end;
end.


BiN   (2004-05-27 09:32:00) [4]

CPAS   (27.05.04 06:21) [3]
А почту ты отправлять можно двумя способами


ну это ты зря. ручками, батенька, ручками (Rouse_, кажется, уже несколько раз выкладывал пример SMTP с использованием обычных сокетов)

1. с помощью MAPI.
2. с помощью функции ShellExecute.


эти 2 метода завязаны на продукции 3-их фирм, что не есть хорошо для серьезного приложения.


CPAS   (2004-05-27 06:21:00) [5]

GUI - Graphic User Interface - Графический пользовательский интерфейс.
А почту ты отправлять можно двумя способами, которые прекрастно работают как в консолях, так и в обычных приложениях:
1. с помощью MAPI.
2. с помощью функции ShellExecute.

Пример

ShellExecute(Application.Handle, nil, PChar('mailto:email_address?body=body_here&subject=subject_here'), nil, nil, SW_SHOWNORMAL)


Пиво   (2004-05-27 05:43:00) [6]

А что такое GUI приложение?


Polevi   (2004-05-26 07:52:00) [7]

из GUI приложения можешь ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо