Hi, um I'm assuming you guys use Outlook to send emails. This is how I send emails and attachments by running Outlook through code:
If (Not lstrTo = vbNullString) Then
'<start outlook application>
Set lobjOutlook = CreateObject("Outlook.application"
'<create new mail item (0)>
Set lobjMail = lobjOutlook.createitem(0)
Let lobjMail.subject = lstrSubject
Let lobjMail.HTMLBody = lstrBody '<add body>
'Let lobjMail.SentOnBehalfOfName = lstrFrom
Let lobjMail.to = lstrTo '<apply To list>
'Let objMail.cc = lstrCc '<apply CC list>
'Let lobjMail.bcc = lstrBCC '<apply bcc list>
'<add attachments>
Set lobjAttachment = lobjMail.attachments
lobjAttachment.Add path1, , , <Description of the file>
lobjAttachment.Add path2, , , <Description of the file>
lobjAttachment.Add path3, , , <Description of the file>
lobjAttachment.Add path4, , , <Description of the file>
......
'lobjMail.display
lobjMail.send
lobjOutlook.Quit
End If
NOTE: A few lines of code are commented out, (i.e: .CC, .BCC, .SentOnBehalfOfName, and .display) because they are optional. There's no need to explain .CC and .BCC. As to the other two, .SentOnBehalfOfName allows you to put a string of your choice in the email's From Field instead of your email address, or email ID(however, the outlook has to be able to recognize it); and the .display method allows you to just open the outlook application with the previously determined settings (such as email message, attachments, subject) and it allows you to edit anything you want before sending the email. (Of course to use the .display method, the .send and .quit methods should be deleted)
I hope this helps you a little bit. If it doesn't, sorry for making you read such a long message

Good luck! --- Merlin