Have just recently finished putting together a bulk mailing application inside Excel to email preformatted html newsletters with embedded images. I learned a lot in the process and was able to solve a problem that has irritated me for years.
Previous research led me to the Micro$oft’s support website to this solution but it only attaches one of however many files you may have selected. I am now using a visual basic script file to replace the default MAPIMail link. It can send attachments via the explorer context menu in html format, with my default signature AND multiple attachments. It works for me with XP and Outlook 2007 so I hope it will for other versions of Outlook.
Create a new text document in Notepad, paste the code from below and save the file somewhere safe. Rename the file to “Mail Recipient.vbs”. Next create a shortcut and rename that to “Mail Recipient”. Customize the shortcut’s icon to the one found in C:/Windows/System32/Sendmail.dll and move your new shortcut to your “Send to” folder e.g. “C:\Documents and Settings\Stephen\SendTo\Mail Recipient.lnk”. Rather don’t delete the original MAPIMail link, just change it’s attributes to hidden (you may want it back again later).
Option Explicit
Dim objArgs, OutApp, oNameSpace, oInbox, oEmailItem, olMailItem
Dim a, oAttachments, subjectStr, olFormatHTML
olMailItem = 0
olFormatHTML = 2
Set objArgs = WScript.Arguments 'gets paths of selected files
Set OutApp = CreateObject("Outlook.Application") 'opens Outlook
Set oEmailItem = OutApp.CreateItem(olMailItem) ' opens new email
For a = 0 to objArgs.Count - 1
Set oAttachments = oEmailItem.Attachments.Add(objArgs(a))
subjectStr = subjectStr & Right(objArgs(a),Len(objArgs(a))-(InStrRev(objArgs(a),"\"))) & ", " 'recreates the default Subject e.g. Emailing: file1.doc, file2.xls
Next
If subjectStr = "" then subjectStr = "No Subject "
oEmailItem.Subject = "Emailing: " & Left(subjectStr, (Len(subjectStr)-2))
oEmailItem.BodyFormat = olFormatHTML
oEmailItem.Display