Hej Hej Nina. Hej Benni Nej du var inte orydlig, troligen lite rädd för koden. Jättesnällt att du försöker hjälpa mig :-) Då försöker vi med annat: Nu känns det som att jag börjar bli jättejobbig, men jag har inte outlook utan Mozilla Thunderbird, men det kanske går lika bra? Det är här du får det: Du har helt rätt - den här koden är inte så bra. Men om jag bara fick det att funka med det här mailet så skulle jag bli glad :-) Jag tror att du missuppfattar koden lite granna (ursäkta småländskan) Det här var krångligt - får nog snart lägga det på hyllan för nu får jag Har du skrivit rätt här: Hej Om allt fungerar nu för dig, så är det bra om du sätter tråden som löst.Mail vid gästboksinlägg
jag undrar om det är möjligt att man i asp-koden kan få in så att man får ett mail när någon har skrivit in i gästboken?
Ifall någon orkar se på koden så kommer den här;
<%@ Language = VBSCRIPT %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%Session.lcid=1053%>
<!-- #INCLUDE FILE = "adovbs.inc" -->
<!-- #INCLUDE FILE = "smile.asp" -->
<!-- #INCLUDE FILE="smile2.asp" -->
<html>
<head>
<title>- historiesajten.se - gästboken</title>
<link rel="stylesheet" type="text/css" href="mall.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="Author" CONTENT="Nina Ringbom">
<META NAME="Description" CONTENT="Historia">
<META NAME="KeyWords" CONTENT="Sverige, dödbok, födelsebok, gamleby">
<SCRIPT LANGUAGE="JavaScript">
<!--
function setColor(el, bg) {
if (el.style) el.style.backgroundColor = bg;
}
function checkInput(insertText) {
var bgBad = "#FAFAEA";
var bgGood = "white";
var valid = true;
if (insertText.Inlagg.value == "") {
valid = false;
setColor(insertText.Inlagg, bgBad);
} else {
setColor(insertText.Inlagg, bgGood);
}
if (insertText.namn.value == "") {
valid = false;
setColor(insertText.namn, bgBad);
} else {
setColor(insertText.namn, bgGood);
}
if (insertText.city.value == "") {
valid = false;
setColor(insertText.city, bgBad);
} else {
setColor(insertText.city, bgGood);
}
if (!valid) alert("Du glömde att fylla i namn, meddelande eller var du bor! ");
return valid;
}
// -->
</SCRIPT>
</head>
<body>
<!-- #INCLUDE FILE = "header.asp" -->
<%
If Request.QueryString("add") = "yes" Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("slaktbok.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM guestbook"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
Namn = request.form("Namn")
Epost = request.form("Epost")
Sida = request.form("Sida")
city = request.form("city")
Inlagg = request.form("Inlagg")
RecSet("Namn") = Namn
RecSet("Epost") = Epost
RecSet("Sida") = Sida
RecSet("city") = city
RecSet("Inlagg") = Inlagg
RecSet("Datum") = date()
RecSet("Tid") = FormatDateTime(Now, 4)
RecSet("Ip") = Request.ServerVariables("REMOTE_ADDR")
RecSet.Update
RecSet.Close
Connect.Close
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("slaktbok.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Const perSida = 10
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RecSet.CursorLocation = 3
RecSet.CacheSize = perSida
SQL = "Select * From guestbook where ok=1 Order By datum DESC, id DESC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
RecSet.MoveFirst
RecSet.PageSize = perSida
TotalPages = RecSet.PageCount
RecSet.AbsolutePage = page
Count = 0%>
<script language="JavaScript">
<!--
function insertSmiley(smiley) {
document.insertText.Inlagg.value += " " + smiley + " ";
}
// -->
</SCRIPT>
<form action="slaktbok.asp?add=yes" name="insertText" method="POST" onSubmit="return checkInput(this)">
<center><table class="vtext" WIDTH="430" BORDER="0" CELLSPACING="1" CELLPADDING="2">
<TR><TD class="underrubrik" colspan="2">Hej! Skriv gärna en rad i min gästbok <img src="smile.gif"></td></tr>
<TR><TD id="row1" CLASS="vtext" colspan="2">Vill du ge förslag på en person eller händelse som du vill jag skall skriva om - så gå till tipssidan istället - fast skriv gärna i gästboken också!</td></tr>
<tr><td class="admin" colspan="2">Admin</td></tr>
<TR><TD>Namn:</TD>
<TD>Epost:</TD></TR>
<TR><TD><INPUT TYPE="TEXT" NAME="namn" SIZE="30" MAXLENGTH="225"></TD>
<TD><INPUT TYPE="TEXT" NAME="Epost" SIZE="31" MAXLENGTH="225"></TD></TR>
<TR><TD>Hemvist:</TD><TD>Hemsida:</TD></TR>
<TR><TD><INPUT TYPE=TEXT NAME=city SIZE="30" MAXLENGTH="225"></TD>
<TD><INPUT TYPE=TEXT NAME=sida SIZE="31" MAXLENGTH="225"></TD></TR>
<TR><TD colspan="2" valign=bottom>Meddelande:</TD></TR>
<TR><TD colspan="2"><TEXTAREA NAME="Inlagg" WRAP="physical" rows="3" cols="50"></textarea></TD></TR>
<TR><TD><INPUT TYPE=HIDDEN NAME="ok" value=0></td></tr>
<TR><TD><INPUT TYPE=HIDDEN NAME="svar"></td></tr>
<tr><td width="300" align="left" colspan="2"><input type="Submit" value="Skicka" onClick="alert('Tack för meddelandet, på grund av spam i gästboken måste jag dock godkänna inlägget först - mvh Nina')">
</td></TR>
</table></center>
</form>
<%Do While Not RecSet.EOF And Count < RecSet.PageSize%>
<BR>
<center>
<table rules="none" frame="box" bordercolor="#570605" class="gastboken1" width="430" cellspacing="0" cellpadding="4">
<tr><td width="90%"><b>Namn:</b> ><%=RecSet("Namn")%></td></tr>
<tr><td><b>Stad:</B> <%=RecSet("city")%></A></td></tr>
<tr><td><b>Hemsida:</B> target="_blank"><%=RecSet("sida")%></td></tr>
<tr><td><b>Datum:</b> <%=RecSet("Datum")%> (<%=RecSet("Tid")%>)</td></tr>
<tr><td height=5></td></tr>
<tr><td><%=FixaLankar(Server.HTMLEncode(RecSet("Inlagg")))%></td></tr>
<tr class="gastboken2"><td id="row2"><%=RecSet("svar")%></td></tr></table></center>
<%
Count = Count + 1
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
IF TotalPages > 1 Then%>
<table align="center" class="vtextcenter" width="500" border="0">
<tr><td height="20"></td></tr>
<tr><td>
<%
If TotalPages <> 1 Then
If (Int(page)) <> 1 Then
%>
« Bakåt
|
<%Else%>
« Bakåt
|
<%End If
For Pages = 1 To TotalPages
If (Int(Pages)) = (Int(page)) Then%>
<%=Pages%>
<%Else%>
<%=Pages%>
<%
End If
Next
%>
<%End If
If (Int(page)) <> (Int(TotalPages)) Then%>
|
Framåt »
<%Else%>
| Framåt »</td></tr>
<%End If%>
<%END IF%>
</table>
</div>
</body>
</html>
Sv: Mail vid gästboksinlägg
Jag förstår inte varför du skickade in all kod, när du frågar om ett mail???
Men så här gör jag:
<code>
'till användaren
name = strNamn
senderEmail = "info@saw.se"
subject = "Från S.A.Ws Gästbok"
recipient = Request.Form("Epost")
body = "Tack för att du skrev in dig på S.A.W:s gästbok, jag hoppas att du alltid känner dig välkommen tillbaka till oss på S.A.W."
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.From = senderEmail
msg.FromName = name
msg.AddRecipient recipient
msg.Subject = subject
msg.body = body
if not msg.Send("mail.saw.se" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
'Response.write "Meddelandet skickades!"
end if
''till mig
name = strNamn
senderEmail = "info@saw.se"
subject = "Från S.A.Ws MusikArkiv"
recipient = "saw@bredband.net"
body = "Nytt medelande i gästboken."
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.From = senderEmail
msg.FromName = name
msg.AddRecipient recipient
msg.Subject = subject
msg.body = body
if not msg.Send("mail.saw.se" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
'Response.write "Meddelandet skickades!"
end if
</code>
JAg hoppas att du kan räkna ut varifrån variablerna kommer.Sv:Mail vid gästboksinlägg
jag var nog otydlig. Det är jag som skall få ett mail när någon har skrivit in i min gästbok. Därför all den koden :-)
Jag tänkte att man kanske kunde stoppa in if "någon skrivit in i gästboken" then "sänd mail till mig"
eller nått sånt men jag får inte till det riktigt...
Jag har så många olika kollar i min kod, + smailisar som skall in och sånt så jag vet inte hur jag skall skriva..Sv: Mail vid gästboksinlägg
Det du fick av mig, var ju två utskick, ett till mig, som talar om att ett nytt inlägg är skrivet, det andra
till den som skrev in i gästboken.
Vill du inte ha den sista, skriv då inte in den koden.
Du skall lägga in den här:
<code>
RecSet.Update
RecSet.Close
Connect.Close
'¨<-----HÄR ÄR EN BRA PLATS
End If
</code>Sv:Mail vid gästboksinlägg
jag får dock bara felet:
Feltyp:
Serverobjekt, ASP 0177 (0x800401F3)
Ogiltig klassträng
/nina/historia/slaktbok.asp, line 95
på rad 95 finns den här: set msg = Server.CreateOBject( "JMail.Message" )
jag vet ju inte vad jag skall ändra till, jag har ju inte JMail utan ett formmailskript som ligger hos digikom.Sv: Mail vid gästboksinlägg
<code>
set objMessage = server.createobject("cdo.message")
set objConfig = server.createobject("cdo.configuration")
Set Flds = objConfig.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.DinSMTPProvider.se"
'du skriver in samma som du har i din Outlook under smtp
Flds.update
Set objMessage.Configuration = objConfig
objMessage.To = "dinEpostAdress"
objMessage.From = rst("Epost")
objMessage.Subject = Request.Form("Subj")
objMessage.HTMLBody = Request.Form("Inlagg")
objMessage.fields.update
objMessage.Send
set objMessage = nothing
set objConfig = nothing
response.write " epost skickat = OK "
</code>
Ersätt tidigare kod med denna.Sv:Mail vid gästboksinlägg
Hittade det jag skulle fylla i, men nu får jag:
# Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'rst'
/nina/historia/slaktbok.asp, line 103
# Webbläsare:
Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
# Sida:
POST 61 bytes to /nina/historia/slaktbok.asp
# POST Data:
namn=sdf&Epost=sad&city=sadf&sida=asdf&Inlagg=asdf&ok=0&svar=
# Tid:
den 9 februari 2006, 21:58:04
---------------------------------------------
skall jag skapa några kolumner i accessdatabasen?
vi måste vara på rätt väg för det hoppar in kod i databasen :-)
På rad 103 står det: objMessage.From = rst("Epost")
Försökte ändra till RecSet som det står i min övriga kod men det funkar inte hellerSv: Mail vid gästboksinlägg
<code>
objMessage.From = rst("Epost")
</code>
Du måste ersätta det med en korrekt mailadress.
Jag måste också fråa betr koden som du har lagt in, varför har du två connection?
Om du inte vill ha den som includefil, lägg den då högst upp, utanför någon if-sats.
När du sen lägger in dina saker i databasen, så skulle jag rekomendera att du använder en insert via SQL istället. Det blir smidigare, och du gör mindre databasanrop.
Jag tror att du kan optimera din kod ganska så mycket... ;-)Sv:Mail vid gästboksinlägg
Jag la upp en testsite på http://www.historiesajten.se/test/slaktbok.asp
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/test/slaktbok.asp, line 99
rad 99: objMessage.From = RecSet("snowcat@telia.com")Sv: Mail vid gästboksinlägg
Du skall naturligtvis skriva:
<code>
objMessage.From = snowcat@telia.com
</code>
Vad jag sedan menar att optimera är t ex:
<code>
<%End If
For Pages = 1 To TotalPages
If (Int(Pages)) = (Int(page)) Then%>
<%=Pages%>
<%Else%>
</code>
som borde skrivas till:
<code>
<%End If
For Pages = 1 To TotalPages
If (Int(Pages)) = (Int(page)) Then
response.write Pages
Else
</code>
Du har massor med sådana saker i din kod, detta gör att din sida tar onödigt mycke kraft av servern
och naturligtvis onödigt lång tid att execuvera.Sv:Mail vid gästboksinlägg
DO.Message.1 error '80040213'
The transport failed to connect to the server.
/test/slaktbok.asp, line 107
rad 107:objMessage.SendSv: Mail vid gästboksinlägg
<code>
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.DinSMTPProvider.se"
</code>JAg kom att tänka på att det finns en möjlighet till:
<code>
Set CDOMail = Server.CreateObject("CDONTS.NewMail")
CDOMail.From = "avsändare@någonting.com"
CDOMail.To = "till@någonting.com"
CDOMail.Cc = "enExtra@någonting.com"
CDOMail.Subject = "Test igen"
CDOMail.Body = "Detta är en test av CDONTS-mail! <BR> Det verkar som om det har lyckats."
CDOMail.Send
</code>
Denna är jag ganska så säker på att den fungerar.Sv:Mail vid gästboksinlägg
Testade det där med CDOONTS men det vill sig inte
Nu testade jag den här koden:
--------------------------
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.From = "snowcat@telia.com"
msg.FromName = "Nina Ringbom"
msg.AddRecipient "mail@historiesajten.se", "Gästboken"
msg.Subject = "Nytt gästboksinlägg"
msg.Body = request.form("Inlagg")
if not msg.Send("mail.historiesajten.se" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
'Response.write "Meddelandet skickades!"
end if
------------------------
och det funkar :-)
tack för hjälpen Benni :-)Sv: Mail vid gästboksinlägg