Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

HTML mail vanuit Excel met Visual Basic

None
4 antwoorden
  • Ik heb een Visual Basic script in Excel dat automatisch mailtjes stuurt naar mensen wiens e-mail adres in een Excel veld staat. Nu wil ik graag dit in HTML vorm doen zodat ik tabellen e.d. in de mail kan zetten. Hoe doe ik dit? Heb al rondgekeken op de Microsoft MSDN site, daar staat een voorbeeld met als object:

    [code:1:7187f1ee43]
    Dim myMail
    Set myMail = CreateObject("CDONTS.NewMail")
    Set myMail = CreateObject("CDONTS.NewMail")[/code:1:7187f1ee43]

    Terwijl ik nu gebruik:
    [code:1:7187f1ee43]
    Dim objNewMail As Outlook.MailItem
    Set golApp = New Outlook.Application
    Set objNewMail = golApp.CreateItem(olMailItem)[/code:1:7187f1ee43]

    Als ik het eerste gebruik krijg ik de foutmelding: ActiveX component can't create object, en bij het tweede weet ik al helemaal niet hoe ik het zou moeten aanpakken, weet iemand hoe ik wel een mail kan creëeren met html codes erin?
  • je moet het outlook OCX in je project laden, project-> references. De mailtjes met HTML stel je in outlook in, kan waarschijnlijk ook met VB, maar makkelijker is via Outlook zelf.
  • Probeer dit eens:

    NB: Zorg dat je inderdaad de CDONTS.dll in de references hebt aangevinkt anders loop je vast op de CreateObject regel:

    Set objMail = Server.CreateObject("CDONTS.NewMail")
    If objMail Is Nothing then
    Exit Function
    End If

    ' Configure mail object
    With objMail
    .BodyFormat = cdoBodyFormatHTML
    .Body = sMyMail
    .Send sFrom, sTo, sTopic, , cdoHigh
    End With

    Kijk ook eens naar deze link, je vind er ook verdere documentatie over CDONTS:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdo/html/_denali_bodyformat_property_cdonts_newmail_object_.asp

    Jurrian de Valk
    Sereon Technology
    www.sereon.com
  • [quote:f009825c2f="Emmerp"]Ik heb een Visual Basic script in Excel dat automatisch mailtjes stuurt naar mensen wiens e-mail adres in een Excel veld staat. Nu wil ik graag dit in HTML vorm doen zodat ik tabellen e.d. in de mail kan zetten. Hoe doe ik dit? Heb al rondgekeken op de Microsoft MSDN site, daar staat een voorbeeld met als object:

    [code:1:f009825c2f]
    Dim myMail
    Set myMail = CreateObject("CDONTS.NewMail")
    Set myMail = CreateObject("CDONTS.NewMail")[/code:1:f009825c2f]

    Terwijl ik nu gebruik:
    [code:1:f009825c2f]
    Dim objNewMail As Outlook.MailItem
    Set golApp = New Outlook.Application
    Set objNewMail = golApp.CreateItem(olMailItem)[/code:1:f009825c2f]

    Als ik het eerste gebruik krijg ik de foutmelding: ActiveX component can't create object, en bij het tweede weet ik al helemaal niet hoe ik het zou moeten aanpakken, weet iemand hoe ik wel een mail kan creëeren met html codes erin?[/quote:f009825c2f]
    Ten eerst zou ik MAPI gebruiken om mail te versturen. Deze methode is veel generieker. En zo beperk je je gebruikers niet alleen tot Outlook.

    http://www.vb-helper.com/howto_send_mapi_mail.html
    Vergeet de laatste opmerking op bovenstaande pagina, want die klopt niet.

    MAPI heeft wel als nadeel dat je geen HTML mail (voor zover ik weet) kan versturen. Dus niet echt een concrete oplossing …
    En dit is daarom ook de reden waarom HTML mail [i:f009825c2f]verneukt[/i:f009825c2f] verstuurd kan worden vanuit Outlook (Express).

    Hmm, dan toch maar de Microsoft Collaboration Data Objects (CDO) gebruiken. Een link staat in een reactie hierboven ergens.

    http://www.imibo.com/delphi/mapiorcdo.html

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.