Newsgroup: it.comp.lang.delphi
Titolo: E Mail con Outlook Express

Vorrei sapere come fare a generare da delphi un e-mail con un allegato, con
Outlook normale ci sono riuscita ma con Express no.
Grazie
--------------------------------
Inviato via 
http://usenet.libero.it

 Outlook normale ci sono riuscita ma con Express no.
non si puo'.
Ciao, Sandro

Outlook normale ci sono riuscita ma con Express no.
Si può.  Con le MAPI.  Se vuoi un esempio, scrivimi per e-mail
(a.laforgia(at)
libero.it
).
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

Outlook normale ci sono riuscita ma con Express no.
Con le mapi come dice Andrea.
Per liberare le informazioni (information wants to be free) ed evitare che
tutti gli scrivano in email, ecco un codice trovato su google groups.
La tecnica fondamentale e' questa: usare MapiSendMail che invoca il client di
posta predefinito dal sistema operativo.
Ovviamente il tutto ti viene dato AS IS, prova, verifica e poi facci sapere,
se va bene la mettiamo nel repository del ng.
function SendMAPIMail(const ASubject, ABodyText, ASenderName, ASenderEMail,
   ARecepientName, ARecepientEMail: String; AFileList: TStringList): Integer;
type
   PMapiFileDescArray = ^TMapiFileDescArray;
   TMapiFileDescArray = Array[0..MaxInt div SizeOf(TMapiFileDesc) - 1]
of TMapiFileDesc;
var
   AMAPIMessage: TMapiMessage;
   lpSender,
   lpRecepient: TMapiRecipDesc;
   AFileAttachments: PMapiFileDescArray;
   AIndex: Integer;
   AMemSize: Integer;
begin
   AFileAttachments := nil;
   FillChar(AMAPIMessage, SizeOf(TMAPIMessage), 0);
   try
     with AMAPIMessage do begin
       lpszSubject := PChar(ASubject);
       lpszNoteText := PChar(ABodyText);
       if (ASenderEMail <> '') then  begin
         lpSender.ulRecipClass := MAPI_ORIG;
         if (ASenderName = '') then
           lpSender.lpszName := PChar(ASenderEMail)
         else
           lpSender.lpszName := PChar(ASenderName);
         lpSender.lpszAddress := PChar('SMTP:' + ASenderEMail);
         lpSender.ulReserved := 0;
         lpSender.ulEIDSize := 0;
         lpSender.lpEntryID := nil;
         lpOriginator := @lpSender;
       end;
       if (ARecepientEMail <> '') then  begin
         lpRecepient.ulRecipClass := MAPI_TO;
         if (ARecepientName = '') then
           lpRecepient.lpszName := PChar(ARecepientEMail)
         else
           lpRecepient.lpszName := PChar(ARecepientName);
         lpRecepient.lpszAddress := PChar('SMTP:' + ARecepientEMail);
         lpRecepient.ulReserved := 0;
         lpRecepient.ulEIDSize := 0;
         lpRecepient.lpEntryID := nil;
         nRecipCount := 1;
         lpRecips := @lpRecepient;
       end
       else
         lpRecips := nil;
       if Assigned(AFileList) and (AFileList.Count > 0) then begin
         nFileCount := AFileList.Count;
         AMemSize := SizeOf(TMapiFileDesc) * nFileCount;
         GetMem(AFileAttachments, AMemSize);
         FillChar(AFileAttachments^, AMemSize, #0);
         for AIndex := 0 to AFileList.Count - 1 do begin
           AFileAttachments^[AIndex].nPosition := $FFFFFFFF;
           AFileAttachments^[AIndex].lpszPathName := PChar(AFileList[AIndex]);
         end;
         lpFiles := Pointer(AFileAttachments);
       end
       else begin
         nFileCount := 0;
         lpFiles := nil;
       end;
     end;
     Result := MapiSendMail(0, Application.Handle, AMAPIMessage,
               MAPI_DIALOG or MAPI_LOGON_UI, 0);
     if Result <> 0 then RaiseLastOSError;
   finally
     if Assigned(AFileAttachments) then  FreeMem(AFileAttachments);
   end;
end;
Ciao,
-- 
Morde. 
(morde at programmer dot net)

non si puo'.
Aggiungo che non si puo' se vuoi usarlo come server OLE.
;)



Funziona !!!
Grazie a tutti



Funziona alla grande!
Ciao

Ciao,
Scusa a me  ritorna un errore, Code 2 MAPI_E_FAILURE e non so perche
ho installato OE, bisogna anche installare Outlook normale? non
capisco uso win98 prima edizione le ho provate tutte ma non capisco
come mai non funzionano le MAPI
ps 
ho provato anche altri codici sulle mapi ma tutti mi ritornano questo
problema
-- 
Alien321

> ho installato OE,
e lo hai installato Internet Explorer 6?
Ciao, Sandro

ho installato OE, bisogna anche installare Outlook normale? 
No.  OE è già un server MAPI.  In ogni caso, ti consiglio di
aggiornare il sistema operativo.


aggiornare il sistema operativo.
si hai ragione devo installare win2000 cmq credi sia colpa del SO se
non vanno le MAPI???
-- 
Alien321