Avatar billede o-zone Nybegynder
28. maj 2008 - 11:32 Der er 2 kommentarer og
1 løsning

Hvordan slipper jeg for char hex encoding

Hej med jer...

Jeg forsøger at bruge SMTPsvg.Mailer til at sende en multipart email med en html-del og en tekst-del.
Det fungerer fint for mig, bortset fra at min body tekst bliver encoded så der står "=E6" istedet for "æ", "=F8" istedet for "ø" osv.

Jeg kan:
1) Ikke finde ud af hvad det er den encoding hedder (Url encoding er noget med "%nn", HTML encoding er noget med "&#nn;" ... hvad pokker hedder den encoding der bruger "=nn"? nn er hex ascii værdien for tegnet - men jeg synes ikke rigtigt at jeg kan finde noget om det på google :-(

2) Ikke finde ud af hvordan jeg slipper for den encoding. Jeg vil helst have min tekst ud i helt almindelig iso-8859-1 eller noget lignende. Tidligere sendte jeg kun text/html ud, og da virkede det af en eller anden grund fint.

Er der nogen som kan hjælpe mig?

Hvis der er nogen som er interesseret i noget kode (som rent faktisk sender en korrekt (men idiotisk encoded) multipart email med text/html og text/plain besked, så er min funktion her:

---8<----------
Function sendMail(email, subject, bodyHTML, bodyPlain)
    Set Mailer    = CreateObject("SMTPsvg.Mailer")
    Mailer.RemoteHost    = "sendmailserver.domæne.dk"
    Mailer.FromName        = "Afsendernavn"
    Mailer.FromAddress    = "afsender@domæne.dk"
    Mailer.CharSet        = 2
    Mailer.Encoding    = 2
    Mailer.ContentType = "multipart/alternative; boundary=""----xxxxxx"""
    Mailer.AddExtraHeader "X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600"
    Mailer.AddRecipient      "",email
    Mailer.Subject        = subject
   
  Dim TEXT_HEADER, HTML_HEADER, MP_FOOTER, strBody
  TEXT_HEADER = "------xxxxxx" & VBCrLf & "Content-Type: text/plain;" & VBCrLf & "charset=""iso-8859-1""" & VBCrLf & "Content-Transfer-Encoding: 8bit" & VBCrLf & VBCrLf
  HTML_HEADER = "------xxxxxx" & VBCrLf & "Content-Type: text/html;" & VBCrLf & "charset=""iso-8859-1""" & VBCrLf & "Content-Transfer-Encoding: 8bit" & VBCrLf & VBCrLf
  MP_FOOTER  = "------xxxxxx--" & VBCrLf

    strBody =  HTML_HEADER & bodyHTML & VBCrLf & TEXT_HEADER & bodyPlain & VBCrLf & MP_FOOTER
    Mailer.BodyText = strBody

    If Mailer.SendMail Then
        sendMail = true
    Else
        sendMail = false
    End If
   
    set Mailer = nothing
End Function
---8<----------
(Jeg har klampet funktionen ud af konteksten og rettet den lidt til, så hvis den ikke virker alligevel, er det fordi mine ud af hovedet rettelser er forkerte - i så fald må I meget gerne skrive det, så jeg kan få rettet det ind!)

/o-zone
Avatar billede o-zone Nybegynder
28. maj 2008 - 15:54 #1
Nu har jeg selv fundet frem til at den encoding hedder "quoted-printable encoding" eller "QP encoding" ... men jeg ved stadig ikke hvordan jeg slipper for det? :-(
Avatar billede o-zone Nybegynder
28. maj 2008 - 15:56 #2
...så der er altså stadig det spørgsmål tilbage: Hvordan slår jeg SMTPsvg.Mailerens QP encoding fra? (og det er stadig 150 points værd!) :-/
Avatar billede o-zone Nybegynder
29. maj 2008 - 14:33 #3
Så lykkedes det mig sku alligevel at finde ud af det! :-)

Det viser sig at jeg vist ikke slipper uden om den her QP encoding (især ikke fordi jeg ikke kan undvære ligmed tegn (som trigger den her encoding) i min html kode!)

Men hvis jeg i hver subparts header angiver at "Content-Transfer-Encoding: quoted-printable", så forstår email klienterne at de skal QP decode beskeden inden den bliver vist.

- Jaeh - det ser jo egentlig temmelig simpelt ud, når først man ved det! :-P~
/o-zone
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester