VBA Copy draft email to a new email - attachments not copided

Status
Not open for further replies.

George Papaikonomou

New Member
Outlook version
Outlook 2016 64 bit
Email Account
IMAP
Hi,

I am writing a VBA script to create a new from a draft email - yes I know I can save it as a template and use it that way - but that is not what I want.
Below is the code.
The draft has a series of embedded gif images.
The scirpt kind of works , it creates the new email but the embedded gif are missing.
How can I copy them as well - replicate the draft to a new email message?

Sub Draft2Mail()


Dim x As Integer
Dim objOL As Outlook.Application
Dim objSelection As Outlook.Selection
Dim objItem As Object
Set objOL = Outlook.Application

'Get the selected item
Select Case TypeName(objOL.ActiveWindow)
Case "Explorer"
Set objSelection = objOL.ActiveExplorer.Selection
If objSelection.Count > 0 Then
Set objItem = objSelection.item(1)
Else
Result = MsgBox("No item selected. " & _
"Please make a selection first.", _
vbCritical, "Draft2Mail")
Exit Sub
End If

Case "Inspector"
Set objItem = objOL.ActiveInspector.CurrentItem

Case Else
Result = MsgBox("Unsupported Window type." & _
vbNewLine & "Please make a selection" & _
"in the Draft folder or open an item first.", _
vbCritical, "Draft2Mail")
Exit Sub
End Select

Dim olDraft As Outlook.MailItem
Dim olNewMail As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set olNewMail = Outlook.CreateItem(olMailItem)

'Copy the desired details to a new email item
If objItem.Class = olMail Then
Set olDraft = objItem
Debug.Print olDraft.Attachments.Count

With olNewMail
.To = olDraft.To
.CC = olDraft.CC
.BCC = olDraft.BCC
.Importance = olDraft.Importance
.Subject = olDraft.Subject
.HTMLBody = olDraft.HTMLBody
'.Attachments = olDraft.Attachments '<-- This does not work..

End With

'Display the copy
olNewMail.Display

Else

Result = MsgBox("No draft email item selected. " & _
"Please make a selection first.", _
vbCritical, "Draft2Mail")
Exit Sub
End If

'Clean up
Set objOL = Nothing
Set objItem = Nothing
Set olNewMail = Nothing
Set olDraft = Nothing

End Sub​
 
try removing the parts that creates the new message and replace it with this:
Set olDraft = objItem.Copy
'Display the copy
olDraft.Display

This will copy the entire message and the embedded images should work.
 
BTW, to copy attachments, you need to use code to save the attachments then add them. The macro at Reply or ReplyAll with Attachments has the copy attachments function and shows how to use it.
 
BTW, to copy attachments, you need to use code to save the attachments then add them. The macro at Reply or ReplyAll with Attachments has the copy attachments function and shows how to use it.

Hi Dianne
This is an interesting option with an error - let me explain.

If I select an draft email - without opening it - I get the error - "This Method can't be used with an inline response mail item" - Run-Time Error Code: -2147467259 (80004005).
upload_2016-5-12_12-56-47.png


BUT if I open the draft message it works,.
Is there a way to do it without open the draft message - inline method?

Thanks in advance.
Regards.
George
 
try removing the parts that creates the new message and replace it with this:
Set olDraft = objItem.Copy
'Display the copy
olDraft.Display

This will copy the entire message and the embedded images should work.

Hi Dianne
This is an interesting option with an error - let me explain.

If I select an draft email - without opening it - I get the error - "This Method can't be used with an inline response mail item" - Run-Time Error Code: -2147467259 (80004005).
upload_2016-5-12_12-56-47-png.1663


BUT if I open the draft message it works,.
Is there a way to do it without open the draft message - inline method?

Thanks in advance.
Regards.
George
 
Looks like my test machine had inline replies disabled. I'll need to check on that.

I tried opening the draft via code, then making a copy - but it works if i step through the code but not when i run it.

If objItem.Class = olMail Then
objItem.Display
Set objItem = objOL.ActiveInspector.CurrentItem
Set olDraft = objItem.Copy
objItem.Close olSave
 
Looks like my test machine had inline replies disabled. I'll need to check on that.

I tried opening the draft via code, then making a copy - but it works if i step through the code but not when i run it.

If objItem.Class = olMail Then
objItem.Display
Set objItem = objOL.ActiveInspector.CurrentItem
Set olDraft = objItem.Copy
objItem.Close olSave


Hi,

Tried that and I get an error 438, object not supported...
upload_2016-5-12_13-47-13.png
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
Z VBA to convert email to task, insert text of email in task notes, and attach copy of original email Outlook VBA and Custom Forms 4
B Outlook Business Contact Manager with SQL to Excel, User Defined Fields in BCM don't sync in SQL. Can I use VBA code to copy 1 field to another? BCM (Business Contact Manager) 0
Diane Poremsky Copy New Appointments to Another Calendar using VBA Using Outlook 0
S VBA to identify a specific email and copy the attachment from it to the network Outlook VBA and Custom Forms 4
M How to copy attachments from a Public Folder in VBA Outlook VBA and Custom Forms 3
J VBA to copy sent items to folder Outlook VBA and Custom Forms 3
R How to copy outlook 2010 shared calendar appointment or meeting to personal calendar by vba? Outlook VBA and Custom Forms 1
B Mark copy of sent email as read - VBA? Outlook VBA and Custom Forms 3
H using VBA to edit subject line Outlook VBA and Custom Forms 0
G Get current open draft message body from VBA Outlook VBA and Custom Forms 1
Geldner Problem submitting SPAM using Outlook VBA Form Outlook VBA and Custom Forms 2
P VBA to add email address to Outlook 365 rule Outlook VBA and Custom Forms 0
M Outlook 2016 outlook vba to look into shared mailbox Outlook VBA and Custom Forms 0
V VBA Categories unrelated to visible calendar and Visual appointment Categories Outlook VBA and Custom Forms 2
D Outlook VBA forward the selected email to the original sender’s email ID (including the email used in TO, CC Field) from the email chain Outlook VBA and Custom Forms 2
R Outlook 365 VBA AUTO SEND WITH DELAY FOR EACH EMAIL Outlook VBA and Custom Forms 0
R Outlook 2019 VBA to List Meetings in Rooms Outlook VBA and Custom Forms 0
geoffnoakes Counting and/or listing fired reminders via VBA Using Outlook 1
O VBA - Regex - remove double line spacing Outlook VBA and Custom Forms 1
D.Moore Strange VBA error Outlook VBA and Custom Forms 4
B Modify VBA to create a RULE to block multiple messages Outlook VBA and Custom Forms 0
D Outlook 2021 Using vba code to delete all my spamfolders not only the default one. Outlook VBA and Custom Forms 0
K vba code to auto download email into a specific folder in local hard disk as and when any new email arrives in Inbox/subfolder Outlook VBA and Custom Forms 0
D VBA - unable to set rule condition 'on this computer only' Outlook VBA and Custom Forms 5
L Fetch, edit and forward an email with VBA outlook Outlook VBA and Custom Forms 2
BartH VBA no longer working in Outlook Outlook VBA and Custom Forms 1
W Can vba(for outlook) do these 2 things or not? Outlook VBA and Custom Forms 2
MattC Changing the font of an email with VBA Outlook VBA and Custom Forms 1
P MailItem.To Property with VBA not work Outlook VBA and Custom Forms 2
P Tweak vba so it can target another mailbox Outlook VBA and Custom Forms 1
A Outlook 2010 VBA fails to launch Outlook VBA and Custom Forms 2
richardwing Outlook 365 VBA to access "Other Actions" menu for incoming emails in outlook Outlook VBA and Custom Forms 0
W Create a Quick Step or VBA to SAVE AS PDF in G:|Data|Client File Outlook VBA and Custom Forms 1
J Outlook Rules VBA Run a Script - Multiple Rules Outlook VBA and Custom Forms 0
C Outlook (desktop app for Microsoft365) restarts every time I save my VBA? Using Outlook 1
D VBA Macro to Print and Save email to network location Outlook VBA and Custom Forms 1
TedSch Small vba to kill political email Outlook VBA and Custom Forms 3
E Outlook 365 Outlook/VBA Outlook VBA and Custom Forms 11
N VBA Macro To Save Emails Outlook VBA and Custom Forms 1
Z VBA Forward vs manual forward Outlook VBA and Custom Forms 2
J VBA Cannot programmatically input or change Value for User Defined field Using Outlook 1
J VBA for outlook to compare and sync between calendar Outlook VBA and Custom Forms 1
A Any way to force sort by/group by on search results with VBA? Outlook VBA and Custom Forms 1
E Default shape via VBA Outlook VBA and Custom Forms 4
A Change settings Send/receive VBA Outlook VBA and Custom Forms 0
Z Import Tasks from Access Using VBA including User Defined Fields Outlook VBA and Custom Forms 0
E Outlook VBA change GetDefaultFolder dynamically Outlook VBA and Custom Forms 6
justicefriends How to set a flag to follow up using VBA - for addressee in TO field Outlook VBA and Custom Forms 11
M add new attendee to existing meetings with VBA Outlook VBA and Custom Forms 5
D VBA code to select a signature from the signatures list Outlook VBA and Custom Forms 3

Similar threads

Back
Top