2011-12-11 4 views
7

मैं Outlook में अनुलग्नक के साथ एक मेल बनाना चाहता हूं और इसे भेजने से पहले इसे प्रदर्शित करना चाहता हूं, लेकिन मुझे लगता है कि मैंने बिना किसी किस्मत के नेट पर पाया लगभग हर नमूना प्रयास किया है। मैं इंडी का उपयोग कर सकता था, लेकिन मैं यह सुनिश्चित करने के लिए Outlook का उपयोग करना चाहता हूं कि मेल उचित है क्योंकि यह व्यावसायिक उपयोग के लिए है।Outlook में अनुलग्नक के साथ एक मेल बनाना और इसे प्रदर्शित करना

पैरामीटर के रूप में पता, विषय, संदेश और अनुलग्नक लेने वाले फ़ंक्शन के लिए कोई भी इनपुट और फिर इसे भेजने से पहले Outlook में संदेश प्रदर्शित करता है।

उत्तर

14

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

मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं क्योंकि यह बहुत ही वही कोड है जैसा कि मैं उपयोग कर रहा हूं लेकिन बिना किसी किस्मत के। दूसरी ओर आपका कोड काम करता है। मुझे आश्चर्य है कि क्या इस तथ्य के साथ कुछ करना है कि मैं Outlook_TLB का उपयोग कर रहा हूं - लेकिन मैं नहीं देख सकता कि यह क्या करना चाहिए। क्या आपको पता है कि कोड को पढ़ने की रसीद और डिलीवरी रसीद को जोड़ना संभव है? – OZ8HP

+1

रसीद पढ़ने के अनुरोध के लिए ['ReadReceiptRequested'] (http://msdn.microsoft.com/en-us/library/ff865400.aspx) संपत्ति की जांच करें और इसे 'Mail.ReadReceiptRequested: = True;' – TLama

+1

के रूप में उपयोग करें .. और 'उत्प्रेरक डिलीवरी रिपोर्टपोर्ट' प्रोपेटी। –

संबंधित मुद्दे