2011-12-11 16 views
7

Outlook'ta ekli bir posta oluşturmak ve göndermeden önce görüntülemek istiyorum, ancak hiç şanssız ağda bulduğum neredeyse her örneği denediğimi düşünüyorum. Indy'yi kullanabilirim, ancak iş kullanımı için olduğu için postanın uygun olduğundan emin olmak için Outlook'u kullanmayı çok isterim.Outlook'ta ekli bir posta oluşturma ve görüntüleniyor

Adres, konu, ileti ve eki parametre olarak alan ve iletiyi göndermeden önce Outlook'ta görüntülenen bir işlev için herhangi bir girdi.

cevap

14

Bkz. 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

Henüz yanlış yaptığımdan emin değilim çünkü kullandığım kodun hemen hemen aynı şifredir, ancak şanssızdır. Kodunuz diğer yandan çalışır. Outlook_TLB'yi kullanmamla ilgili bir şey olup olmadığını merak ediyorum - ancak bunun ne yapması gerektiğini göremiyorum. Kodda İstek okundu bilgisi ve teslimat makbuzu eklenebiliyor mu? – OZ8HP

+1

Makbuz okuma talebi için ['ReadReceiptRequeded'] (http://msdn.microsoft.com/en-us/library/ff865400.aspx) özelliğini kontrol edin ve 'Mail.ReadReceiptRequested: = True;' – TLama

+1

olarak kullanın. ve “OriginatorDeliveryReportRequested” özelliği. –

İlgili konular