2011-06-03 116 views

回答

2

找到了答案here

关键位是:

Const PR_ATTACH_MIME_TAG = "http://schemas.microsoft.com/mapi/proptag/0x370E001E"   
Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"   
Const PR_ATTACHMENT_HIDDEN = "http://schemas.microsoft.com/mapi/proptag/0x7FFE000B" 

... 

Set colAttach = l_Msg.Attachments   
For x = 1 To Items.Count    
    Set l_Attach = colAttach.Add(Items.Item(x))    
    Set oPA = l_Attach.PropertyAccessor    
    oPA.SetProperty PR_ATTACH_MIME_TAG, ItemTypes.Item(x)    
    oPA.SetProperty PR_ATTACH_CONTENT_ID, "item" & x    
    oPA.SetProperty PR_ATTACHMENT_HIDDEN, True   
Next 
2

这里的其他例子:

Option Explicit 
'Add reference to MS Outlook x.x Object Library 
'Picture to be added as an attachment and modified src location for each embedded picture. 
Private Sub Command1_Click() 

    Dim oApp As Outlook.Application 
    Dim oEmail As MailItem 
    Dim colAttach As Outlook.Attachments 
    Dim oAttach As Outlook.Attachment 

    'create new Outlook MailItem 
    Set oApp = CreateObject("Outlook.Application") 
    Set oEmail = oApp.CreateItem(olMailItem) 
    'add graphic as attachment to Outlook message 
    'change path to graphic as needed 
    Set colAttach = oEmail.Attachments 
    Set oAttach = colAttach.Add("D:\my documents\[color=red]MyPic.jpg[/color]") 
    oEmail.Close olSave 
    'change the src property to 'cid:your picture filename' 
    'it will be changed to the correct cid when its sent. 
    oEmail.HTMLBody = "<BODY><FONT face=Arial color=#000080 size=2></FONT>" & _ 
    "<IMG alt='' hspace=0 src='[color=red]cid:MyPic.jpg[/color]' align=baseline border=0>&nbsp;</BODY>" 
    oEmail.Save 
    oEmail.Display 'fill in the To, Subject, and Send. Or program it in. 
    Set oEmail = Nothing 
    Set colAttach = Nothing 
    Set oAttach = Nothing 
    Set oApp = Nothing 

End Sub 

你可以找到它:

http://www.vbforums.com/showthread.php?278600-VB-Embedd-an-image-into-an-Outlook-email-message-body

1

这是由梅德一个VB代码段Streblechenko(MVP)。它为我工作得很好。

Set objOutlook = CreateObject("Outlook.Application") 
Set Ns = objOutlook.GetNamespace("MAPI") 
Ns.Logon 
Set objOutlookMsg = objOutlook.CreateItem(olMailItem) 
Set objOutlookRecip = objOutlookMsg.Recipients.Add("[email protected]") 
objOutlookRecip.Type = olTo 
objOutlookMsg.Subject = "test" 
' add graphic as attachment to Outlook message 
Set colAttach = objOutlookMsg.Attachments 
Set l_Attach = colAttach.Add("z:\Temp\8\1.jpg ") 
l_Attach.PropertyAccessor.SetProperty "http:// schemas.microsoft.com/mapi/proptag/0x370E001F", "image/jpeg" ' 
Change From 0x370eE001E 
l_Attach.PropertyAccessor.SetProperty "http:// schemas.microsoft.com/mapi/proptag/0x3712001F", "myident" 
'Changed from 0x3712001E 
objOutlookMsg.PropertyAccessor.SetProperty "http:// schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8514000B", True 
' 
Set body format to HTML 
objOutlookMsg.BodyFormat = olFormatHTML 
objOutlookMsg.HTMLBody = "html tags goes here< img align=" 
baseline " order=" 
1 " hspace=" 
0 " src=" 
cid: myident " width=" 
" 600=" 
" > </img> end html tags" 
objOutlookMsg.Save 
objOutlookMsg.Send 
相关问题