HTMLBody with images

T

Tim Johnson

Hi there,

I am working on the development of a database (Access). I think that
because the issues I'm having are outlook related, though, that this is the
appropriate place for posting this.

I use a VBA sub to create an instance of Outlook by which I send
"personalized" emails. Most of these emails are designed using Word and
include images, then are saved as HTML files. My code is currently:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile,1)
strText = bdy.readall

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With

The email's body & formatting come through just fine, but the images are
broken links (it appears from the source as though they're tring to link to a
local location).

Is there a way to include the images without having to post them on the
internet each time?

Thanks in advance
 
M

Michael Bauer [MVP - Outlook]

Here's a sample, based on a template from Dmitry Streblchenko:
http://www.vboffice.net/sample.html?mnu=2&smp=29&cmd=showitem

For that sample you need the Redemption (www.dimastr.com).

Call AddEmbeddedAttachment with

-> Mail: Outlook MailItem
-> File: Full file name of the image file
-> [PositionID]: You can insert a placeholder into the e-mails HTMLBody and
pass that placeholder here. The image then would be placed at that position.
If there's no placeholder the image would be inserted at the end.
-> [Description]: Optional description for the image


--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 16:44:00 -0800 schrieb Tim Johnson:
 
T

Tim Johnson

Thank you for your rapid response, Michael.

Unfortunately, I'm doing this as a favor for a friend, and am not able to
drop $200 on Redemption for this project.

I have made some code that will actually link to the url's after being
unable to find answers on the web (I've pasted my code below), but it's very
limited (and, at the moment, requires the original images to be jpg files).
If anyone knows where I can find some more efficient solutions, please let me
know. Here's the code:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile)
strText = bdy.readall

intSearch = 1
intPicNum = 0
strText = Right(strText, Len(strText) - InStr(1, strText, "<body") + 1)
Do While intSearch < Len(strText)
If InStr(intSearch, strText, "img") = 0 Then
intSearch = Len(strText)
Else:
intSearch = InStr(intSearch, strText, "img")
intPicNum = intPicNum + 1
MsgBox (InStr(intSearch, strText, "jpg"))
MsgBox (InStr(intSearch + 70, strText, "jpg"))
strText = Left(strText, InStr(intSearch, strText, "src=") + 4) &
InputBox_("Pictures sent through this utility MUST be linked to a picture on
the internet." &_ Chr(13) & "Please enter the FULL web address for picture
no. " &_ intPicNum, "Picture Location") & Right(strText, Len(strText) -
InStr(intSearch,_ strText, "jpg") - 2)
intSearch = intSearch + 4
End If
Loop

Do While IsNull(Me.Email) = False
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = CreateItem(olMailItem)

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With
DoCmd.GoToRecord , , acNext
Loop


I hope this helps someone who may stumble on this...it's still pretty
limited, though.

Michael Bauer said:
Here's a sample, based on a template from Dmitry Streblchenko:
http://www.vboffice.net/sample.html?mnu=2&smp=29&cmd=showitem

For that sample you need the Redemption (www.dimastr.com).

Call AddEmbeddedAttachment with

-> Mail: Outlook MailItem
-> File: Full file name of the image file
-> [PositionID]: You can insert a placeholder into the e-mails HTMLBody and
pass that placeholder here. The image then would be placed at that position.
If there's no placeholder the image would be inserted at the end.
-> [Description]: Optional description for the image


--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 16:44:00 -0800 schrieb Tim Johnson:
Hi there,

I am working on the development of a database (Access). I think that
because the issues I'm having are outlook related, though, that this is the
appropriate place for posting this.

I use a VBA sub to create an instance of Outlook by which I send
"personalized" emails. Most of these emails are designed using Word and
include images, then are saved as HTML files. My code is currently:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile,1)
strText = bdy.readall

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With

The email's body & formatting come through just fine, but the images are
broken links (it appears from the source as though they're tring to link to a
local location).

Is there a way to include the images without having to post them on the
internet each time?

Thanks in advance
 
T

Tim Johnson

Ooops...apparently I left some testing MsgBox's in there! Lol. Also, if
someone does decide to use this in conjunction with Word, be sure to save
your document as Formatted HTML.

Tim Johnson said:
Thank you for your rapid response, Michael.

Unfortunately, I'm doing this as a favor for a friend, and am not able to
drop $200 on Redemption for this project.

I have made some code that will actually link to the url's after being
unable to find answers on the web (I've pasted my code below), but it's very
limited (and, at the moment, requires the original images to be jpg files).
If anyone knows where I can find some more efficient solutions, please let me
know. Here's the code:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile)
strText = bdy.readall

intSearch = 1
intPicNum = 0
strText = Right(strText, Len(strText) - InStr(1, strText, "<body") + 1)
Do While intSearch < Len(strText)
If InStr(intSearch, strText, "img") = 0 Then
intSearch = Len(strText)
Else:
intSearch = InStr(intSearch, strText, "img")
intPicNum = intPicNum + 1
MsgBox (InStr(intSearch, strText, "jpg"))
MsgBox (InStr(intSearch + 70, strText, "jpg"))
strText = Left(strText, InStr(intSearch, strText, "src=") + 4) &
InputBox_("Pictures sent through this utility MUST be linked to a picture on
the internet." &_ Chr(13) & "Please enter the FULL web address for picture
no. " &_ intPicNum, "Picture Location") & Right(strText, Len(strText) -
InStr(intSearch,_ strText, "jpg") - 2)
intSearch = intSearch + 4
End If
Loop

Do While IsNull(Me.Email) = False
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = CreateItem(olMailItem)

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With
DoCmd.GoToRecord , , acNext
Loop


I hope this helps someone who may stumble on this...it's still pretty
limited, though.

Michael Bauer said:
Here's a sample, based on a template from Dmitry Streblchenko:
http://www.vboffice.net/sample.html?mnu=2&smp=29&cmd=showitem

For that sample you need the Redemption (www.dimastr.com).

Call AddEmbeddedAttachment with

-> Mail: Outlook MailItem
-> File: Full file name of the image file
-> [PositionID]: You can insert a placeholder into the e-mails HTMLBody and
pass that placeholder here. The image then would be placed at that position.
If there's no placeholder the image would be inserted at the end.
-> [Description]: Optional description for the image


--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 16:44:00 -0800 schrieb Tim Johnson:
Hi there,

I am working on the development of a database (Access). I think that
because the issues I'm having are outlook related, though, that this is the
appropriate place for posting this.

I use a VBA sub to create an instance of Outlook by which I send
"personalized" emails. Most of these emails are designed using Word and
include images, then are saved as HTML files. My code is currently:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile,1)
strText = bdy.readall

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With

The email's body & formatting come through just fine, but the images are
broken links (it appears from the source as though they're tring to link to a
local location).

Is there a way to include the images without having to post them on the
internet each time?

Thanks in advance
 
M

Michael Bauer [MVP - Outlook]

For private use Redemption is for free. But you could also adapt the code
and work with CDO 1.21 instead of Redemption in this case.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)

Am Wed, 31 Jan 2007 00:15:01 -0800 schrieb Tim Johnson:
Thank you for your rapid response, Michael.

Unfortunately, I'm doing this as a favor for a friend, and am not able to
drop $200 on Redemption for this project.

I have made some code that will actually link to the url's after being
unable to find answers on the web (I've pasted my code below), but it's very
limited (and, at the moment, requires the original images to be jpg files).
If anyone knows where I can find some more efficient solutions, please let me
know. Here's the code:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile)
strText = bdy.readall

intSearch = 1
intPicNum = 0
strText = Right(strText, Len(strText) - InStr(1, strText, "<body") + 1)
Do While intSearch < Len(strText)
If InStr(intSearch, strText, "img") = 0 Then
intSearch = Len(strText)
Else:
intSearch = InStr(intSearch, strText, "img")
intPicNum = intPicNum + 1
MsgBox (InStr(intSearch, strText, "jpg"))
MsgBox (InStr(intSearch + 70, strText, "jpg"))
strText = Left(strText, InStr(intSearch, strText, "src=") + 4) &
InputBox_("Pictures sent through this utility MUST be linked to a picture on
the internet." &_ Chr(13) & "Please enter the FULL web address for picture
no. " &_ intPicNum, "Picture Location") & Right(strText, Len(strText) -
InStr(intSearch,_ strText, "jpg") - 2)
intSearch = intSearch + 4
End If
Loop

Do While IsNull(Me.Email) = False
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = CreateItem(olMailItem)

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With
DoCmd.GoToRecord , , acNext
Loop


I hope this helps someone who may stumble on this...it's still pretty
limited, though.

Michael Bauer said:
Here's a sample, based on a template from Dmitry Streblchenko:
http://www.vboffice.net/sample.html?mnu=2&smp=29&cmd=showitem

For that sample you need the Redemption (www.dimastr.com).

Call AddEmbeddedAttachment with

-> Mail: Outlook MailItem
-> File: Full file name of the image file
-> [PositionID]: You can insert a placeholder into the e-mails HTMLBody and
pass that placeholder here. The image then would be placed at that position.
If there's no placeholder the image would be inserted at the end.
-> [Description]: Optional description for the image


--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 16:44:00 -0800 schrieb Tim Johnson:
Hi there,

I am working on the development of a database (Access). I think that
because the issues I'm having are outlook related, though, that this is the
appropriate place for posting this.

I use a VBA sub to create an instance of Outlook by which I send
"personalized" emails. Most of these emails are designed using Word and
include images, then are saved as HTML files. My code is currently:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile,1)
strText = bdy.readall

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With

The email's body & formatting come through just fine, but the images are
broken links (it appears from the source as though they're tring to link to a
local location).

Is there a way to include the images without having to post them on the
internet each time?

Thanks in advance
 
S

Sue Mosher [MVP-Outlook]

For a CDO example, see http://www.outlookcode.com/d/code/htmlimg.htm

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers


Michael Bauer said:
For private use Redemption is for free. But you could also adapt the code
and work with CDO 1.21 instead of Redemption in this case.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)

Am Wed, 31 Jan 2007 00:15:01 -0800 schrieb Tim Johnson:
Thank you for your rapid response, Michael.

Unfortunately, I'm doing this as a favor for a friend, and am not able to
drop $200 on Redemption for this project.

I have made some code that will actually link to the url's after being
unable to find answers on the web (I've pasted my code below), but it's very
limited (and, at the moment, requires the original images to be jpg files).
If anyone knows where I can find some more efficient solutions, please let me
know. Here's the code:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile)
strText = bdy.readall

intSearch = 1
intPicNum = 0
strText = Right(strText, Len(strText) - InStr(1, strText, "<body") + 1)
Do While intSearch < Len(strText)
If InStr(intSearch, strText, "img") = 0 Then
intSearch = Len(strText)
Else:
intSearch = InStr(intSearch, strText, "img")
intPicNum = intPicNum + 1
MsgBox (InStr(intSearch, strText, "jpg"))
MsgBox (InStr(intSearch + 70, strText, "jpg"))
strText = Left(strText, InStr(intSearch, strText, "src=") + 4) &
InputBox_("Pictures sent through this utility MUST be linked to a picture on
the internet." &_ Chr(13) & "Please enter the FULL web address for picture
no. " &_ intPicNum, "Picture Location") & Right(strText, Len(strText) -
InStr(intSearch,_ strText, "jpg") - 2)
intSearch = intSearch + 4
End If
Loop

Do While IsNull(Me.Email) = False
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = CreateItem(olMailItem)

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With
DoCmd.GoToRecord , , acNext
Loop


I hope this helps someone who may stumble on this...it's still pretty
limited, though.

Michael Bauer said:
Here's a sample, based on a template from Dmitry Streblchenko:
http://www.vboffice.net/sample.html?mnu=2&smp=29&cmd=showitem

For that sample you need the Redemption (www.dimastr.com).

Call AddEmbeddedAttachment with

-> Mail: Outlook MailItem
-> File: Full file name of the image file
-> [PositionID]: You can insert a placeholder into the e-mails HTMLBody and
pass that placeholder here. The image then would be placed at that position.
If there's no placeholder the image would be inserted at the end.
-> [Description]: Optional description for the image


--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?productid=300120654&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 16:44:00 -0800 schrieb Tim Johnson:

Hi there,

I am working on the development of a database (Access). I think that
because the issues I'm having are outlook related, though, that this is
the
appropriate place for posting this.

I use a VBA sub to create an instance of Outlook by which I send
"personalized" emails. Most of these emails are designed using Word and
include images, then are saved as HTML files. My code is currently:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set bdy = FSO.OpenTextFile(strFile,1)
strText = bdy.readall

With objMail
.To = strTo
.Subject = strSubject
.HTMLBody = strText
.Send
End With

The email's body & formatting come through just fine, but the images are
broken links (it appears from the source as though they're tring to link
to a
local location).

Is there a way to include the images without having to post them on the
internet each time?

Thanks in advance
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top