2011-12-11 9 views
7

Voglio creare una mail con allegato in Outlook e visualizzarla prima di inviarla, ma penso di aver provato quasi tutti i campioni che ho trovato in rete senza fortuna. Potrei usare Indy, ma mi piacerebbe molto usare Outlook per essere sicuro che la posta sia corretta perché è per uso aziendale.Creazione di una mail con allegato in Outlook e visualizzazione

Qualsiasi input per una funzione che richiede Indirizzo, oggetto, messaggio e allegato come parametri e quindi visualizza il messaggio in Outlook prima di inviarlo.

risposta

14

Vedere MailItem.Display Method.

uses 
    comobj; 

.. 

procedure DisplayMail(Address, Subject, Body: string; Attachment: TFileName); 
var 
    Outlook: OleVariant; 
    Mail: Variant; 
const 
    olMailItem = $00000000; 
begin 
    try 
    Outlook := GetActiveOleObject('Outlook.Application'); 
    except 
    Outlook := CreateOleObject('Outlook.Application'); 
    end; 
    Mail := Outlook.CreateItem(olMailItem); 
    Mail.To := Address; 
    Mail.Subject := Subject; 
    Mail.Body := Body; 
    if Attachment <> '' then 
    Mail.Attachments.Add(Attachment); 
    Mail.Display; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    DisplayMail('mailaddress', 'subject', 'message', 'attachmentfile'); 
end; 
+0

Non sono ancora sicuro di cosa stia facendo male perché è praticamente lo stesso codice che ho usato ma senza fortuna. Il tuo codice d'altra parte funziona. Mi chiedo se abbia qualcosa a che fare con il fatto che ho usato Outlook_TLB - ma non riesco a vedere cosa dovrebbe fare. Sai se è possibile aggiungere la richiesta di lettura ricevuta e ricevuta di consegna al codice? – OZ8HP

+1

Per la richiesta di lettura scontrino controllare la proprietà ['ReadReceiptRequested'] (http://msdn.microsoft.com/en-us/library/ff865400.aspx) e utilizzarla come' Mail.ReadReceiptRequested: = True; ' – TLama

+1

.. e la proprietà di 'OriginatorDeliveryReportRequested'. –

Problemi correlati