Link to home
Start Free TrialLog in
Avatar of Sar1973
Sar1973Flag for Italy

asked on

Embed a .jpg picture in an email with VBA - truble passing from Outlook 2000 to 2003.

Hi I have developed a simple function that work perfectly with Access-Outlook 2000, but not with Access 2000-Outlook 2003.
It does everything but does not embed the image I would insert in preview with the line:
oHTML = "<HTML><Head></Head><Body><img SRC='" & oLettera & "' width=800 height=1130></Body></HTML>"
I have tried to insert CID parameters and other stuff, but with no result. Can you help, please?
Public Function InviaOutlookMailCampagne(oDestinatario As String, oOggetto As String, oLettera As String, oAllegato As String)
 
    Dim olkApp As Object, olkMsg As Object
    Dim oFile As String
    Dim oHTML As String
    Set olkApp = GetObject(, "Outlook.Application")
    '
    Set olkMsg = olkApp.CreateItemFromTemplate("L:\9.1.Campagne\Lettere\Modello emailing.oft")
    
    oHTML = "<HTML><Head></Head><Body><img SRC='" & oLettera & "' width=800 height=1130></Body></HTML>"
    
    With olkMsg
            .To = oDestinatario
            .Subject = oOggetto
            .HTMLBody = oHTML
            '.body = oMessaggio
            '.Attachments.Add oLettera
            .Attachments.Add oAllegato
            .Save
    End With
    '
    Set olkMsg = Nothing
    Set olkApp = Nothing
    '
 
End Function

Open in new window

Avatar of Jeffrey Coachman
Jeffrey Coachman
Flag of United States of America image

Sar1973,

Try this code.
It is straight from the MS website.

It works fine for me.

Please verify that it works "As Is".
Then try to adapt it to work in your Application.

You must set a reference to the Outlook Object Library in your VBA Editor.

JeffCoachman

Sub sbSendMessage()
Dim objOutlook                  As Outlook.Application
Dim objOutlookMsg               As Outlook.MailItem
Dim objOutlookRecip             As Outlook.Recipient
Dim objOutlookAttach            As Outlook.Attachment
 
 
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
    With objOutlookMsg
        ' Add the To recipient(s) to the message. Substitute
        ' your names here.
        Set objOutlookRecip = .Recipients.Add("Recipient Name")   '<--Recipient's name or email address
        objOutlookRecip.Type = olTo
        ' Add the CC recipient(s) to the message.
        'Set objOutlookRecip = .Recipients.Add("CC Recipient Name")
        'objOutlookRecip.Type = olCC
        ' Set the Subject, Body, and Importance of the message.
        .Subject = "This is an Automation test with Microsoft Outlook"      '<--Subject
        '.Body = "This is normal Text in the Body of the email"              '<--Email Body text.
        'Use this to send the Email using the HTML Format
        '.HTMLBODY = "<HTML><H2><b>This is HTML Text in the BODY of the email</b></H2></HTML>"
        .HTMLBODY = "<HTML><Head></Head><Body><img SRC=c:\earth.jpg></Body></HTML>"
 
        .Importance = olImportanceHigh  'High importance
        'Add attachments to the message.
        'Set objOutlookAttach = .Attachments.Add("C:\Earth.jpg")             '<-- Add as many attachments as you need here.
        'Set objOutlookAttach = .Attachments.Add("C:\TextFile.txt")
        
        ' Resolve each Recipient's name.
        For Each objOutlookRecip In .Recipients
            If Not objOutlookRecip.Resolve Then
                objOutlookMsg.Display
            End If
        Next
        
        'Send email without viewing it.
        '.Send
        
        'Dispay email before sending.
        .Display
    
    End With
 
'Cleanup Code
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
Set objOutlookRecip = Nothing
Set objOutlookAttach = Nothing
 
End Sub

Open in new window

Of course change the HTLM and add your own image and path.
Avatar of Sar1973

ASKER

Definitely, the syntax is <img SRC=C:\File.jpg> and not <img SRC='C:\File.jpg'> ...?
ASKER CERTIFIED SOLUTION
Avatar of Jeffrey Coachman
Jeffrey Coachman
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial