webForumDet fria alternativet

Jmail Problem

21 svar · 603 visningar · startad av Ivar

IvarMedlem sedan aug. 2002218 inlägg
#1

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
%>

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

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
IvarMedlem sedan aug. 2002218 inlägg
#3

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">

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Kan du verkligen ha telia som JmailServeradress?
Var vänlig och använd [ kod ]-taggarna!

IvarMedlem sedan aug. 2002218 inlägg
#5

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.

IvarMedlem sedan aug. 2002218 inlägg
#6

Förslag?

@ndersMedlem sedan juni 200032 969 inlägg
#7

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
OveRRidEMedlem sedan feb. 200112 078 inlägg
#8

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.

doggelitoMedlem sedan juni 20003 076 inlägg
#9

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. :)

IvarMedlem sedan aug. 2002218 inlägg
#10

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">

thelandMedlem sedan dec. 20029 inlägg
#11

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

IvarMedlem sedan aug. 2002218 inlägg
#12

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?

@ndersMedlem sedan juni 200032 969 inlägg
#13

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?

IvarMedlem sedan aug. 2002218 inlägg
#14

Jo mailen skicks iväg i alla fall även om det står nej i test textfält.

@ndersMedlem sedan juni 200032 969 inlägg
#15

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,

IvarMedlem sedan aug. 2002218 inlägg
#16

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">

@ndersMedlem sedan juni 200032 969 inlägg
#17

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,

IvarMedlem sedan aug. 2002218 inlägg
#18

Ibland kan det stå nej då ska inte mailen iväg. Ingen nullvärden

solbulleMedlem sedan mars 20015 287 inlägg
#19

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???

IvarMedlem sedan aug. 2002218 inlägg
#20

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

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)