VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
(login to hide)
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

HTML ZENDEN VIA CDO - Oud Forum inhoud (alleen lezen)
U bevindt zich > Oude forum > Visual Basic 6.0 > Strings en text ... (VB 6.0) > Html zenden via CDO
Gepost door Mibe gepost op 22/10/2003 om 02:48

Hoi, vanuit een programma zend ik via de Cdo een email met Html format.

Dit werkt goed en vlot. Echter een probleem. Soms laat het ergens een spacie teveel achter. Daarmee wil ik zeggen, dat er in een zin een spacie staat waar oorspronkelijk niet is. Dit is niet zo erg, tot er een spacie terechtkomt in de Html code, wat ook soms gebeurd. Vb <TD> wordt <T D>. Daarmee geraakt heel mijn email in de war en trekt mijn tabel scheef.

Is dit een gekent probleem? Welke poort wordt er gebruikt? Hieronder de code die ik gebruik. (Windows XP Pro SP1,  VB6 SP5)

Dim iConf As New CDO.Configuration
Dim Flds As ADODB.Fields
Dim iMsg As New CDO.Message
   
    Set Flds = iConf.Fields
   
    With Flds
        .Item(cdoSendUsingMethod) = cdoSendUsingPort
        .Item(cdoSMTPServer) = StrServer
        'Use SSL to connect to the SMTP server:
        '.Item(cdoSMTPUseSSL) = True
        .Item(cdoSMTPConnectionTimeout) = 10
        .Update
    End With
   
    With iMsg
        Set .Configuration = iConf
        .To = RecList
        .From = StrSenderName & " <" & StrSender & ">"
        .Subject = strSubject
        .HTMLBody = strMessage
        '.TextBody = "This is the text body of the message..."
        
        .Send
    End With
    
    ' cleanup of variables
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing

Dank u!

Gepost door Lejo gepost op 28/10/2003 om 15:16

Ik gebruik ook CDO voor het versturen van e-mails en vind dat ook een ongelooflijk knappe en heel snelle manier om e-mails te versturen met een VB-programma. Wat ik doe is de tekst omzetten naar HTML-code. Ik doe dat pas op het moment dat ik het bericht wil versturen.

Hiermee bedoel ik: jou "strMessage" is bij mij in het begin nog een tekst met returns in zonder HTML-code, wanneer ik het doorgeef aan mijn functie voor het versturen van de e-mail.

In mijn code maak ik ook al een HTML-string aan op de volgende manier:
    strHTML = "<HTML>"
    strHTML = strHTML & "<HEAD>"
    strHTML = strHTML & "<BODY>"
    strHTML = strHTML & "" & Message & "</br>"
    strHTML = strHTML & "</BODY>"
    strHTML = strHTML & "</HTML>"

Daarna ga ik de returns (vbCrLf) vervangen door "<br>" op de volgende manier:
    With iMsg
      .To = account@visualbasic.be
      .From = me@visualbasic.be

      .HTMLBody = Replace(strHTML, vbCrLf, "<br>")
      .Send
  End With

Door op die manier te werken heb ik nog nooit een "onderbroken" HTML-tag gezien, zoals jij vertelt in je vraag. Waar dat vandaan zou komen kan ik je niet zo één twee drie zeggen. Is je e-mail soms langer dan 1024 tekens? Het zou daar aan kunnen liggen. Kan je dat eens nakijken ?

Wat ik wel heb ondervonden is dat e-mails in HTMLformaat verstuurd naar een hotmail account of een msn account onleesbaar zijn. Mijn code is dus zo:

        ' if hotmail or msn account -> do not use htmlbody
        If InStr(1, Recipient, "@hotmail") > 0 Then
            .TextBody = Message
        ElseIf InStr(1, Recipient, "@msn") > 0 Then
            .TextBody = Message
        Else
            .HTMLBody = Replace(strHTML, vbCrLf, "<br>")
        End If

De poort die ik gebruik is 25. Ik heb daar nog geen problemen mee gehad.

Ik hoop dat je er een beetje aan uit kan.

Gepost door Mibe gepost op 28/10/2003 om 16:40

Hoi,

Uw oplossing om een tekst pas later om te zetten, is niet mogelijk. Ik maak gebruik van tabellen om gegevens te plaatsen. Naargelang de aantal bestellingen groeit mijn tabel.

Voorbeeld:

Feedback op herinnering van Beirens Mike ingegeven door Mike

Titel feedback:
test

Detail feedback:
test

Betreft onderstaande herinnering:

Naam Mibe
Adres Ergenslaan 3
Gemeente 1000 Ergensstad
Telefoon
Gsm 0400/000000
Firma (Particulier)

Onderwerp: Even testen

Detail: Hallo, email zenden testen

--------------------------------------------------------
Message created by Pc-admin Remind-form

---------------------------------------------- ---------

(kies vervolgens openen)

U ziet dat nu onder Message created by... een spacie staat tussen de -----.
U ziet tevens dat de klant gegevens ook in een tabel zitten. (om u niet te laten tellen, 689 zichtbare karakters en in html inderdaad boven de 1024 nl: 1149. Nu valt de fout mee, maar soms is de hele tabel om aas. Neem es een TD uiteen, je zult zien, alles valt uiteen.

De replacement van vbcrlf - <br> voer ik ook uit, net voor het zenden naar emailform, dus als laatste opdracht.

Gepost door Lejo gepost op 29/10/2003 om 03:14

Jammer dat mijn antwoord niet heeft geholpen en ik kan geen reden (of regel) bedenken hoe die spatie er tussenkomt.

Ik vind je opmaak vet/niet vet, cursief/niet cursief wel mooi.

Ik blijf in ieder geval deze topic volgen, want ik ben benieuwd of er iemand anders op het forum een antwoord heeft.

Gepost door Mibe gepost op 30/10/2003 om 18:26

Hoi,

Heb es verder getest...

Net voor het zenden, laat ik de htmlcode es plaatsen in een textbox. Daar is de spacie dus niet te bespeuren...

Zou norton er iets mee te maken hebben, echter met norton de-actief is het probleem idem...

Ik heb nu ondervonden... Het is vanaf de 990ste karakter dat het een spacie laat, EN OOK MET .Text sending, dus gene HTML is de spacie op dezelfde plaats!

Start - Zoeken op oude forum

 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php