Я делаю цикл в элементах из моего почтового ящика, а затем извлекаю их вложения, используя: 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
Вы можете извлечь вложения в определенную папку, получить путь, а затем прикрепить ее с помощью 'Attachments.Add'. Не так сложно, но и не очень хорошо. – Manhattan
Но почему это не будет хорошо? Могу ли я получить какие-либо ошибки с помощью этого метода? – AndroidDev
Предполагая, что вы имеете дело с файлами с различными расширениями. Некоторые из них - '.zip', некоторые -' .7z', а некоторые - даже '.mp3'. Поскольку вы их сохраняете, вам необходимо предоставить расширение файла. Если вы ошиблись в этой части, вы можете безотзывно испортить файл при сохранении его в другом формате. Обходным путем является попытка получить расширение и сохранить его должным образом как таковой. На самом деле это выполнимо. Я просто не считаю, что это хорошо. Я использую тот же подход, но я сохраняю только файлы '.zip', извлекаю их, применяю форматирование и повторно застегиваю их и отправляю обратно, так что у меня это довольно просто (я думаю). :) – Manhattan