Hej!
Jag får inte igång Jmail att funka. I formuläret har jag ett ja och nej knapp, om kunden väljer ja knapen då ska mailen skicks iväg som tack för annonsen. Eller hämta från databasen senaste mailen som trycktes ja.
Snälla kan någon hjälpa mig?
Kod som inte funkar:
<%
Dim ConnectString, conn
ConnectString = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/annonser.mdb")&";pwd=olle"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
sql = "SELECT email FROM items "
Set rsItems = Server.CreateObject("ADODB.Recordset")
rsItems.Open sql, conn, 3, 3
%>
<%
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail1.telia.com"
If Len("" & rsItems("email")) > 3 then JMail.addrecipientbcc rsItems("email")
item = Request.Form("item")
SenderEmail = Request.Form("email")
'Subject = "Emnet er: " & Request.Form("subject")
email = Request.Form("email")
‘Comments = Request.Form("comments")
reciptient = Request.Form("reciptient")
JMail.Sender = Senderemail
'JMail.Subject = Subject
JMail.AddRecipient Recipient
'hämtar poster ur db
DO WHILE not rsItems.EOF
JMail.addrecipientbcc rsItems("email")
rsItems.movenext
LOOP
JMail.Body = "Name : " & Request.Form("item") & vbcrlf & vbcrlf _
& "e-mail : " & Request.Form("email") & vbcrlf & vbcrlf _
& "My Mesg.: " & Request.Form("description")
JMail.Priority = 3
'JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
rsItems.close
set rsItems = nothing
conn.close
set conn = nothing
%>
Jmail Problem
21 svar · 603 visningar · startad av Ivar
Se alltid till att det finns en e-postadress som avsändare.
if len(sendermail) = > 0 then
JMail.Sender = Senderemail
else
JMail.Sender = "info@domän.se"
end if
Hej!
Det funkar inte en då mailet kommer inte fram och jag får inte något felmeddelande.
Kod:
<%
Dim ConnectString, conn
ConnectString = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/annonser.mdb")&";pwd"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
sql = "SELECT email, item, description FROM items Where test='ja' ORDER BY dateCreated DESC"
Set rsItems = Server.CreateObject("ADODB.Recordset")
rsItems.Open sql, conn, 3, 3
%>
<%
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail1.telia.com"
if len(sendermail) => 0 then
JMail.Sender = Senderemail
else
JMail.Sender = "info@domän.se"
end if
item = Request.Form("item")
SenderEmail = Request.Form("email")
Subject = "Emnet er: " & Request.Form("description")
email = Request.Form("email")
'Comments = Request.Form("comments")
reciptient = Request.Form("email")
JMail.Sender = Senderemail
JMail.Subject = Subject
JMail.AddRecipient Recipient
'hämtar poster ur db
DO WHILE not rsItems.EOF
JMail.addrecipientbcc rsItems("email")
rsItems.movenext
LOOP
JMail.Body = "Name : " & Request.Form("item") & vbcrlf & vbcrlf _
& "e-mail : " & Request.Form("email") & vbcrlf & vbcrlf _
& "My Mesg.: " & Request.Form("description")
JMail.Priority = 3
'JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
result=JMail.Execute
rsItems.close
set rsItems = nothing
conn.close
set conn = nothing
If result = "True" Then
%>
<p align="center"><font face="Verdana, Arial" size="2"> </font></p>
<p align="center"><font face="Verdana, Arial" size="2">Tack för Din beställning.
</font></p>
<p><font face="Verdana, Arial" size="2"> Din order har blivit mottagen och kommer
behandlas snarast möjligt.<br>
En kopia av ordern har skickats till dig.<br>
Här nedan följer även en sammanställning av din beställning:
</font> </p>
<p><font face="Verdana, Arial" size="2">
<% Else %>
</font></p>
<p><font face="Verdana, Arial" size="2"><%=description%></font> </p>
<p><font face="Verdana, Arial" size="2"><%=item%></font> </p>
<p> Beställningen kunde inte slutföras pga e-mailproblem. Din beställning har
dock lagrats, och kommer snart att slutföras.<br>
Var god kontakta oss gällande detta problem.<br>
Felmeddelande var:</p>
<p><% End If %></p>
<meta http-equiv="Refresh" content="7; URL=default.asp">
Kan du verkligen ha telia som JmailServeradress?
Var vänlig och använd [ kod ]-taggarna!
Jmail
Hej!
Slarvigt av mig ska komma ihåg kod tagarna.
Jag vett inte om det funkar med mail1.telia.com men hur ska jag testa Jmailen?
Jag kör ju IIS på XP.
Förslag?
Sätt på jmail-loggningen och se om du får ut något intressant därifrån. Det kan vara så att du inte får skicka med teliaservern.
'skapa jmail-objekt
JMail.Logging = true
' All annan jmail-kod
Response.write Jmail.log
' förstör jmail-objekt
Har du Telia som ISP?
@nders, jag är nästan 100% på att JMail spottar ett felmess om mailservern skriker om någon relayingregel, jag har varit med om det ett par gånger när jag flyttat hela script till olika ISP:s. Den slänger alltid ett felmess.
sen går det inte så bra med denna:
if len(sendermail) => 0 then
JMail.Sender = Senderemail
else
JMail.Sender = "info@domän.se"
end if
om längden är 0 eller större så hämtas Senderemail?
du kan lägga på några tecken:
if len(sendermail) => 5 then
JMail.Sender = Senderemail
else
JMail.Sender = "info@domän.se"
end if
eftersom en epostadress alltid är minst 5 tecken. :)
Hej!
Jag fick inte den gamla koden att fungera så jag byte ut mot den här som funkar
Kod:
<% Option Explicit %>
<%
Response.Buffer = True
' Variable Declaration
'---------------------
Dim oConn ' as ADODB.Connection
Dim sMyBody ' as String
Dim sMySubject ' as String
'sMyBody = Request.Form("meddelande")
'sMySubject = Request.Form("amne")
' Create db-conn object
'----------------------
Private Function CreateDBConn()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" & Server.MapPath("db/annonser.mdb")
End Function
' Destroy db-conn object
'-----------------------
Private Function DestroyDBConn()
Set oConn = nothing
End Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT \* FROM items Where test='ja' ORDER BY dateCreated DESC"
CreateDBConn()
oConn.Open
' Create mail-object
'-------------------
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer
oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = oConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
on error resume next
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = "Tack för Din beställning. Din order har blivit mottagen och kommer behandlas snarast möjligt. "
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
oConn.Close
DestroyDBConn()
End Sub
Call myJmail("mail1.telia.com","europaannons@yahoo.se",sMySubject,sMyBody)
%>
<html>
<head>
<title>sendmail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
</body>
</html>
<meta http-equiv="Refresh" content="1; URL=default.asp">
Hej,
Installera SMTP under din IIS så kan du använda localhost för att skicka dina mail.
Du kan dessutom få den kod jag använder för att skicka mina mail om du skickar ett mail till mig.
/TobiasT
http://webbhotell.theland.se - varför betala mer än nödvändigt
Hello!
Jag var något optimist om att Jmail fungerade som det ska men det är fel
Nämligen frågan i SQL fungerar inte.
strSQL = "SELECT email FROM items Where test = 'ja' ORDER BY dateCreated DESC "
Om jag fatar rätt så emailen ska hemtas från items om det står ja i test men om det inte står ja då ska inte hända någonting. Alltså ingen mail ska skickas. Hur löser man det?
Vad är det för fel på frågan då? Om test är ett textfält som innehåller texten ja så borde den returnera alla med det värdet, och inga andra med andra värden.
Alltså: vad är problemet?
Jo mailen skicks iväg i alla fall även om det står nej i test textfält.
Då får du visa hur all din kod ser ut nu, för SQL-frågan är det (nog) inget fel på.
Red: Och använd [kod]-taggar runt din kod, så blir den fin och lättläst.
mvh,
Ok här är all kod:
<% Option Explicit %>
<%
Response.Buffer = True
' Variable Declaration
'---------------------
Dim oConn ' as ADODB.Connection
Dim sMyBody ' as String
Dim sMySubject ' as String
'sMyBody = Request.Form("meddelande")
'sMySubject = Request.Form("amne")
' Create db-conn object
'----------------------
Private Function CreateDBConn()
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" & Server.MapPath("db/annonser.mdb")
End Function
' Destroy db-conn object
'-----------------------
Private Function DestroyDBConn()
Set oConn = nothing
End Function
' Send Newsletter
'----------------
Private Sub myJmail(mySMTPserver, myMail, mySubject, myBody)
Dim rs ' as adodb.recordset
Dim strSQL ' as string
Dim oMail ' as Jmail.SMTPmail
Dim toMail ' as string
' sql query to grab all emails from database
'-------------------------------------------
strSQL = "SELECT * FROM items Where test='ja' ORDER BY dateCreated DESC"
CreateDBConn()
oConn.Open
' Create mail-object
'-------------------
Set oMail = Server.CreateObject("Jmail.SMTPMail")
oMail.LazySend = True
oMail.ServerAddress = mySMTPServer
oMail.Sender = myMail
oMail.Subject = mySubject
oMail.AddRecipient myMail
Set rs = oConn.Execute(strSQL)
If Not rs.EOF or rs.BOF Then
Do Until rs.EOF or rs.BOf
on error resume next
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
End If
Set rs = nothing
oMail.Body = "Tack för Din beställning. Din order har blivit mottagen och kommer behandlas snarast möjligt. "
oMail.AddHeader "Originating-IP: ", Request.ServerVariables("REMOTE_ADDR")
oMail.Execute
Set oMail = nothing
oConn.Close
DestroyDBConn()
End Sub
Call myJmail("mail1.telia.com","europaannons@yahoo.se",sMySubject,sMyBody)
%>
<html>
<head>
<title>sendmail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
</body>
</html>
<meta http-equiv="Refresh" content="1; URL=default.asp">
Jag kan inte se något direkt fel. Min enda tanke är att det faktiskt står en himla massa ja i tabellen. Om det inte står ja, vad står där då? Har man nullvärden i tabellen kan det ibland spöka lite grann.
Som sagt, kontrollera att tabellen verkligen innehåller det du tror, och använd fler [kod]-taggar. ;)
Jag vill också gärna att du tar bort on error resume next ur koden, den bara förstör.
Mvh,
Ibland kan det stå nej då ska inte mailen iväg. Ingen nullvärden
Har iofs inte direkt med det du frågar efter, men denna bit:
Do Until rs.EOF or rs.BOf
on error resume next
oMail.AddRecipientBCC rs("Email")
rs.MoveNext
Loop
Blir det inte som så att man står med endast det sista värdet i loopen som mottagare då?
RED. Fast vid närmare eftertanke kanske mailet bara ska gå till en person???
Jo jag vill att mailen ska iväg till sista personen som har tryckt ja i formuläret och ja lagras i databasen annars ingen mail skickas