2014-02-18 4 views
0

Я делаю цикл в элементах из моего почтового ящика, а затем извлекаю их вложения, используя: Set Append = mailitem.Attachments.Вложения в Outlook 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 только принимает строку (имя файла) или пункт Перспективы , например MailItem.

Если вы хотите что-то, что имеет смысл, вы можете попробовать Redemption :-) - он позволяет передавать имя файла, url, другое вложение, сообщение, IStorage в качестве параметра Attachments.Add.

+0

Спасибо, Дмитрий, я прочитаю об этом! – AndroidDev

+0

Дмитрий, пожалуйста, проверьте мой последний ответ на эту тему! – AndroidDev

Смежные вопросы