Avatar billede boholdt Mester
29. december 2020 - 17:31 Der er 3 kommentarer og
1 løsning

Udfordringer med at sende igennem jMail (gammel kode skal tilpasses)

Hej

Jeg har fundet noget gammelt kode frem fra gemmerne der er cirka 15 år.

Jeg vil gerne tilrette denne kode, så jeg kan sende igennem jMail på mit webhotel med det, som det kræver i dag.

Jeg kan imidlertid ikke gennemskue hvordan, at jeg får angivet portnummer til udgående SMTP-server, samt brugernavn og adgangskode til e-mailadressen der sendes fra.

Min kode ser således ud:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'Felterne i formen modtages og gemmes i variabler
navn = Request.Form("navn")
email = Request.Form("email")
emne = Request.Form("emne")
besked = Request.Form("skriv din besked/kommentar her")

'Der tjekkes om e-mail adressen er korrekt
IF (instr(email,"@") = false) OR (instr(email,".") = false) THEN
%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Feltet e-mail adresse er ikke udfyldt, skriv en e-mail adresse!")
    history.back();
    </SCRIPT>
<%
ELSE
'Hvis den er korrekt udføres følgende
'Jmail komponentet der findes på serveren startes nu
Set objMail = Server.CreateObject("JMail.Message")
objMail.Silent = True
'Her sættes afsender til den værdi der var indtastet i e-mail form feltet
objMail.FromName = "Navn" ' Afsendernavn kan være alt
objMail.From = "mail@mitdomaene.dk" ' En gyldig afsender e-mail adresse
'Her skal du indtaste den e-mail adresse der skal modtage mailsne
objMail.AddRecipient "modtager@mitdomaene.dk", "Modtagerens Navn"
'Her sættes emne til den værdi der var indtastet i emne form feltet
objMail.Subject ="Emne"

'Her sættes besked til den værdi der var indtastet i besked form feltet
objMail.Body = besked

'Her sendes mailen gennem udgående smtp-server
objMail.Send("websmtp.simply.com")

%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Mailen er nu sendt til webmasteren!")
    </SCRIPT>
<%
END IF
%>
Jeg vil blive glad for hvis nogen har en løsning :-).

På forhånd tak for hjælpen, og god dag.

Mvh Anders.
Avatar billede arne_v Ekspert
29. december 2020 - 19:35 #1
15 eller 20 år siden.

Lidt googling antyder:

objMail.MailServerUserName = "username"
objMail.MailServerPassword = "password"
objMail.ServerAddress = "server:port"
Avatar billede boholdt Mester
30. december 2020 - 11:14 #2
Hej igen, og tak for svaret.

Jeg har nu rettet koden til, men der kommer ingen e-mails igennem fra jMail. Mit gæt er, at der mangler en fra-adresse ét eller andet sted.

Min nye kode ser således ud:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'Felterne i formen modtages og gemmes i variabler
navn = Request.Form("navn")
email = Request.Form("email")
emne = Request.Form("emne")
besked = Request.Form("skriv din besked/kommentar her")

'Der tjekkes om e-mail adressen er korrekt
IF (instr(email,"@") = false) OR (instr(email,".") = false) THEN
%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Feltet e-mail adresse er ikke udfyldt, skriv en e-mail adresse!")
    history.back();
    </SCRIPT>
<%
ELSE
'Hvis den er korrekt udføres følgende
'Jmail komponentet der findes på serveren startes nu
Set objMail = Server.CreateObject("JMail.Message")
objMail.Silent = True
'Her sættes afsender til den værdi der var indtastet i e-mail form feltet
objMail.From = email ' En gyldig afsender e-mail adresse
'Her sættes navn til den værdi der var indtastet i navn form feltet
ObjMail.FromName = navn
'Her skal du indtaste den e-mail adresse der skal modtage mailsne
objMail.AddRecipient "test@mitdomaene.dk", "Modtagerens Navn"
'Her sættes emne til den værdi der var indtastet i emne form feltet
ObjMail.Subject = emne

'Her sættes besked til den værdi der var indtastet i besked form feltet
objMail.Body = besked

'Her sendes mailen gennem websmtp.simply.com
objMail.Send("websmtp.simply.com:587")
objMail.MailServerUserName = "minmail@mitdomaene.dk"
objMail.MailServerPassword = "xxx"
Set objMail = Nothing
%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Mailen er nu sendt til webmasteren!")
    location.href("side.asp?id=19")
    </SCRIPT>
<%
END IF
%>
---
Nogle som kan gennemskue hvad der går galt her?

Jeg har som sagt Googlet mig rundt på Internettet, men det er for mig temmelig udfordrende at finde oplysninger om brug af jMail.

Ja, koden er temmelig gammel - dette skyldes, at jeg i mange år ikke har arbejdet med ASP, men PHP. Nu er jeg så begyndt at kigge lidt på ASP igen.

Mvh Anders.
Avatar billede arne_v Ekspert
30. december 2020 - 15:51 #3
Du udfoerer:

objMail.From = email ' En gyldig afsender e-mail adresse
ObjMail.FromName = navn
objMail.AddRecipient "test@mitdomaene.dk", "Modtagerens Navn"
ObjMail.Subject = emne

?
Avatar billede boholdt Mester
30. december 2020 - 18:15 #4
Hej igen

Nu har jeg fået jMail til at fungere, så der logges ind rigtigt, plus at der samtidig vises en fejlbesked, hvis jMail ikke kan sende e-mails.

Koden er følgende i filen sendmail.asp:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'Felterne i formen modtages og gemmes i variabler
navn = Request.Form("navn")
email = Request.Form("email")
emne = Request.Form("emne")
besked = Request.Form("skriv din besked/kommentar her")

'Der tjekkes om e-mail adressen er korrekt
IF (instr(email,"@") = false) OR (instr(email,".") = false) THEN
%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Feltet e-mail adresse er ikke udfyldt, skriv en e-mail adresse!")
    history.back();
    </SCRIPT>
<%
ELSE
'Hvis den er korrekt udføres følgende
'Jmail komponentet der findes på serveren startes nu
Set JMail = Server.CreateObject("JMail.Message")
JMail.Logging = true
JMail.Silent = True
JMail.AddHeader    "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.ISOEncodeHeaders = False
JMail.ContentTransferEncoding = "8bit"
'Her sættes afsender til den værdi der var indtastet i e-mail form feltet
JMail.From = email
'Her sættes navn til den værdi der var indtastet i navn form feltet
JMail.FromName = navn
'Her skal du indtaste den e-mail adresse der skal modtage mailsne
JMail.AddRecipient "anders@boholdt-petersen.dk"
'Her sættes emne til den værdi der var indtastet i emne form feltet
JMail.Subject = emne

'Her sættes besked til den værdi der var indtastet i besked form feltet
JMail.Body = besked

'Her sendes mailen gennem websmtp.simply.com
JMail.MailServerUserName = "user_name_to_e-mail_account"
JMail.MailServerPassWord  = "password_to_your_e-mail_account"
If jMail.Send("websmtp.simply.com:587") Then
  Response.Write "Afsendt."
Else
  Response.Write "Der opstod en fejl: " & objMail.Log
End If
jMail.close
Set jMail = Nothing
%>
    <SCRIPT LANGUAGE=JavaScript>
    alert("Mailen er nu sendt til webmasteren!")
    </SCRIPT>
<%
END IF
%>
---

Takker for løsningsforslagene. Rigtig god dag.

Mvh Anders.
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

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