27. februar 2003 - 16:43Der er
53 kommentarer og 1 løsning
Kan ikke få FormMail til at virke!
Hej...
Jeg har downloaded FomMail v. 1.92 fra http://www.scriptarchive.com/formmail.html og sat den op med følgende form på min side (mail@hjemmeside.dk er selvfølgelig udskiftet med den adresse jeg vil have beskeden sendt til): <form method="post" action="/cgi-bin/FormMail.pl"> <input type="hidden" name="recipient" value="mail@hjemmeside.dk"> <p align="center">Dit navn<input name="realname" type="text" size="50"> <p align="center">Din e-mail<input name="email" type="text" size="50"> <p align="center">Emne<input name="subject" type="text" size="50"> <p align="center">Besked<TEXTAREA name="Besked" cols="50" rows="6"></TEXTAREA> <p align="center"><INPUT type="submit" value="Send"> </form>
Men når man klikker på send, kommer følgende fejl frem:
There was no recipient or an invalid recipient specified in the data sent to FormMail. Please make sure you have filled in the recipient form field with an e-mail address that has been configured in @recipients. More information on filling in recipient form fields and variables can be found in the README file.
Jeg har prøvet at gennemlæse readme-filen, og ændret i @recipient, men jeg kan ikke få det til at virke!
Hvad skal der til for at få mailen sendt til adressen mail@hjemmeside.dk?
# Define Variables # # Detailed Information Found In README File. #
# $mailprog defines the location of your sendmail program on your unix # # system. The flags -i and -t should be passed to sendmail in order to # # have it ignore single dots on a line and to read message for recipients #
$mailprog = '/usr/lib/sendmail -i -t';
# @referers allows forms to be located only on servers which are defined # # in this field. This security fix from the last version which allowed # # anyone on any server to use your FormMail script on their web site. #
@referers = ('scriptarchive.com','209.196.21.3');
# @recipients defines the e-mail addresses or domain names that e-mail can # # be sent to. This must be filled in correctly to prevent SPAM and allow # # valid addresses to receive e-mail. Read the documentation to find out how # # this variable works!!! It is EXTREMELY IMPORTANT. # @recipients = &fill_recipients('navn@hjemmeside.dk');
# ACCESS CONTROL FIX: Peter D. Thompson Yezek # # @valid_ENV allows the sysadmin to define what environment variables can # # be reported via the env_report directive. This was implemented to fix # # the problem reported at http://www.securityfocus.com/bid/1187 #
Nu ser FormMail.pl filens variable del således ud, men fejlemeddelelsen er den samme: # Define Variables # # Detailed Information Found In README File. #
# $mailprog defines the location of your sendmail program on your unix # # system. The flags -i and -t should be passed to sendmail in order to # # have it ignore single dots on a line and to read message for recipients #
$mailprog = '/usr/lib/sendmail -i -t';
# @referers allows forms to be located only on servers which are defined # # in this field. This security fix from the last version which allowed # # anyone on any server to use your FormMail script on their web site. #
@referers = ('hjemmeside.dk');
# @recipients defines the e-mail addresses or domain names that e-mail can # # be sent to. This must be filled in correctly to prevent SPAM and allow # # valid addresses to receive e-mail. Read the documentation to find out how # # this variable works!!! It is EXTREMELY IMPORTANT. # @recipients = &fill_recipients('^mail@hjemmeside.dk');
# ACCESS CONTROL FIX: Peter D. Thompson Yezek # # @valid_ENV allows the sysadmin to define what environment variables can # # be reported via the env_report directive. This was implemented to fix # # the problem reported at http://www.securityfocus.com/bid/1187 #
Nu kommer der en anden fejlmeddelelse: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Array found where operator expected at D:\web\clak19dk_hjemmeside.dk\wwwroot\cgi-bin\FormMail.pl line 46, at end of line (Might be a runaway multi-line '' string starting on line 39) Backslash found where operator expected at D:\web\clak19dk_hjemmeside.dk\wwwroot\cgi-bin\FormMail.pl line 46, near "@hjemmeside\" (Missing operator before \?) syntax error at D:\web\clak19dk_akvariedatabasen.dk\wwwroot\cgi-bin\FormMail.pl line 46, near "mail@hjemmeside" Bad name after dk' at D:\web\clak19dk_hjemmeside.dk\wwwroot\cgi-bin\FormMail.pl line 46.
-jeg har udskiftet mit domæne med "hjemmeside", clak19dk var det password, jeg fik oplyst til min mailserver (smpt) da jeg første gang oprettede mit webhotel hos udbyderen. Det har senere været nødvendigt at ændre det, da jeg ikke kunne logge på min ftp (det var samme password)
Nu vil den gerne sende mailen... men jeg modtager den ikke!
Da jeg allerede har dummet mig..... får i her den variable del af scriptet, nøjagtig som den ser ud nu:
# Define Variables # # Detailed Information Found In README File. #
# $mailprog defines the location of your sendmail program on your unix # # system. The flags -i and -t should be passed to sendmail in order to # # have it ignore single dots on a line and to read message for recipients #
$mailprog = '/usr/lib/sendmail -i -t';
# @referers allows forms to be located only on servers which are defined # # in this field. This security fix from the last version which allowed # # anyone on any server to use your FormMail script on their web site. #
@referers = ('akvariedatabasen.dk');
# @recipients defines the e-mail addresses or domain names that e-mail can # # be sent to. This must be filled in correctly to prevent SPAM and allow # # valid addresses to receive e-mail. Read the documentation to find out how # # this variable works!!! It is EXTREMELY IMPORTANT. #
# ACCESS CONTROL FIX: Peter D. Thompson Yezek # # @valid_ENV allows the sysadmin to define what environment variables can # # be reported via the env_report directive. This was implemented to fix # # the problem reported at http://www.securityfocus.com/bid/1187 #
"det er mig som er en klov" ... æh det er måske en mere bizzar ting at skrive om sig selv - jeg mente dog nok at jeg var en klovn - men det taler vist for sig selv :-)
Jeg kan stadig ikke få det til at virke.... Jeg har skrevet til dem, hvor jeg har mit webhotel, men venter stadig på svar. Men du skal ikke sidde oppe og misse nattesøvn over det :o) Men hvis du kan, må du meget gerne hjælpe! Kan det have noget at gøre med, at mit gamle pass til ftp, mailserver o.l. var clak19dk, men nu er blevet ændret, og de ikke har fået opdateret et eller andet, der hvor jeg har min side?
Jeg har lige fået svar fra webudbyderen. De siger at linien $mailprog = '/usr/lib/sendmail -i -t'; skulle virke, men jeg skal huske at: "at chmod CGI til 765", hvad betyder det?
jeg skal lige høre: skal det køre på en unix(linux)-maskine eller en windows maskine.
Af det du skriver (bla noget med D:\web\clak19dk_akvariedatabasen.dk\wwwroot\cgi-bin\FormMail.pl) så ligner det en windows maskine, men det er måske den du udvikler det på ?!?!
chmod er det program på unixmaskiner til at sætte rettigheder (se f.eks: http://www.eksperten.dk/spm/321455). Du kan sætte dette via ws_ftp (og sikkert andre ftp-programmer). En sidste ting som du skal være opmærksom på er at du skal huske at overføre dit program som ascii til webhotellet, da perl kan være sensibelt.
ok - hvis udbyderen (må jeg spørge hvem det er som hoster siderne?) bruger windows 2000 til at hoste så vil $mail = ... ikke virke - det er som jeg har skrevet måden man gør det på under unix.
Hvad er det jeg skal ændre chmod på? Jeh har prøvet at ændre chmod på FormMail.pl filen og biblioteket den ligger i, men jeg for en meddelelse der siger: site chmod 765 /cgi-bin/FormMail.pl 500 Unknown command.
ok - så kan det jo både være en freebsd og en windows som kører dit site; kan du finde ud af hvilken type server det er som kører dit site. Evt kan du høre om du kan se (få dem tilsendt) error-log filer fra dit site så kan det være at vi kan se hvad der går galt.
Jeg er ret sikker på at det er en win2000 server, se http://cliche.dk/faq-webhotel.asp Jeg skriver lige til dem, for at være sikker, samt for at høre med de der log-filer!
Er det så ikke mærkeligt, at de skriver at $mailprog = '/usr/lib/sendmail -i -t linien er god nok, og at jeg skal sætte chmod til 765 (chmod er vel kun på unix-maskiner, ikke?)
jo - det er det. Omvendt så kan det jo være at de ikke har tjekket om din konto er på en unix eller en windows maskine ... er der andre dele af sitet som kræver at det kører på en windows !?!? Eller kan det ellers ikke betale sig at lægge det over på en unix-maskine (givet at det ikke koster for meget). Det kræver jo også lige at der kører perl på windows-maskinerne - de er ikke født med et som standard.
Jeg har lige fået bekræftet at de ligger på en windows-server. Hvis det kræver en stor omskrivning af scrpit o.l. behøver du ikke kæmpe mere med det. Jeg kan jo prøve at finde et ASP script, der kan gøre det samme, der er vist nok noget der hedder JMail. Hvis du vil have pointene for din store indsats, skal du lige svare!!!
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.