JMail
Skrevet af d. 7/12-2017 07:35

JMail

JMail bruges til at sende emails via ASP. Det er et meget avanceret script, men samtidig meget brugervenligt og er langt bedre end vores CGI mail script. Her følger et lille eksempel.

Kode

<%
    Set JMail           = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = "websmtp.dit-domaene.dk"
    JMail.Sender        = "admin@dit-domaene.dk"
    JMail.Subject       = "Information"
    JMail.AddRecipient "admin@dit-domaene.dk" 
    JMail.Priority      = 3
    JMail.AddHeader     "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
    
     ********** Her starter selve email-en
    JMail.Body = "Dette er linie 1 af brevet" & vbCrLf &_
                "Og her kommer linie 2" 
     ********** Her slutter selve email-en
    
    JMail.Execute
    
    Set JMail = Nothing
%>

<html><body>

    <%=Response.Write("Emailen er sendt!")%>

</body></html>

Hvordan gør jeg?

  1. Gem koden med filnavnet info.asp
  2. Ret de med fed markerede felter.
  3. Upload filen til dit webhotel og browse siden, så sender den en email til admin@...

Hvis du vil vide mere eller lære lidt om hvordan man bruger forms til f.eks. en bestillings formular, så kig på tech.dimac.net.

Brug af Jmail til afsendelse fra formularer

Hvis du indlægger nedenstående kode i dit script vil alle felter fra en formular der sender (POSTer) til dit JMail script blive lagt ind i e-mailen.

<%
' Løkke der gennemløber alle formularens felter.
For intT = 1 To Request.Form.Count

  ' Vi henter indholdet af feltet ind i en midlertidig variabel (strTemp).
  strTemp = Request.Form.Key(intT)

  ' Vi indsætter et mellemrum forrest i linien indtil linien er
  ' 30 karakterer lang, så alle svarene bliver venstrejusteret i e-mailen.
  Do While Len(strTemp) < 30
    strTemp = strTemp & " "
  Loop

  ' Vi lægger strTemp ind i e-mailen.
  JMail.AppendText(strTemp & ": " & Request.Form.Item(intT) & vbCrLf)

Next
%>

Brug af Jmail til at sende e-mails med vedhæftninger

Brug en af følgende linjer, hvis du vil tilføje en vedhæftning til din e-mail:

' Syntaks for JMail attachment metoder
' AddAttachment(FileName, isInline, ContentType)
' AddCustomAttachment(FileName, Data, isInline)
' AddURLAttachment(URL, AttachAs, isInline, Authentication)

' Tilføj en fil som vedhæftning (attachment)
JMail.AddAttachment "d:\home\FTPBrugernavn\www\attachment.txt"

' Tilføj en fil som HTML inline og returner ID-en
intID = JMail.AddAttachment("d:\home\FTPBrugernavn\www\attachment.txt", True)

' Tilføj data fra en variabel som vedhæftning og giv den et filnavn
JMail.AddCustomAttachment "Oplysninger.txt", strText

' Hent og tilføj en hjemmeside som en vedhæftning og sæt et filnavn
JMail.AddURLAttachment "http://dit-domaene.dk/", "Hjemmeside.htm"

' Login, hent og tilføj en hjemmeside som en vedhæftning og sæt et filnavn
JMail.AddURLAttachment "http://dit-domaene.dk/admin/", "Hjemmeside.htm", False, "Brugernavn:kodeord"

FAQ

Kan jeg bruge pickup directory til JMail (nq, queuing)?

Nej, det findes ikke på vores webservere for øjeblikket. Du kan eventuelt følge med på projekter for at se om vi indfører det.

Object doesn't support this property or method: 'JMail.AddRecipient'

Bemærk at der ikke skal være et = tegn i denne linie!

JMail melder "jmail.SMTPMail (0x8000FFFF) The message was undeliverable. All servers failed to receive the message"?

Du skal bruge en korrekt afsender adresse, ellers kommer JMail med ovenstående fejlmeddelelse.

JMail laver "sære tegn" i headeren og nogle modtagere kan ikke læse mine emails?

I JMail 4.x skal du eventuelt sætte headeren: JMail.ISOEncodeHeaders = False
Er dette ikke nok, så prøv også med JMail.ContentTransferEncoding = "8bit"

Hvordan sikrer jeg mig at emails fra min webserver altid kommer igennem, selv hvis jeres SMTP server skulle være nede?

Da vores web SMTP servere kører i et cluster (flere maskiner der deles om opgaven) er det meget usandsynligt at du oplever problemet. Du får en bedre sikkerhed for at din email altid kommer frem via hjemmesiden, hvis du prøver flere servere inden det ender med en fejl til brugeren:
JMail.ServerAddress = "websmtp.dit-domaene.dk;websmtp.dit-domaene.dk"
Ovenstående fungerer således:

  1. Først prøves en server i clusteret websmtp.dit-domaene.dk.
  2. Svarer den første websmtp.dit-domaene.dk server ikke prøver vi igen, og bliver sendt til en tilfældig anden.
  3. Skulle den næste webmstp server heller ikke svare, bruger vi Andersen ITs backupserver.

JMail virker ikke, og jeg forstår ikke fejlmeddelsen. Hvordan debugger/logger jeg?

Følgende eksempel viser meget mere uddybende fejl på skærmen:

<% 
  Set JMail           = Server.CreateObject("JMail.SMTPMail")

  JMail.Logging = True
  JMail.Silent = True

  JMail.ServerAddress = "websmtp.dit-domaene.dk"
  JMail.Sender        = "admin@dit-domaene.dk"
  JMail.Subject       = "Information"
  JMail.AddRecipient  "admin@dit-domaene.dk"
  JMail.Priority      = 3
  JMail.AddHeader     "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

  ' ********** Her starter selve email-en
  JMail.Body = "Dette er linie 1 af brevet" & vbCrLf &_
               "Og her kommer linie 2"
  ' ********** Her slutter selve email-en

  If Not JMail.Execute Then
    Response.Write "ERROR MESSAGE: " & JMail.ErrorMessage & "<br/>" & vbCrLf
    Response.Write "ERROR SOURCE: " & JMail.ErrorSource & "<br/>" & vbCrLf
    Response.Write "LOG: <pre>" & JMail.Log & "</pre>" & vbCrLf
  Else
    Response.Write "<html><body>Emailen er sendt!</body></html>"  
  End If

  Set JMail = Nothing
%>

JMail smider hver 22-ende e-mail væk, hvorfor?

Når du sender e-mails fra hjemmesider via websmtp.dit-domaene.dk og JMail skal du huske at lukke din connection, minimum efter hver tyvende e-mail. Gør du ikke dette vil hver 22-ende e-mail i en løkke, ikke blive sendt. Herunder er et eksempel på en løkke, der laver en JMail.Close for hver 20-ende e-mail:

For i = 1 to intCount
  If Not JMail.Execute Then
    Response.Write("ERROR MESSAGE: " & JMail.ErrorMessage & "<br>" & vbCrLf)
    Response.Write("ERROR SOURCE: " & JMail.ErrorSource & "<br>" & vbCrLf)
    Response.Write("LOG: <pre>" & JMail.Log & "</pre>" & vbCrLf)
  End If
  If CInt(i/20) = i/20 Then JMail.Close
Next

Mit script laver 'timeout' inden min mail-udsendelse bliver færdig?

Du kan selv sætte timeout værdien for en .asp side. Følgende kode sætter timeout værdien til 10 minutter (600 sekunder): Server.ScriptTimeout = 600.

Jeg får "503 5.5.2 Need Rcpt command" eller "503 Incorrect command sequence"?

Det betyder at der ikke er en modtager eller der er fejl i modtager adressen. Tjek at du har en korrekt e-mail adresse i modtager feltet.

Hvordan bruger jeg nq/Queue/MSPickupdirectory?

Det kan man kun hvis der kører en lokal SMTP service. For de fleste kunder kører vi en fælles SMTP service og du kan derfor ikke bruge Queuing.

For serverkunder eller andre der kan bruge queue, se queuesupport.

Hvorfor kan jeg ikke få 'deferred delivery' til at virke?

Vores mailservere understøtter desværre endnu ikke 'deferred delivery', og du kan derfor ikke bruge muligheden.

LinkBeskrivelse
Dimac Find mere hjælp hos producenten af komponenten.
(1 stemmer)
Denne artikel var til hjælp
Denne artikel var ikke til hjælp

Kommentarer (0)
Opret kommentar
 
 
Navn:
Email:
Kommentarer:
CAPTCHA Verificering 
 
Indtast teksten du ser på billedet i feltet herunder (CAPTCHA). Dette er påkrævet for at undgå automatiske registreringer og form afsendelser.

Referencer |  Om Azero |  Betingelser |  Job |  Presse |  Kontakt Azero

Azero A/S - CVR 28 10 17 59 - Skjørringvej 8 - 8464 Galten - Telefon 38 19 50 17
Danske Bank - Reg 4180 - Konto 0010092027 - SWIFT DABADKKK - IBAN DK7230000010092027

Copyright © 2000-2020. Azero A/S respekterer alle varemærker.
Priser er angivet eksklusive moms i DKK, der tages forbehold for trykfejl. Alt salg sker i henhold til vores betingelser.
1. Domaincheck - 2. Search - 3. NScheck - 4. NSlookup - 5. Lookup - 6. TraceRoute - 7. Query - 8. CheckWeb - (9. Flere)