2011-12-11 44 views
7

Tôi muốn tạo thư có tệp đính kèm trong Outlook và hiển thị nó trước khi gửi, nhưng tôi nghĩ tôi đã thử gần như mọi mẫu tôi tìm thấy trên mạng mà không có bất kỳ may mắn nào. Tôi có thể sử dụng Indy, nhưng tôi rất muốn sử dụng Outlook để đảm bảo rằng thư là phù hợp vì nó là dành cho doanh nghiệp sử dụng.Tạo thư có tệp đính kèm trong Outlook và hiển thị nó

Bất kỳ đầu vào nào cho hàm nhận Địa chỉ, chủ đề, thư và tệp đính kèm dưới dạng tham số rồi hiển thị thư trong Outlook trước khi gửi.

Trả lời

14

Xem 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

Tôi không chắc chắn những gì tôi đã làm sai vì nó là khá nhiều mã giống như tôi đã được sử dụng nhưng không có may mắn. Mặt khác, mã của bạn hoạt động. Tôi tự hỏi nếu nó có một cái gì đó để làm với thực tế là tôi đã được sử dụng Outlook_TLB - nhưng tôi không thể nhìn thấy những gì này nên làm. Bạn có biết liệu có thể thêm biên nhận đọc và biên lai gửi yêu cầu vào mã không? – OZ8HP

+1

Để nhận yêu cầu đọc, hãy kiểm tra thuộc tính ['ReadReceiptRequested'] (http://msdn.microsoft.com/en-us/library/ff865400.aspx) và sử dụng nó như là' Mail.ReadReceiptRequested: = True; ' – TLama

+1

.. và nguyên tắc 'OriginatorDeliveryReportRequested'. –

Các vấn đề liên quan