PDA

Visualizza la versione completa : [DELPHI] Invio email con allegati


123delphi321
10-12-2007, 20:36
Ciao,

da un programma devo inviare una email con file allegati tramite il client di posta predefinito.

non capisco come devo fare per allegare il/i file....

per avviare il client di posta faccio cosi:

AText := 'mailto:indirizzo@nomesito.it';
ShellExecute(0, 'OPEN', PChar(AText), nil, nil, SW_SHOWMAXIMIZED);

come devo fare per aggiungere l'allegato?

grazie

123delphi321
12-12-2007, 15:24
c'e' qualc'uno che mi puo' aiutare???

come fa winzip a 'comprimi ed invia email'?

come fa Acrobat ad aprire il client di posta allegando il suo file PDF?

grazie

danz67
13-12-2007, 08:36
Ciao,
io per inviare email, anche con allegati, utilizzo i componenti indy, se vai sul sito ufficiale trovi delgi esempi per capirne il funzionamento.
:ciauz:

alka
15-12-2007, 17:01
La sintassi mailto: non supporta l'indicazione di allegati.

Per ottenere quanto chiedi, è necessario usare MAPI se si vuole inviare il messaggio con il supporto di un client valido per questa architettura, oppure adottare - come già suggerito - una libreria, come Indy Components, per gestire autonomamente il colloquio con un server SMTP per la spedizione di un messaggio personalizzato, con testo e allegati.

Ciao! :ciauz:

pallinopinco
15-12-2007, 17:17
Alcuni client supportano le sintassi:



mailto:pippo@pluto.it?subject=Ciao da Topolona&file="c:\allegato.zip"


o



mailto:pippo@pluto.it?subject=Ciao da Topolona&attachment="c:\allegato.zip"


Ma per queste cose è meglio usare MAPI (http://www.scalabium.com/mapimail.htm):



with TMAPIMail.Create(Self) do
try
Subject := 'test';
Body := 'Hi,'#13#10#13#10'with best regards, Mike Shkolnik';
Recipients.Add('mshkolnik@scalabium.com');
Recipients.Add('CC:mshkolnik@yahoo.com');
Recipients.Add('BCC:mshkolnik@mail.ru');
Attachments.Add('c:\autoexec.bat');
EditDialog := True;
Send
finally
Free
end;

alka
15-12-2007, 17:27
Originariamente inviato da pallinopinco
Alcuni client supportano le sintassi [...]

Non ne ero a conoscenza, ma sembrano più implementazioni private/personalizzate del software specifico che risponde al protocollo, che non elementi previsti dallo "standard" che devono essere rispettati da tutti.

pallinopinco
15-12-2007, 18:05
ma sembrano più implementazioni private/personalizzate del software specifico che risponde al protocollo,


Infatti lo sono... :)

Se si usa Outlook (e pochi altri client) quella sintassi potrebbe funzionare, dunque se dovessi scegliere un approccio standard&affidabile userei MAPI senza esitazioni!

123delphi321
17-12-2007, 10:28
ciao e grazie per l'aiuto!

non riuscivo a farlo funzionare e ottenevo MAPI Error 3. Logon Failure.

questo dipendeva dal fatto che non era definito un profilo nell'account di posta elettronica...

adessso sembra tutto ok!

grazie

123delphi321
17-05-2008, 17:58
Originariamente inviato da pallinopinco
Alcuni client supportano le sintassi:



mailto:pippo@pluto.it?subject=Ciao da Topolona&file="c:\allegato.zip"


o



mailto:pippo@pluto.it?subject=Ciao da Topolona&attachment="c:\allegato.zip"


Ma per queste cose è meglio usare MAPI (http://www.scalabium.com/mapimail.htm):



with TMAPIMail.Create(Self) do
try
Subject := 'test';
Body := 'Hi,'#13#10#13#10'with best regards, Mike Shkolnik';
Recipients.Add('mshkolnik@scalabium.com');
Recipients.Add('CC:mshkolnik@yahoo.com');
Recipients.Add('BCC:mshkolnik@mail.ru');
Attachments.Add('c:\autoexec.bat');
EditDialog := True;
Send
finally
Free
end;


ciao

io dovrei inviare N mail e vorrei che queste fossero inviate solo premendo un apposito pulsante del mio programma....

dapprima setto:
EditDialog := False;
in modo tale che la mail inviata a outlook non venga aperta per eventali modifiche...ok.

ma viene chiesta la conferma da parte di outlook se inviare o meno l'email.

c'e' una maniera per evitare questa richiesta?

grazie

Loading