Avatar billede newbie.dk Praktikant
19. august 2004 - 16:14 Der er 19 kommentarer og
1 løsning

Hjælp med postkort script

Jeg har fundet et script ude på nettet. Det kan jeg ikke helt få til at virke. Jeg får ingen fejl, men jeg modtager ingen mails. Der bliver skrevet til databasen. Mailserveren fungere det har jeg testet, måske kan I se fejlen.
Efter problemmet er løst har jeg lige et par ting jeg godt kunne tænke mig at får lavet, så hæng på derefter, måske kan I hjælpe...

Scriptet består af følgense 3 filer:


***---Start filen code_lib.asp---

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../postkort.mdb")
Conn.Open DSN
                           

'******* FONT OG BODY FARVER START *******
bgfarve = "#E7CFA1"
tekstfarve = "#000000"
linkfarve = "#FFFFFF"
vlinkfarve = "#FFFFFF"
alinkfarve = "#FFFF00"
overskrift = "<FONT FACE=""Verdana"" SIZE=""6"" COLOR=""#65A8B8""><STRONG>"
fedstor = "<FONT FACE=""Verdana"" SIZE=""3""><STRONG>"
fednormal = "<FONT FACE=""Verdana"" SIZE=""0"">"
normal = "<FONT FACE=""Verdana"" SIZE=""2"">"
fejlfont = "<FONT FACE=""Verdana"" SIZE=""4"" COLOR=""#FF0000""><STRONG>"
fe = "</STRONG></FONT>"
'******* FONT OG BODY FARVER SLUT ********

img_height = "100"
img_width  = "100"

'****************** HER SKAL DU SKRIVE DINE OPLYSNINGER START *******************

Email = 3
REM 1 = JMail
REM 2 = CDONTS
REM 3 = ASPMail

fra_email = "min@mail.dk"
url = "http://www.min_side.dk/postkort/view_card.asp"
mailheader = "Det der skal stå i subject feltet f.eks Du har fået et postkort"
billedmappe = "billeder"

'****************** HER SKAL DU SKRIVE DINE OPLYSNINGER SLUT ********************


if Request.Form("mode") = "sendkort" then

    If Request.Form("from_name") = "" OR Request.Form("from_email") = "" OR Request.Form("to_name") = "" OR Request.Form("to_email") = "" OR Request.Form("besked") = "" OR Request.Form("billednavn") = "" then
        fejl = 1
    end if

if fejl <> 1 then
    from_name = replace (request.Form("from_name"),"'","`")
    to_name = replace (request.Form("to_name"),"'","`")
    besked = replace (request.Form("besked"),"'","`")

    SQL = "INSERT INTO kort ( from_mail, from_name, to_mail, to_name, billednavn, besked ) values ('"& Request.Form("from_email") &"', '"& from_name &"', '"& Request.Form("to_email") &"', '"& to_name &"', '"& Request.Form("billednavn") &"', '"& besked &"')"
    conn.execute (SQL)

    SQL = "SELECT * FROM kort where (from_mail='"& Request.Form("from_email") &"' AND from_name='"& from_name &"' AND to_mail='"& Request.Form("to_email") &"' AND to_name='"& to_name &"' AND billednavn='"& Request.Form("billednavn") &"' AND besked='"& besked &"')"
    SET check = Conn.Execute( SQL )


mail_besked = "Der er sendt et postkort til dig fra "& check("from_name") & vbCrLf & vbCrLf &"Gå til "& url &"?id="& check("id") &" for at læse det."

    if email = 1 then
        Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ServerAddress = "Din postserver her"
        JMail.Charset = "iso-8859-1"
        JMail.ContentTransferEncoding = "8bit"
        JMail.Sender = fra_email
        JMail.Subject = mailheader
        JMail.AddRecipient check("to_mail")
        JMail.Body = mail_besked
        JMail.Priority = 3
        JMail.Execute

    elseif email = 2 then

        importance = 1
        Set mailObj = CreateObject("CDONTS.NewMail")
        mailObj.Send fra_email, check("to_mail"), mailheader, mail_besked, importance
        Set mailObj = Nothing

    elseif email = 3 then

        Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
        Mailer.FromName  = from_email
        Mailer.FromAddress= Request.QueryString("from_name")
        Mailer.RemoteHost = "min.mailserver.dk"
        Mailer.AddRecipient "newbie", "min@mail.dk"
        Mailer.Subject    = "postkort fra"
        Mailer.BodyText  = Request.QueryString("besked")


    end if
kort_sendt = "ok"

else
kort_sendt = "fejl"
end if
end if

%>
<HTML>
<HEAD>
<TITLE>Postkort</TITLE>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</HEAD>
<BODY BGCOLOR="<% = bgfarve %>" TEXT="<% = tekstfarve %>" LINK="<% = linkfarve %>" ALINK="<% = alinkfarve %>" VLINK="<% = vlinkfarve %>">

***---Slut filen code_lib.asp---




***---Start filen default.asp---

<!--#INCLUDE FILE ="code_lib.asp" -->
<CENTER>
<% = overskrift %>
<p>Postkort<% = fe %>
</CENTER>
<CENTER>
<%
if kort_sendt = "ok" then
Response.Write fedstor &"Kort er sendt" & fe
elseif kort_sendt = "fejl" then
Response.Write fejlfont &"Alle felter SKAL udfyldes og billede SKAL vælges !" & fe
end if

if kort_sendt <> "ok" then
%>
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3">
  <TR>
    <FORM ACTION="default.asp" METHOD="POST">
    <INPUT TYPE="HIDDEN" NAME="mode" VALUE="sendkort">

<%
taller = 0
dirtowalk = billedmappe
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(server.mappath(dirtowalk))
Set fc = f.Files
For Each whatever in fc
if taller = 0 then
Response.Write "<TR>"
end if
%>
    <TD>
        <p align="center">
        <IMG SRC="<% = billedmappe %>/<% = whatever.name %>" WIDTH="<% = img_width %>" HEIGHT="<% = img_height %>">
        &nbsp;<br>
        <INPUT TYPE="RADIO" NAME="billednavn" VALUE="<% = whatever.Name %>" <% if Request.Form("billednavn") = Whatever.Name then Response.Write "CHECKED" %>>
        </p>
    </TD>
<%
if taller = 1 then
Response.Write "</TR>"
taller = 0
else
taller = taller + 1
end if
Next
%>
  <TR>
    <TD COLSPAN="2">
        <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3">
          <TR>
            <TD>
                <%  = fednormal %>
                Modtager e-mail:       
                <%  = fe %>
            </TD>
          </TR>
          <TR>
            <TD>
                <INPUT TYPE="TEXT" SIZE="25" NAME="to_email" <% if Request.Form("to_email") <> "" then Response.Write "VALUE="""& Request.Form("to_email") &"""" %>>
            </TD>
          </TR>
          <TR>
            <TD>
                <%  = fednormal %>
                Modtager navn:   
                <%  = fe %>
            </TD>
          </TR>
          <TR>
            <TD>
                <INPUT TYPE="TEXT" SIZE="25" NAME="to_name" <% if Request.Form("to_name") <> "" then Response.Write "VALUE="""& Request.Form("to_name") &"""" %>>
            </TD>
          </TR>
          <TR>
            <TD>
                <%  = fednormal %>
                Din e-mail adresse:
                <%  = fe %>
            </TD>
          </TR>
          <TR>
            <TD>
                <INPUT TYPE="TEXT" SIZE="25" NAME="from_email" <% if Request.Form("from_email") <> "" then Response.Write "VALUE="""& Request.Form("from_email") &"""" %>>
            </TD>
          </TR>
          <TR>
            <TD>
                <%  = fednormal %>
                Dit navn:
                <%  = fe %>
            </TD>
          </TR>
          <TR>
            <TD>
                <INPUT TYPE="TEXT" SIZE="25" NAME="from_name" <% if Request.Form("from_name") <> "" then Response.Write "VALUE="""& Request.Form("from_name") &"""" %>>
            </TD>
          </TR>
          <TR>
            <TD>
                <%  = fednormal %>
                Besked<%  = fe %>
            </TD>
          </TR>
          <TR>
            <TD>
                <TEXTAREA COLS="30" ROWS="5" NAME="besked"><% if Request.Form("besked") <> "" then Response.Write Request.Form("besked") %></TEXTAREA><BR>
            </TD>
          </TR>
          <TR>
            <TD ALIGN="RIGHT">
                <INPUT TYPE="SUBMIT" VALUE="Send postkort">
            </TD>
          </TR>
        </TABLE>
        </FORM>
    </TD>
  </TR>
</TABLE>
</CENTER>
<% end if %>

***---Slut filen default.asp---





***---Start filen view_card.asp---

<!--#INCLUDE FILE ="code_lib.asp" -->
<CENTER>
<% = overskrift %>Postkort<% = fe %>
</CENTER>
<%
SQL = "SELECT * FROM kort WHERE id = "& Request.QueryString("id")
SET kort = Conn.Execute( SQL )
if kort.eof then
    Response.Redirect("default.asp")
else
besked = replace (kort("besked"),vbCrlf,"<BR>")

%>
<CENTER>
<TABLE BORDER="0" CELPADDING="5" CELLSPACING="0">
  <TR>
    <TD ALIGN="LEFT">
        <% = fedstor %>
        Et postkort fra <% = kort("from_name") %>       
        <% = fe %>
    </TD>
  </TR>
  <TR>
    <TD>
        <IMG SRC="<% = billedmappe &"/"& kort("billednavn") %>">
    </TD>
  </TR>
  <TR>
    <TD ALIGN="LEFT">
        <% = fednormal %>
        Skrevet den <% = kort("created") %>   
        <% = fe %>
    </TD>
  </TR>
  <TR>
    <TD ALIGN="LEFT">
        <TABLE CELLPADDING="3" CELLSPACING="0" BORDER="0">
          <TR>
            <TD>
                <% = fednormal %>
                Fra&nbsp;:
                <% = fe %>
            </TD>
            <TD>
                <A HREF="MAILTO:<% = kort("from_mail") %>"><% = normal & kort("from_name") & fe %></A>   
            </TD>
          </TR>
          <TR>
            <TD ALIGN="RIGHT">
                <% = fednormal %>
                Til&nbsp;:
            </TD>
            <TD>
                <A HREF="MAILTO:<% = kort("to_mail") %>"><% = normal & kort("to_name") & fe %></A>   
            </TD>
          </TR>
        </TABLE>
    </TD>
  </TR>
  <TR>
    <TD>
        <HR WIDTH="100%">
    </TD>
  </TR>
  <TR>
    <TD>
        <% = fednormal & besked & fe %>
    </TD>
  </TR>
  <TR>
    <TD>
        <HR WIDTH="100%">
    </TD>
  </TR>
  <TR>
    <TD>
        <% = fednormal  %>
        Tryk <A HREF="default.asp">her</A> hvis du også vil sende et postkort til en ven.
        <% = fe %>
    </TD>
  </TR>
</TABLE>
<%
end if
%>



</BODY>
</HTML>

***---Slut filen view_card.asp---
Avatar billede eagleeye Praktikant
19. august 2004 - 22:57 #1
Hvilken mail komponent bruger du?
Avatar billede eagleeye Praktikant
19. august 2004 - 23:00 #2
ok dumt spørgsmål :
Email = 3


Har du i denne linje rettet det til den rigtige mail server du kan sende igennem?
        Mailer.RemoteHost = "min.mailserver.dk"
Avatar billede newbie.dk Praktikant
19. august 2004 - 23:46 #3
Ja den er som den skal være. Jeg har taget den fra et script der virker.
Avatar billede eagleeye Praktikant
19. august 2004 - 23:52 #4
Der er lige en ting:

disse to linjre, variablen from_email findes ikke der er en som hedde fra_email, så det er måske den som skal bruges. Der bruges og Request.Form og ikke Request.QuerySrtring i koden så prøv at rette de 2 linjer:
        Mailer.FromName  = from_email
        Mailer.FromAddress= Request.QueryString("from_name")

til:
        Mailer.FromName  = fra_email
        Mailer.FromAddress= Request.form("from_name")
Avatar billede newbie.dk Praktikant
20. august 2004 - 00:10 #5
Nej hjalp desværre ikke.
Gad vide om det overhovedet er et brugbart script
Avatar billede eagleeye Praktikant
20. august 2004 - 00:14 #6
der mangler en linje som sender mailen

        Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
        Mailer.FromName  = fra_email
        Mailer.FromAddress= Request.form("from_name")
        Mailer.RemoteHost = "min.mailserver.dk"
        Mailer.AddRecipient "newbie", "min@mail.dk"
        Mailer.Subject    = "postkort fra"
        Mailer.BodyText  = Request.QueryString("besked")

        'mangler linje som sender mailen


Prøv at tilføje denne linje efter linjen med .BodyText:

    Mailer.SendMail
Avatar billede newbie.dk Praktikant
20. august 2004 - 00:24 #7
Kanon, så blev der sendt mail. Men nu får jeg så lige en fejl når jeg skal se postkortet.

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

/postkort/code_lib.asp, line 17
Avatar billede eagleeye Praktikant
20. august 2004 - 00:28 #8
Prøv at tjekke siten til databasen er rigtig. Det er vist noget med conenctionen peger på en sti som ikke findes.
Avatar billede newbie.dk Praktikant
20. august 2004 - 00:30 #9
Men i formularen bliver tingene godt nok sendt til databasen.
Avatar billede newbie.dk Praktikant
20. august 2004 - 00:40 #10
linie 17 i code_lib.asp er en kommentar. Mærkeligt.
Hvordan tæller jeg de linier når code_lib.asp en inkl. i view_card.asp, eller kan det ikke være det.
Avatar billede eagleeye Praktikant
20. august 2004 - 00:43 #11
Avatar billede newbie.dk Praktikant
20. august 2004 - 00:54 #12
Du er bare kanon!! Nu virker det.
Avatar billede eagleeye Praktikant
20. august 2004 - 00:55 #13
Ok :)
Avatar billede newbie.dk Praktikant
20. august 2004 - 01:04 #14
Der er nogle ting jeg godt kunne tænke mig at få lavet, såsom:
Preview af postkort inden man sender
Automatisk sletning efter f.eks 14 dage
Ved ikke lige om der skal vises thumbnails i menuen, istedet for de store billeder.

Måske har du andre gode idéer.

Tror du det kan laves? opretter selvfølgelig et nyt spm. Bare for lige at du bliver på tråden
Avatar billede newbie.dk Praktikant
20. august 2004 - 01:17 #15
Måske også at afsenderen får besked når postkortet er læst.
Avatar billede eagleeye Praktikant
20. august 2004 - 01:18 #16
det ikke umilugt at lave det kræver du får lavet to knapper som kan sende formen. Når man trykker på den ene vise et preview.

Det med opretter får besked når det læst kan du tilføje i filen view_card.asp når man åber den sender den en mail til oprette og evt. opdater en databasen at afender har fået en mail. Så man ikke får en mail hver gang man reloader siden.
Avatar billede newbie.dk Praktikant
20. august 2004 - 01:24 #17
Okay. Går i seng.
Men håber du abonner videre på spm'et, så jeg kan få fat på dig igen.

Godnat
Avatar billede newbie.dk Praktikant
20. august 2004 - 10:39 #18
eagleeye, jeg har oprettet dette spm, hvis det var noget for dig: http://www.eksperten.dk/spm/531219
Avatar billede newbie.dk Praktikant
20. august 2004 - 16:53 #19
eagleeye, kan du se hvorfor den kontant kun lave sætter billederne op i to kolonner. Jeg vil gerne have 3-4.
Avatar billede eagleeye Praktikant
20. august 2004 - 17:01 #20
Du kan prøve at rette denne linje1:

if taller = 1 then

Til dette. tallet er (Antal pr. række -1), så med denne skulle en gerne vise 4 pr. række.

if taller = 3 then
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
Kategori
Kurser inden for grundlæggende programmering

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