I am currently developping a MS Access DB under 2000 format.
I have a table containing clients information including e-mail addresses.
Now i want to be able to send email to them.
The email MUST contain images and text formatting. I was hoping to do it with HTML since it's easy and i have experience with that.
I've been trying the DoCmd.SendObject method. Unfortunately, when i send stuff (like a report) in HTML format, it is attached to the main email. I want the HTML to be displayed in the email body.
Also, with the DoCmd.SendObject method, HTML tags specified as the "[message text]" are not parsed in the email client and are simply outputted as "<html><body>..."
I know (and i can figure out) correct algorithms for mass mailing. I want a solution to EASILY send emails with HTML as body.
The mail client should be MS Outlook with very high preference. I was hoping to find a solution which wasn't relying on third party software. Also note that the security confirmation request which appeared in the later MS security patches isn't a problem, I can bear clicking on each of them.
I have gone throgh this before, and seemed to take the hard way, but I couldn't get through any other way,
So here is my Lengthy way (for the Images, see the End part):
Private Sub Command1_Click()
'1+++++
'You have to output your Report and save it on a disk drive.
'You can do it with HTML to maintain the Report Format.
DoCmd.OutputTo acOutputReport, "YourReportName", acFormatHTML, "c:\YourReportOutput.HTML"
'2+++++
'Now we will open this file and read the contenet of it in a String Variable called FullText
Dim MyString
Open "c:\YourReportOutput.HTML"
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, MyString ' Read each Line into MyString variable.
FullText = FullText & MyString 'Put all the Lines read into one String, FullText
Loop
Close #1 ' Close file.
'3+++++
'In Outlook, go to Tools>Option>Mail Format>HTML (use this message format)
'Why HTML, because the base of it is Text, but the output is formated HTML
'We need to have a String to put in the .HTMLBody, not a file
Dim ol As New Outlook.Application
Dim olMail As Outlook.MailItem
Set olMail = ol.CreateItem(olMailItem)
With olMail
.To = "who@where.com"
'.CC = strCC
'.BCC = "address2@aa.com"
'.Attachments.Add "c:\somefile.txt"
'.Attachments.Add "c:\somefile2.txt"
.Subject = "Testing"
.HTMLBody = FullText '"c:\CVPrint1.HTML"
'.Body = "This is the body..."
'.Display
.Send
End With
Set olMail = Nothing
Set ol = Nothing
End Sub
-----------------
Although a bit long, but it will get your HTML file in the Body of your Outlook Email,
but unfortunatly, Access will not output the images in the Report, so
A way around this is, to upload your images to your server, and point the image in the email to that url, for example:
<IMG height=56 alt="Experts Exchange" src="http://www.experts-exchange.com/images/logo.gif" width=742>
jaffer