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

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

Отправка почты по IMAP. [D6, Win2k, WinXP]


Смертник ©   (2004-08-31 05:30:00) 

Если кто сталкивался с отправкой почты по IMAP, объясните как это делается. Желательно примерчиком, кому не трудно.


Unax   (2004-09-07 00:39:00) [1]

Вообще-то по IMAP получают, а не отправляют почту.


Смертник   (2004-09-06 06:44:00) [2]

Нет... Именно IMAP, а не MAPI. По MAPI куча примеров, а по IMAP нет... :))


Hel   (2004-09-02 11:24:00) [3]

Если речь идет про MAPI, то вот кусочек проги по отправки мыла:
function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail,
                 RecepientName, RecepientEMail: String) : Integer;
var
 message: TMapiMessage;
 lpSender,
 lpRecepient: TMapiRecipDesc;
 FileAttach: TMapiFileDesc;
 SM: TFNMapiSendMail;
 MAPIModule: HModule;
begin
 FillChar(message, SizeOf(message), 0);
 with message do
 begin
   if (Subject<>'') then
   begin
     lpszSubject := PChar(Subject)
   end;
   if (Body<>'') then
   begin
     lpszNoteText := PChar(Body)
   end;
   if (SenderEMail<>'') then
   begin
     lpSender.ulRecipClass := MAPI_ORIG;
     if (SenderName='') then
     begin
       lpSender.lpszName := PChar(SenderEMail)
     end
     else
     begin
       lpSender.lpszName := PChar(SenderName)
     end;
     lpSender.lpszAddress := PChar('SMTP:'+SenderEMail);
     lpSender.ulReserved := 0;
     lpSender.ulEIDSize := 0;
     lpSender.lpEntryID := nil;
     lpOriginator := @lpSender;
   end;
   if (RecepientEMail<>'') then
   begin
     lpRecepient.ulRecipClass := MAPI_TO;
     if (RecepientName='') then
     begin
       lpRecepient.lpszName := PChar(RecepientEMail)
     end
     else
     begin
       lpRecepient.lpszName := PChar(RecepientName)
     end;
     lpRecepient.lpszAddress := PChar('SMTP:'+RecepientEMail);
     lpRecepient.ulReserved := 0;
     lpRecepient.ulEIDSize := 0;
     lpRecepient.lpEntryID := nil;
     nRecipCount := 1;
     lpRecips := @lpRecepient;
   end
   else
   begin
     lpRecips := nil
   end;
   if (FileName='') then
   begin
     nFileCount := 0;
     lpFiles := nil;
   end
   else
   begin
     FillChar(FileAttach, SizeOf(FileAttach), 0);
     FileAttach.nPosition := Cardinal($FFFFFFFF);
     FileAttach.lpszPathName := PChar(FileName);
     nFileCount := 1;
     lpFiles := @FileAttach;
   end;
 end;
 MAPIModule := LoadLibrary(PChar(MAPIDLL));
 if MAPIModule=0 then
 begin
   Result := -1
 end
 else
 begin
   try
     @SM := GetProcAddress(MAPIModule, 'MAPISendMail');
     if @SM<>nil then
     begin
       Result := SM(0, Application.Handle, message, MAPI_LOGON_UI, 0);
       //SM(0, Application.Handle, message, MAPI_SENT, 0);
     end
     else
     begin
       Result := 1
     end;

   finally
     FreeLibrary(MAPIModule);
   end;
 end;
 if Result<>0 then
 begin
   MessageDlg('Error sending mail ('+IntToStr(Result)+').', mtError, [mbOk],
              0)
 end;
end;


Наверх

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