$body wordt niet opgenomen in emailbericht
Ik heb een formulier gemaakt, maar heb helaas geen kennis van PHP, dus met een hoop moeite heb ik een script in elkaar gezet.
Nadat het formulier is ingevuld worden er twee mailtjes gestuurd:
Een naar de verzender van het formulier, dit gaat goed.
Een naar mij met de ingevulde gegevens en de eventuele attachment, dit gaat niet helemaal goed, want ik krijg alleen de attachment binnen.
Kan iemand mij helpen om dit probleem op te lossen?
HTML:
<div id="formulier">
<form name="test" action="php/test.php" method="post" enctype="multipart/form-data">
<fieldset>
<ul id="form">
<li class="label"><label for="voorletters">Voorletters*</label><input type="text" name="voorletters" id="voorletters" value=""><span class="fieldbox"></span></li>
<li class="label"><label for="tussenvoegsel">Tussenvoegsel</label><input type="text" name="tussenvoegsel" id="tussenvoegsel" value=""><span class="fieldbox"></span></li>
<li class="label"><label for="achternaam">Achternaam*</label><input type="text" name="achternaam" id="achternaam" value=""></li>
<li class="label"><label for="rubriek">Rubriek</label><select name="rubriek" id="rubriek">
<option value="None">Maak uw keuze</option>
<option value="Rubriek 1">Rubriek 1</option>
<option value="Rubriek 2">Rubriek 2</option>
<option value="Rubriek 3">Rubriek 3</option>
</select><span class="rubriek"></span></li>
<li class="label"><label for="upload">Upload bestand</label><input type="file" name="upload" id="upload"><span class="img"></span></li>
<li><input type="hidden" name="robot" id="robot"></li>
<li><input type="submit" value="Verzenden" id="submit" name="submit"></li>
</ul>
</fieldset>
</form>
</div>
PHP:
Code (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$ontvanger = "mijn email";
$hoofd = "onderwerp";
$voorletters = strtoupper ($_POST['voorletters']);
$tussenvoegsel = strtolower($_POST['tussenvoegsel']);
$achternaam = ucfirst ($_POST['achternaam']);
$rubriek = $_POST['rubriek'];
if($_POST['robot'] != "") {
echo 'U bent een robot.';
}
else
{
$upload_name=$_FILES["upload"]["name"];
$upload_type=$_FILES["upload"]["type"];
$upload_size=$_FILES["upload"]["size"];
$upload_temp=$_FILES["upload"]["tmp_name"];
{
$fp = fopen($upload_temp, "rb");
$file = fread($fp, $upload_size);
$file = chunk_split(base64_encode($file));
$num = md5(time());
//Normal headers
$headers = "From: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";
// This two steps to help avoid spam
$headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
// Attachment headers
$headers .= "Content-Type:".$upload_type." ";
$headers .= "name=\"".$upload_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$upload_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
$body = "";
$body .= "Voorletters: ";
$body .= "\n";
$body .= $voorletters;
$body .= "\n";
$body .= "\n";
$body .= "Tussenvoegsel: ";
$body .= "\n";
$body .= $tussenvoegsel;
$body .= "\n";
$body .= "\n";
$body .= "Achternaam: ";
$body .= "\n";
$body .= $achternaam;
$body .= "\n";
$body .= "\n";
$formsent = mail($ontvanger, $hoofd, $body, $headers);
fclose($fp);
}
if ($formsent){
$body = "";
$body .= "Geachte heer / mevrouw $tussenvoegsel $achternaam,";
$body .= "\n";
$body .= "\n";
mail($email, $hoofd, $body, 'From:<' . $ontvanger . '>');
header('Location: http://www.domeinnaam.nl/bedankt.html');
}
else{
header('Location: http://www.domeinnaan.nl/foutmelding.html'); }
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$ontvanger = "mijn email";
$hoofd = "onderwerp";
$voorletters = strtoupper ($_POST['voorletters']);
$tussenvoegsel = strtolower($_POST['tussenvoegsel']);
$achternaam = ucfirst ($_POST['achternaam']);
$rubriek = $_POST['rubriek'];
if($_POST['robot'] != "") {
echo 'U bent een robot.';
}
else
{
$upload_name=$_FILES["upload"]["name"];
$upload_type=$_FILES["upload"]["type"];
$upload_size=$_FILES["upload"]["size"];
$upload_temp=$_FILES["upload"]["tmp_name"];
{
$fp = fopen($upload_temp, "rb");
$file = fread($fp, $upload_size);
$file = chunk_split(base64_encode($file));
$num = md5(time());
//Normal headers
$headers = "From: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";
// This two steps to help avoid spam
$headers .= "Message-ID: <".gettimeofday()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
// Attachment headers
$headers .= "Content-Type:".$upload_type." ";
$headers .= "name=\"".$upload_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$upload_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
$body = "";
$body .= "Voorletters: ";
$body .= "\n";
$body .= $voorletters;
$body .= "\n";
$body .= "\n";
$body .= "Tussenvoegsel: ";
$body .= "\n";
$body .= $tussenvoegsel;
$body .= "\n";
$body .= "\n";
$body .= "Achternaam: ";
$body .= "\n";
$body .= $achternaam;
$body .= "\n";
$body .= "\n";
$formsent = mail($ontvanger, $hoofd, $body, $headers);
fclose($fp);
}
if ($formsent){
$body = "";
$body .= "Geachte heer / mevrouw $tussenvoegsel $achternaam,";
$body .= "\n";
$body .= "\n";
mail($email, $hoofd, $body, 'From:<' . $ontvanger . '>');
header('Location: http://www.domeinnaam.nl/bedankt.html');
}
else{
header('Location: http://www.domeinnaan.nl/foutmelding.html'); }
}
}
?>
Haal deze $body = ""; weg boven de regel Geachte heer / mevrouw
Heb het geprobeerd, maar nu komen beide mailtjes in een mail onder elkaar te staan gericht aan degene die het formulier heeft ingevuld en naar mij wordt nog steeds alleen de bijlage gestuurd.
http://www.phphulp.nl/php/forum/topic/twee-scripts-samenvoegen/92128/ ?
Gebruik phpmailer/swiftmailer om te mailen.
Voorkomt ook allerlei problemen met headers in het mailbericht.
Wat doet { op regel 22?
Je controleert niet de mail verzonden wordt (regel 77)
Is dit het vervolg op Gebruik phpmailer/swiftmailer om te mailen.
Voorkomt ook allerlei problemen met headers in het mailbericht.
Wat doet { op regel 22?
Je controleert niet de mail verzonden wordt (regel 77)