VBA to prompt and send a CC

Status
Not open for further replies.

kcranmer

New Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
Hi,

I have this code as seen below that does everything I need it to do, however it puts the email address in the CC field and gives the error "the operation failed. The messaging interfaces have returned an unknown error. If the problem persists, restart Outlook. Can't resolve recipient" When I click ok, a few seconds passes and it resolves the name. If I don't use the full email address and substitute it with last name first name, I get the same error but it never figures out the email address. I would like to just add the email addresses in the CC field without needing to match it to the GAL which I think it's trying to do. Any ideas. Again, I just need it to prompt the question to CC the sending email to 2 email address and when I hit yes, it fills in the CC field and sends the email. Here is the code:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If TypeOf Item Is Outlook.MailItem Then
Dim olMsg As MailItem
Set olMsg = Item
Dim myRecipient As Outlook.Recipient
Dim Prompt As String


Prompt = "***Halt***" & vbNewLine & vbNewLine & _
"Do you want to CC this message to Leigh Ann & Cathy?"

If MsgBox(Prompt, vbYesNo + vbQuestion, "CC Leigh Ann & Cathy?") = vbYes Then
Set myRecipient = olMsg.Recipients.Add("email@email.com")
myRecipient.Type = olCC

End If

Set olMsg = Nothing

End If

End Sub
 

kcranmer

New Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
Try adding
myRecipient.resolve after the recipient type line and see if that fixes the problem.

I would probably just use item instead of setting it to olmsg - it shouldn't cause issues either way though.
Thank you. That worked. I need to add another email address. I tried a semi colon and comma but that didn't work. also tried adding another line with an email address but that didn't work either. I need to CC 2 people. Could you be so kind to help me out here as well?
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
Repeat this line twice:
Set myRecipient = olMsg.Recipients.Add("email@email.com")
myRecipient.Type = olCC

the Add part keeps any addresses already there - you only need resolve once, after both are added.
 

kcranmer

New Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
Hi, I actually had to add the line myRecipient.resolve after the both lines for the email addresses. If I just had it at the end, it only resolved the second email address.
It works now though. THANKS!
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
actually, it looks like you need resolve after each.

If you needed to do more than two, we could do a 'for each recipient in recipients... resolve... next' but with just 2, the code is about the same length either way.
 

Diane Poremsky

Senior Member
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
Hi, I actually had to add the line myRecipient.resolve after the both lines for the email addresses. If I just had it at the end, it only resolved the second email address.
It works now though. THANKS!
Heh... I didn't see your reply before i posted. with just 2, doing this way is easy enough.
 
Status
Not open for further replies.
Top