PHP Mail script - layout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Martin11468
  • Registratie: Maart 2005
  • Laatst online: 19-09 13:05
Hallo,

Ik ben bezig met het opzetten van een php mail script om de variabelen uit een formulier door te sturen naar mijn mail.

Ik heb het script wel werkend alleen komt in de mail alles achter elkaar te staan i.p.v. alles geordend onder elkaar. het is waarschijnlijk een kleinigheidje maar ik kom er niet achter..

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<html>
<head><title>PHP Mail Sender</title></head>
<body>
<?php

/* All form fields are automatically passed to the PHP script through the array $HTTP_POST_VARS. */
$reply_mail = $HTTP_POST_VARS['mail_adress'];
$subject = $HTTP_POST_VARS['subject'];
$name = $HTTP_POST_VARS['name'];
$email = "info@tiemensensteenwoerd.nl";
$phone_nmmr = $HTTP_POST_VARS['phone_nmmr'];
$message = $HTTP_POST_VARS['message'];

    $headers = "From: ".$NAME." <".$reply_mail.">\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "Return-Path: Mail-Error <martin@focusdigital.nl>\r\n";
    $headers .= "Reply-To: ".$name." <".$reply_mail.">\r\n"; 

 $mailbody = "

Naam:       $name \n
E-mailadres:    $reply_email \n
Telefoonnummer:     $phone_nmmr \n
Bericht:        $message \n

deze mail is automatisch gegenereerd en verstuurd.\n
";  


/* PHP form validation: the script checks that the Email field contains a valid email address and the Subject field isn't empty. preg_match performs a regular expression match. It's a very powerful PHP function to validate form fields and other strings - see PHP manual for details. */
if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
  echo "<h4>Invalid email address</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
} elseif ($subject == "") {
  echo "<h4>No subject</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
}

/* Sends the mail and outputs the "Thank you" string if the mail is successfully sent, or the error string otherwise. */
elseif (mail($email,$subject,$mailbody,$headers)) {
  echo "<h4>uw gegevens zijn verstuurd, u krijgt zo spoedig mogelijk bericht</h4>";
} else {
  echo "<h4>uw gegevens kunnen niet verstuurd worden naar $email</h4>";
}
?>
</body>
</html> 


alvast bedankt!

MRTN


Acties:
  • 0 Henk 'm!

  • Kettrick
  • Registratie: Augustus 2000
  • Nu online

Kettrick

Rantmeister!

probeer eens \r\n ipv \n :)

Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
je content-type is html, dan kun je toch gewoon <br /> gebruiken?

Acties:
  • 0 Henk 'm!

  • Martin11468
  • Registratie: Maart 2005
  • Laatst online: 19-09 13:05
dankjewel!, ik heb het met <br /> geprobeerd en het werkt!,, maar wat is het verschil russen \n en \r\n ? ik heb het nog niet geprobeerd. maar ik ben nieuw met php dus alle kennis is welkom ;)

MRTN


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 18-09 23:26

Tjark

DON'T PANIC

Tip: gebruik iets als de XPM class om te mailen: http://www.xpertmailer.com/

*insert signature here


Acties:
  • 0 Henk 'm!

Verwijderd

Martin11468 schreef op vrijdag 07 november 2008 @ 11:37:
dankjewel!, ik heb het met <br /> geprobeerd en het werkt!,, maar wat is het verschil russen \n en \r\n ? ik heb het nog niet geprobeerd. maar ik ben nieuw met php dus alle kennis is welkom ;)
\r\n of \n heeft niet zo zeer met PHP te maken, dan wel met mail-specificaties. Regels in de header van je mail moeten aan het eind een \r\n als linefeed hebben (RFC 2045). Maar dat heb je ook al gedaan in je code.
<BR /> is , zoals al gezegd, de oplossing, want e-mailclients zullen je mail als html behandelen, mits ze dat kunnen.

Wbt je PHP code, je gebruikt HTTP_POST_VARS, en dat is oud. Heb je deze code toevallig ergens van gecopy/paste? Tegenwoordig kun je daar beter $_POST voor gebruiken, zie ook http://nl2.php.net/manual/en/reserved.variables.php. HTTP_*_VARS werkt nog wel, maar 't kan uit staan vanaf php5.0

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

robg1984 schreef op vrijdag 07 november 2008 @ 11:30:
je content-type is html, dan kun je toch gewoon <br /> gebruiken?
Beter is het om de content type om te veranderen naar text/plain, aangezien je toch geen html gebruikt. Voordeel is wel dat iedereen je mailtje goed kan lezen.

Acties:
  • 0 Henk 'm!

  • Martin11468
  • Registratie: Maart 2005
  • Laatst online: 19-09 13:05
Verwijderd schreef op vrijdag 07 november 2008 @ 11:54:
[...]


\r\n of \n heeft niet zo zeer met PHP te maken, dan wel met mail-specificaties. Regels in de header van je mail moeten aan het eind een \r\n als linefeed hebben (RFC 2045). Maar dat heb je ook al gedaan in je code.
<BR /> is , zoals al gezegd, de oplossing, want e-mailclients zullen je mail als html behandelen, mits ze dat kunnen.

Wbt je PHP code, je gebruikt HTTP_POST_VARS, en dat is oud. Heb je deze code toevallig ergens van gecopy/paste? Tegenwoordig kun je daar beter $_POST voor gebruiken, zie ook http://nl2.php.net/manual/en/reserved.variables.php. HTTP_*_VARS werkt nog wel, maar 't kan uit staan vanaf php5.0
Ja dat klopt, ik heb de code deels van een andere site gehaald en dan maar try&error totdat het script doet wat je wil ;),, ik heb nu werkend door <br /> te gebruiken om naar de volgende regel te springen.. maar met jullie tips ga ik zeker kijken of ik wat aan kan passen!

MRTN

Pagina: 1