Avatar billede oli10b Nybegynder
08. maj 2011 - 17:49 Der er 28 kommentarer og
1 løsning

FormMail hos one.com - virker ikke længere!

Jeg har en side med en formmail, den har hele tiden kunnet sende mail til mig men stoppede med at virke i går. Hvad kan der være galt???

Hjemmesiden med formmailen:
www.oli10b.dk/besked

Kode:
<FORM method="post" action="http://www.oli10b.dk/cgi-bin/FormMail.pl">
<input type="hidden" name="recipient" value="support@oli10b.dk">
<input type="hidden" name="subject" value="IT support - Ny besked">
<input type="hidden" name="redirect" value="http://www.oli10b.dk/tak-for-besked">

Navn:<INPUT TYPE="TEXT" VALUE="" NAME="Navn" SIZE="20">
Mail:<INPUT TYPE="TEXT" VALUE="" NAME="Mail" SIZE="20">
Din besked:<TEXTAREA name="Besked" COLS="30" ROWS="5"></TEXTAREA>
<INPUT TYPE="Submit" VALUE="Send">
<INPUT TYPE="Reset" VALUE="Nulstil">
</form>

Vil indrømme at jeg muligvis har været inde og pille ved PHP og DNS, men ved ikke og det kan være det der er skyld i problemet.
Avatar billede kjeldsted Novice
09. maj 2011 - 16:31 #1
Kan du ikke paste PHP kilde koden?

Tror måske du har problem med afsender adressen.
Avatar billede oli10b Nybegynder
09. maj 2011 - 16:45 #2
Den eneste jkde jeg har er den kode jeg har skrevet.
Avatar billede kjeldsted Novice
09. maj 2011 - 17:01 #3
Ah. Tænkte på at du bruge PHP mail. Og hvorfor egentlig ikke dét?

Findes support@oli10b.dk adressen?
Avatar billede oli10b Nybegynder
09. maj 2011 - 17:06 #4
jeg bruger bare den mail one.com tilbyder altså: support@oli10b.dk
Og jeg kan godt sende mail fra andre konti og til den
Avatar billede kjeldsted Novice
09. maj 2011 - 17:12 #5
jeg bruger bare den mail one.com tilbyder altså: support@oli10b.dk

Altså du har været inde i kontrolpanelet for at tilføje denne adresse? Det er jo ikke nogle one.com gør for dig.
Avatar billede oli10b Nybegynder
09. maj 2011 - 17:18 #6
hvad for et kontrol panel
Avatar billede oli10b Nybegynder
09. maj 2011 - 17:38 #7
Kan du evt. hjælpe mig med en formmail som kører med PHP
Avatar billede kjeldsted Novice
09. maj 2011 - 23:41 #8
Jeg ville sagtens kunne hjælpe med en PHP mail. Det er bestemt ikke svært.

Og det jeg mente med mailen er om du selv gennem one.com kontrolpanelet har oprettet en mailadresse der hedder support@oli10b.dk.

Men mails via. PHP er noget så simpelt som:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>
(fra http://php.net/manual/en/function.mail.php)

Og så er det VIGTIG at afsender mailadressen er en gyldig adresse for at det virker hos One.com

Skriv hvis du har spørgsmål :)
Avatar billede oli10b Nybegynder
10. maj 2011 - 17:06 #9
så det eneste jeg skal gøre, er at insætte den kode på den side jeg vil have formmailen?
Avatar billede kjeldsted Novice
10. maj 2011 - 17:17 #10
Ja. Sådan set.

Nu ved jeg ikke hvor meget du er inde i HTML forms og PHP, men du skal lave en PHP fil som indeholder ovenstående PHP mail funktion (du skal selvfølgelig lige sørge for at indsætte de rigtige data fra $_GET), og så skal din form pege på denne PHP fil fra action parametren.
Avatar billede oli10b Nybegynder
10. maj 2011 - 19:42 #11
Må indrømme jeg er stået af, så god er jeg ikke til det. Men jeg kan godt se det er svært for dig at hjælpe mig yderligere.
Avatar billede kjeldsted Novice
10. maj 2011 - 19:55 #12
Det er da bare i orden så :) Det var lidt svært at vide hvor du står med PHP og hvordan jeg skulle hjælpe.

Men så tager vi et eksempel:

Indhold af form:
<form method="post" action="send_mail.php">
Navn:<input type="text" value="" name="navn" size="20">
Mail:<input type="text" value="" name="mail" size="20">
Din besked:<textarea name="besked" cols="30" rows="5"></textarea>
<input type="Submit" value="Send">
<input type="Reset" value="Nulstil">
</form>


Indhold af send_mail.php
<?php
$to      = 'support@oli10b.dk';
$subject = 'the subject';
$message = 'Besked fra: ' .$_GET['navn'].'('.$_GET['mail'].')<br>'.$_GET['besked'];
$headers = 'From: support@oli10b.dk' . "\r\n" .
    'Reply-To: '.$_GET['mail'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>


Så vidt jeg lige kan se skulle den virke. Men har ikke lige testet, så vend gerne tilbage.
Avatar billede kjeldsted Novice
10. maj 2011 - 19:57 #13
Og så kan du jo så efter sidste linje i php filen videresende brugeren til fx. en side der fortæller at beskeden er sendt.

header('Location: ./success.html');
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:02 #14
Det pørver jeg tusind tak for hjælpen :D
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:02 #15
*Prøver
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:04 #16
Men hvor skal jeg oploade php filen til?
Avatar billede kjeldsted Novice
10. maj 2011 - 20:13 #17
Den skal bare ligge i samme mappe som den fil hvor formen er i.

Desuden lige for at forklare lidt, så er scriptet nu bygget sådan op at der bliver sendt en mail til support@oli10b.dk med afsender som support@oli10b.dk. Reply-to adressen er så den brugeren skriver ind. Altså så når du modtager en mail og trykker på besvar finder den automatisk frem til brugerens adresse.
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:17 #18
Hvor er det bare smart :)

Er lidt i tvivl om det der med vidersende til en andenside om det er sat rigtigt op.
Er det her rigtigt sat op?:

Script:

<form method="post" action="send_mail.php">
Navn:<input type="text" value="" name="navn" size="20">
Mail:<input type="text" value="" name="mail" size="20">
Din besked:<textarea name="besked" cols="30" rows="5"></textarea>
<input type="Submit" value="Send">
<input type="Reset" value="Nulstil">
</form>


PHP fil:

<?php
$to      = 'support@oli10b.dk';
$subject = 'the subject';
$message = 'Besked fra: ' .$_GET['navn'].'('.$_GET['mail'].')<br>'.$_GET['besked'];
$headers = 'From: support@oli10b.dk' . "\r\n" .
    'Reply-To: '.$_GET['mail'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>
header('Location: www.oli10b.dk/tak-for-besked');
Avatar billede kjeldsted Novice
10. maj 2011 - 20:19 #19
Hov, nej. Header tingen skal være på den anden side af ?>
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:20 #20
sådan her:
<?php
$to      = 'support@oli10b.dk';
$subject = 'the subject';
$message = 'Besked fra: ' .$_GET['navn'].'('.$_GET['mail'].')<br>'.$_GET['besked'];
$headers = 'From: support@oli10b.dk' . "\r\n" .
    'Reply-To: '.$_GET['mail'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
header('Location: ./tak-for-besked');
?>
Avatar billede kjeldsted Novice
10. maj 2011 - 20:22 #21
Præcis :)
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:27 #22
Hvor er det bare fedt. Det virker som det skal. Næsten.

Siden bliver videresendt rigtigt, og jeg modtager en mail, men det eneste der står i mailen er:

Besked fra: ()<br>

og jeg har udfyldt alle felter
Avatar billede kjeldsted Novice
10. maj 2011 - 20:29 #23
Hm... Tester lige selv engang.
Avatar billede kjeldsted Novice
10. maj 2011 - 20:31 #24
Hosva. Det er det der sker når man er for hurtig på tasterne.

Alle steder med $_GET['

skal ændres til $_POST['

Altså:

<?php
$to      = 'support@oli10b.dk';
$subject = 'the subject';
$message = 'Besked fra: ' .$_POST['navn'].'('.$_POST['mail'].')<br>'.$_POST['besked'];
$headers = 'From: support@oli10b.dk' . "\r\n" .
    'Reply-To: '.$_POST['mail'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
header('Location: ./tak-for-besked');
?>

Det var vist dem alle.
Avatar billede kjeldsted Novice
10. maj 2011 - 20:34 #25
Og så er det jo ikke en HTML mail vi laver hér så brugen af <br> er selvfølgelig ikke så praktisk.

Prøv i stedet med:

$message = 'Besked fra: ' .$_POST['navn'].'('.$_POST['mail'].")\n\r".$_POST['besked'];
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:38 #26
det ser mere rigtigt ud. den mail jeg får nu ser sådan ud:

Besked fra: Jesper(lala1074@hotmail.com)<br>Jeg har fået virus

Men kan man på nogen måde stille det anderledes op, så det ser lidt pænere ud, fx.

Afsender: Jesper

Mail: lala1074@hotmail.com

Besked: Jeg har fået virus
Avatar billede kjeldsted Novice
10. maj 2011 - 20:44 #27
Ja. Som skrevet #25 glemte jeg at vi ikke havde lavet det som en HTML mail. Så mener at det er \n der skal til for linjeskift.
Men det du skriver skulle være:

$message = 'Afsender: ' .$_POST['navn']."\n\nMail: ".$_POST['mail']."\n\nBesked: ".$_POST['besked'];
Avatar billede oli10b Nybegynder
10. maj 2011 - 20:49 #28
Det KAN bare ikke blive mere perfekt, er så tilfreds.

Jeg har kæmpet i så lang tid med formmail med noget cgi ting, og det gad bare ikke virke, på trods af at det har virket før. Men det her PHP løser bare alle problemer.

Lig et svar :D
Avatar billede kjeldsted Novice
10. maj 2011 - 20:53 #29
Well. Kender ikke så meget til det formmail. Men jeg ved da at det hér PHP halløj altid virker.
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





Premium
Søstrene Grene skifter Microsoft ud med SAP og rykker for første gang i clouden i stor ERP-transformation: Der er brug for en helt ny tilgang