Avatar billede Insany92 Nybegynder
16. januar 2011 - 14:51 Der er 11 kommentarer og
1 løsning

Cgi mail formular

Hej folkens.

Jeg har haft mange problemer med en mail formular og det endte så med at jeg skiftede Webhost.
Desværre hjalp det ikke at skifte webhost og den virker stadig ikke!

Jeg håber I kan hjælpe mig, hvad kan jeg ha' gjort forkert?

*****Mail formularen*****
http://dagens6.dk/Kontakt.html





*****Html koden*****
<form action="/cgi-bin/form_mailer.cgi" method="post">

<p>Din Email:<br>
<input type="text" name="email_address" size="40"></p>
<p>Din Besked:<br>
<textarea name="comments" cols="50" rows="10"></textarea>

<p><input type="submit" name="send" value="Send Email"></p>

</form>





*****form_mailer.cgi*****
#!/usr/sbin/sendmail

use CGI;

# Create the CGI object
my $query = new CGI;

# Output the HTTP header
print $query->header ( );

# Capture the form results
my $email_address = $query->param("email_address");
my $comments = $query->param("comments");

# Filter the form results
$email_address = filter_header_field ( $email_address );
$comments = filter_field ( $comments );

# Email the form results
open ( MAIL, "| /usr/sbin/sendmail -t" );
print MAIL "From: $email_address\n";
print MAIL "To: minemail@ekspert.dk\n";
print MAIL "Subject: Form Submission\n\n";
print MAIL "$comments\n";
print MAIL "\n.\n";
close ( MAIL );

# Thank the user
print <<END_HTML;
<html>
<head></head>
<body>Tak for din henvendelse</body>
</html>
END_HTML

# Functions for filtering user input

sub filter_field
{
my $field = shift;
$field =~ s/From://gi;
$field =~ s/To://gi;
$field =~ s/BCC://gi;
$field =~ s/CC://gi;
$field =~ s/Subject://gi;
$field =~ s/Content-Type://gi;
return $field;
}

sub filter_header_field
{
my $field = shift;
$field =~ s/From://gi;
$field =~ s/To://gi;
$field =~ s/BCC://gi;
$field =~ s/CC://gi;
$field =~ s/Subject://gi;
$field =~ s/Content-Type://gi;
$field =~ s/[\0\n\r\|\!\/\<\>\^\$\%\*\&]+/ /g;
return $field;
}
Avatar billede erikjacobsen Ekspert
16. januar 2011 - 14:58 #1
Som den siger: "More information about this error may be available in the server error log." - hvad står der?
Avatar billede erikjacobsen Ekspert
16. januar 2011 - 15:01 #2
Een ting, der springer i øjnene, er den første linie i dit script, er angivelse af stien til sendmail. Det er forkert - du skal angive stien til Perl, se: https://support.webhostingpad.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=17
Avatar billede Insany92 Nybegynder
16. januar 2011 - 15:59 #3
Ahh, tusind tak kan være det hjælper at ændre det ;)
Prøver jeg lige :)
Avatar billede Insany92 Nybegynder
16. januar 2011 - 16:08 #4
Okay lidt hjalp det.
Når man udfylder det kommer der ikke længere "internal error message", den går videre til "Tak for din besked".

Men jeg modtager desværre stadig ingen mails :(
Avatar billede erikjacobsen Ekspert
16. januar 2011 - 16:35 #5
Du har kontrolleret, at den ikke ender som spam-mail?

Ved du om din host understøtter den anvendelse af sendmail, og hvad deres sti til sendmail er?
Avatar billede Insany92 Nybegynder
16. januar 2011 - 16:47 #6
Jeg har tjekket spam mail, den er der ikke :/

Jep min host understøtter sendmail og jeg har tjekkede at mappe og fil "talene" passer.

Jeg har skrevet med webhostingpads support og de har hjulpet mig alt de kunne og siger de ikke kan hjælpe mig mere.
Avatar billede erikjacobsen Ekspert
16. januar 2011 - 17:03 #7
Prøv at indsætte en afsendermail-adresse ind for et domæne på serveren.

Ellers understøtter din host jo også andet end lige Perl...
Avatar billede Insany92 Nybegynder
16. januar 2011 - 17:36 #8
Okay så jeg skal lave en mail f.eks. info@dagens6.dk og så prøve at bruge den i mail formularen?

Okay men hvordan mener du jeg skal bruge andet end perl?
Avatar billede erikjacobsen Ekspert
16. januar 2011 - 20:04 #9
Grunden til at du kan prøve med en afsender-adresse, fra et domæne der findes på maskinen, er at den ellers kunne blive frasorteret som spam allerede i sendmail.

Andre muligheder end Perl kunne være PHP, som dit webhotel ser ud til at understøtte.
Avatar billede Insany92 Nybegynder
17. januar 2011 - 23:28 #10
Jeg har fundet ud af at min "default" mail account har modtaget ALLE mails som er blevet submitted i formularen.
Men eftersom "default" mail er noget lignende asdaseasd@server23230.com så lavede jeg min egen: info@dagens6.dk
Jeg skiftede mailen til den i mail formularen men istedet for at sende beskeden til info@dagens6.dk email accounten så blev beskeden igen sendt til "default" mailen, i beskeden stod der:



This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  info.dk@server219.webhostingpad.com
    Unrouteable address


Ved du hvad jeg kan gøre så jeg kan bruge min private mail eller dagens6@info.dk som mail receiver istedet for den "default".

På forhånd tak!
Venlig hilsen

Asger Michelsen :)
Avatar billede erikjacobsen Ekspert
17. januar 2011 - 23:48 #11
Vi er derude hvor jeg ikke selv er helt med på det, men spam-software forsøger at genkende spam ved at på hvad et normalt mail-program sender med af mail-headers, og hvad du så ikke gør.

Så du burde kunne kigge på headers i en normal mail, og simulere disse.
Avatar billede Insany92 Nybegynder
18. januar 2011 - 11:05 #12
Super, tak for hjælpen!
Har jo læst du ikke vil have point så lukker den selv :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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