Newsgroup: it.comp.lang.delphi
Titolo: Inviare mail con allegati in Delphi?

Vorrei sapere se esiste il modo di inviare mail con allegati passando da
Delphi. (senza allegati era fin troppo facile..)
Non posso usare il controllo ActiveX di M$ Outlook perche' non sono sicuro
che OL sia installato sul PC dove finira' la mia applicazione. Esiste un
componente che mi permetta di interfacciarmi con Outlook Express.
Vi prego di non rispondermi se non conoscete la differenza tra Outlook e
OutlookExpress. Grazie. :-)

 Delphi. (senza allegati era fin troppo facile..)
Perché non usare i componenti Indy o ICS di Piette ?
ciao
Antonio

 Perché non usare i componenti Indy o ICS di Piette ?
Ho provato Indy, ma non mi riesce (non riesco ad allegare un file)... Pero'
ho trovato una cosa interessante nei componenti FastNet, e sto usando
quella.
ICS sono in vendita? Non vorrei comprare un pacchetto di componenti solo per
una funzione...

Guardati gli esempi. E' piuttosto semplice inviare un file con allegato con
i componenti INDY.
Ciauz,
MM


 Delphi. (senza allegati era fin troppo facile..)
Si', usando le MAPI.
--------------------------------
Inviato via 
http://usenet.libero.it

 Si', usando le MAPI.
Questo gia' lo sapevo. Solo che non so come usare MAPI da Delphi...
Sto leggendo documentazione...

 Sto leggendo documentazione...
uses MAPI;
procedure SendMail(SenderName, SenderAddress: String;
                   RecipientName, RecipientAddress: String;
                   Subject: String;
                   Body: String;
                   Attachment: String);
var
  MyMapiMessage: TMapiMessage;
  MyRecipients: array of TMapiRecipDesc;
  MyAttachments: array of TMapiFileDesc;
  MAPIResult: Cardinal;
begin
  if RecipientAddress <> '' then
  begin
    SetLength(MyRecipients, 1);
    with MyRecipients[0] do
    begin
      ulRecipClass := MAPI_TO;
      lpszName := PChar(RecipientName);
      lpszAddress := PChar(RecipientAddress);
    end;
  end;
  if Attachment <> '' then
  begin
    SetLength(MyAttachments, 1);
    MyAttachments[0].nPosition := Cardinal(-1);
    MyAttachments[0].lpszPathName := PChar(Attachment);
  end;
  with MyMapiMessage do
  begin
    lpszSubject := PChar(Subject);
    lpszNoteText := PChar(Body);
    if Length(MyRecipients) > 0 then
    begin
      nRecipCount := Length(MyRecipients);
      lpRecips := @MyRecipients[0];
    end
    else
    begin
      nRecipCount := 0;
      lpRecips := nil;
    end;
    if Length(MyAttachments) > 0 then
    begin
      nFileCount := Length(MyAttachments);
      lpFiles := @MyAttachments[0];
    end
    else
    begin
      nFileCount := 0;
      lpFiles := nil;
    end;
  end;
  MAPIResult := MapiSendMail(0,
                  Application.Handle,
                  MyMapiMessage,
                  MAPI_DIALOG +
                  MAPI_LOGON_UI +
                  MAPI_NEW_SESSION,
                  0);
  if MAPIResult <> SUCCESS_SUCCESS then
  begin
    case MAPIResult of
      MAPI_USER_ABORT: raise Exception.Create('MAPI_USER_ABORT');
      MAPI_E_FAILURE: raise Exception.Create('MAPI_E_FAILURE');
      MAPI_E_LOGIN_FAILURE: raise Exception.Create('MAPI_E_LOGIN_FAILURE');
      MAPI_E_DISK_FULL: raise Exception.Create('MAPI_E_DISK_FULL');
      MAPI_E_INSUFFICIENT_MEMORY: raise
Exception.Create('MAPI_E_INSUFFICIENT_MEMORY');
      MAPI_E_ACCESS_DENIED: raise Exception.Create('MAPI_E_ACCESS_DENIED');
      MAPI_E_TOO_MANY_SESSIONS: raise
Exception.Create('MAPI_E_TOO_MANY_SESSIONS');
      MAPI_E_TOO_MANY_FILES: raise Exception.Create('MAPI_E_TOO_MANY_FILES');
      MAPI_E_TOO_MANY_RECIPIENTS: raise
Exception.Create('MAPI_E_TOO_MANY_RECIPIENTS');
      MAPI_E_ATTACHMENT_NOT_FOUND: raise
Exception.Create('MAPI_E_ATTACHMENT_NOT_FOUND');
      MAPI_E_ATTACHMENT_OPEN_FAILURE: raise
Exception.Create('MAPI_E_ATTACHMENT_OPEN_FAILURE');
      MAPI_E_ATTACHMENT_WRITE_FAILURE: raise
Exception.Create('MAPI_E_ATTACHMENT_WRITE_FAILURE');
      MAPI_E_UNKNOWN_RECIPIENT: raise
Exception.Create('MAPI_E_UNKNOWN_RECIPIENT');
      MAPI_E_BAD_RECIPTYPE: raise Exception.Create('MAPI_E_BAD_RECIPTYPE');
      MAPI_E_NO_MESSAGES: raise Exception.Create('MAPI_E_NO_MESSAGES');
      MAPI_E_INVALID_MESSAGE: raise Exception.Create('MAPI_E_INVALID_MESSAGE');
      MAPI_E_TEXT_TOO_LARGE: raise Exception.Create('MAPI_E_TEXT_TOO_LARGE');
      MAPI_E_INVALID_SESSION: raise Exception.Create('MAPI_E_INVALID_SESSION');
      MAPI_E_TYPE_NOT_SUPPORTED: raise
Exception.Create('MAPI_E_TYPE_NOT_SUPPORTED');
      MAPI_E_AMBIGUOUS_RECIPIENT: raise
Exception.Create('MAPI_E_AMBIGUOUS_RECIPIENT');
      MAPI_E_MESSAGE_IN_USE: raise Exception.Create('MAPI_E_MESSAGE_IN_USE');
      MAPI_E_NETWORK_FAILURE: raise Exception.Create('MAPI_E_NETWORK_FAILURE');
      MAPI_E_INVALID_EDITFIELDS: raise
Exception.Create('MAPI_E_INVALID_EDITFIELDS');
      MAPI_E_INVALID_RECIPS: raise Exception.Create('MAPI_E_INVALID_RECIPS');
      MAPI_E_NOT_SUPPORTED: raise Exception.Create('MAPI_E_NOT_SUPPORTED');
    else
      raise Exception.CreateFmt('UNKNOWN ERROR. CODE = %d', [MAPIResult]);
    end;
  end;
end;


http://groups.google.it/groups?q=zortek+email+allegati&hl=it&lr=&ie=UTF-8&oe
=UTF-8&selm=ajodqj%241crg40%241%
40ID-43509.news.dfncis.de
&rnum=2
Ciao, Sandro