Hi. I'm using Microsoft Outlook 2000 to send e-mails with multiple recipients, multiple CCs and multiple attachments. I was able to make this code work. It can now send to multiple recipients but I cannot add multiple CCs in the e-mail. The code only adds the last email address that I pass as a parameter. How to I make it add all the CCs?
[vba]Option Compare Database
Public Sub SendMultiple(ByVal aSubject As String, ByVal aRecipients As String, ByVal aRecipients2 As String, _
Optional ByVal aBody As String = "", Optional ByVal aAttachments As String = "", Optional ByVal aRootPath As String = "")
Dim myO As Outlook.Application
Dim mobjNewMessage As Outlook.MailItem
Dim sRecipient, sAttachment, sRecipient2, sDisplayName As String
Dim iMarker, iMarker2, iMarker3 As Integer
On Error GoTo Error_SendEMail
Set myO = CreateObject("Outlook.Application")
Set mobjNewMessage = myO.CreateItem(olMailItem)
mobjNewMessage.subject = aSubject
mobjNewMessage.Body = aBody
' Loop through ; separated recipients
Do
iMarker = InStr(1, aRecipients, ";", vbTextCompare)
If iMarker = 0 Then
sRecipient = aRecipients
Else
sRecipient = Mid(aRecipients, 1, iMarker - 1)
aRecipients = Mid(aRecipients, iMarker + 1)
End If
If Len(sRecipient) <> 0 Then mobjNewMessage.Recipients.Add sRecipient
Loop While iMarker <> 0
' Loop through ; separated CCs
Do
iMarker3 = InStr(1, aRecipients2, ";", vbTextCompare)
If iMarker3 = 0 Then
sRecipient2 = aRecipients2
Else
sRecipient2 = Mid(aRecipients2, 1, iMarker3 - 1)
aRecipients2 = Mid(aRecipients2, iMarker3 + 1)
End If
If Len(sRecipient2) <> 0 Then mobjNewMessage.CC = sRecipient2
Loop While iMarker3 <> 0
' Loop through ; separated attachments - also look for ***DisplayName
Do
iMarker = InStr(1, aAttachments, ";", vbTextCompare)
If iMarker = 0 Then
sAttachment = aAttachments
Else
sAttachment = Mid(aAttachments, 1, iMarker - 1)
aAttachments = Mid(aAttachments, iMarker + 1)
End If
If Len(sAttachment) <> 0 Then
' Is there an embedded display name?
iMarker2 = InStr(1, sAttachment, "***", vbTextCompare)
If iMarker2 <> 0 Then
sDisplayName = Mid(sAttachment, iMarker2 + 3)
sAttachment = aRootPath + Mid(sAttachment, 1, iMarker2 - 1)
If StrComp(Dir(sAttachment), "", vbTextCompare) <> 0 Then _
mobjNewMessage.Attachments.Add sAttachment, , , sDisplayName
Else
If StrComp(Dir(aRootPath + sAttachment), "", vbTextCompare) <> 0 Then _
mobjNewMessage.Attachments.Add aRootPath + sAttachment
End If
End If
Loop While iMarker <> 0
' Send the message
mobjNewMessage.Display
Exit_SendEMail:
Set mobjNewMessage = Nothing
Set myO = Nothing
Exit Sub
Error_SendEMail:
MsgBox Err.Description, , "Send Mail Error"
Resume Exit_SendEMail
End Sub[/vba]
I call this function to send e-mail
[vba]Call SendMultiple("Subject", "recipient1@email.com; recipient2@email.com", _
"carbon1@email.com; carbon2@email.com", "Body here", _
"C:\Documents and Settings\user\Desktop\attachment.xls; C:\Documents and Settings\user\Desktop\attachment2.xls ")[/vba]