2014-02-18 92 views
0

我正在從我的郵箱中進行項目循環,然後使用以下代碼提取其附件:Set Append = mailitem.AttachmentsOutlook上的附件mailitem

然後,當郵件與.Attachments.Add Append一起發送時,我得到的對象不支持此方法錯誤。

在我看來,Attachments.Add不接受一個對象,只是一個字符串。但這對我來說沒有任何意義。

有沒有其他方法可以做到這一點?我的代碼

配件:程序

i = 0 

For Each Msg In olItms 

    If Msg.Class = olMail Then 

     If InStr(1, Msg.Subject, Trackbox.Value) > 0 Then 

     ReDim Preserve MyArray(i) 

     If Msg.Attachments.Count > 0 Then Set Append = Msg.Attachments 

而且SEND_EMAIL功能

Function SendEmail(Who As String, About As Variant, BodyText As Variant, Optional CopyTo As String, Optional HCopyTo As String, _ 
Optional App As Object) 

Set Out = GetObject(, "Outlook.Application") 

Set NewMsg = Out.CreateItem(olMailItem) 

With NewMsg 

    .To = Who 
    .CC = CopyTo 
    .BCC = HCopyTo 
    .Attachments.Add App 
    .BodyFormat = olFormatHTML 
    .Subject = About 
    .HTMLBody = BodyText 
    .Send 


End With 


End Function 
+0

您可以將附件提取到特定的文件夾,獲取路徑,然後使用'Attachments.Add'附加它。不是那麼難,但也不太好。 – Manhattan

+0

但是,爲什麼這不好呢?我會用這種方法得到任何錯誤嗎? – AndroidDev

+0

假設您正在處理具有不同擴展名的文件。有些是'.zip',有些是'.7z',有些甚至可能是'.mp3'。既然你要保存它們,你必須提供一個文件擴展名。如果你得到這個部分是錯誤的,當你將它保存爲另一種格式時,你可以不可挽回地損壞該文件。解決方法是嘗試獲取擴展名並正確保存。其實,這是可行的。我只是沒有發現它*好。我使用相同的方法,但我只保存'.zip'文件,提取它們,應用格式化,並重新壓縮並將它們發回,所以我非常容易(我認爲)。 :) – Manhattan

回答

0

Attachments.Add只需要一個字符串(文件名)的

部分或Outlook項目如MailItem。

如果你想要一些有意義的東西,你可以試試Redemption :-) - 它允許傳遞一個文件名,url,另一個附件,消息,IStorage作爲Attachments.Add的參數。

+0

謝謝德米特里,我會讀它! – AndroidDev

+0

德米特里,請檢查我的最後回答這個線程! – AndroidDev