mail() parameter
//nieuw script staat verder naar onder op de pagina!!!//
de errors zijn nu weg
Gewijzigd op 20/02/2006 12:02:00 door Huh bla
Lijkt mij een beetje gaar, ik neem aan dat dat een array is met meerdere emailadressen...
Wat je dan doet is per item in je array een aparte mail uitvoeren.
Of het in de headers zetten met Bcc en Cc
komt van
$DataBestand = "nieuwsbrief_data.php";
en daar staan de e-mail adressen in.
maar deze zijn gescheiden door 'enters' niet door komma's. Zou dat het probleem kunnen zijn
als ik een gewoon adres invoer doet hij het
maar het lukt niet om de adressen uit het bestand te halen..
Kijk eens hoe die $DataBestand in elkaar zit? Is dat een nette array? Of moet dat eerst nog geexplode worden?
Waarom doe je niet iets als:
En als het nog geen array is dan kan je altijd nog exploden op de komma.
ik snap het niet, ik heb dus een bestandje met e-mail adressen (zit NOG geen beveiliging op).
wat nu dus moet gebeuren, is dat als ik een e-mail verstuur met dit formulier, dat het moet worden verzonden naar alle adressen in dat bestand.
Maar dan zou het toch gewoon moeten werken wat ik nu heb?
maar niemand krijgt een e-mail...
heb het script nl nog al snel nodig, dit is de laatste fout, de andere errors zijn nu allemaal al weg
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
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
<?
error_reporting(E_ALL);
// Headers zetten zodat de de inhoud niet word gecashed
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Config Gedeelte
$JouwWebsiteNaam = "JakeThomas.com"; // Jouw website naam
$JouwEmail = "[email protected]"; // Jouw e-mail adres
$fout_text = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$fout_vakje = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$DataBestand = "nieuwsbrief_data.php"; // Het bestand met e-mailadressen
// Hierna hoef je niks meer te veranderen!
$onderwerp = $_POST['onderwerp'];
$email = file($DataBestand);
$bericht = $_POST['bericht'];
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
// Headers
$headers = "From: ".$JouwWebsiteNaam." <".$JouwEmail.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Bcc: ".$email."\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "</BODY></HTML>";
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR>";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "Message send";
// formulier wordt niet weer getoond
$Formulier = TRUE;
// print('<meta http-equiv="refresh" content="1;url=nieuwsbriefversturen2.php">');
}
}
if(!isset($Formulier))
{
?>
error_reporting(E_ALL);
// Headers zetten zodat de de inhoud niet word gecashed
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Config Gedeelte
$JouwWebsiteNaam = "JakeThomas.com"; // Jouw website naam
$JouwEmail = "[email protected]"; // Jouw e-mail adres
$fout_text = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$fout_vakje = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$DataBestand = "nieuwsbrief_data.php"; // Het bestand met e-mailadressen
// Hierna hoef je niks meer te veranderen!
$onderwerp = $_POST['onderwerp'];
$email = file($DataBestand);
$bericht = $_POST['bericht'];
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
// Headers
$headers = "From: ".$JouwWebsiteNaam." <".$JouwEmail.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Bcc: ".$email."\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "</BODY></HTML>";
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR>";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "Message send";
// formulier wordt niet weer getoond
$Formulier = TRUE;
// print('<meta http-equiv="refresh" content="1;url=nieuwsbriefversturen2.php">');
}
}
if(!isset($Formulier))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
...
</head>
<body>
<form method="post" action="">
<table border="0" cellpadding="5" cellspacing="0" width="300" align="center">
<tr>
<td class="">
Onderwerp:
</td>
<td>
<input
type="text"
class=""
id="onderwerp"
name="onderwerp"
maxlength="30"
value=""
/>
</td>
</tr>
<tr>
<td valign="top" class="">
Bericht:
</td>
<td>
<textarea
id="bericht"
name="bericht"
class=""
cols="30"
rows="4"
value=""
></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input
type="submit"
id="verzenden"
name="verzenden"
value="Verzenden"
/>
<input
type="reset"
id="wis"
name="wis"
value="Wis velden"
/>
</td>
</tr>
</table>
</form>
</body>
</html>
alleen krijgt niemand uit het bestand nu een e-mail :S
Gewijzigd op 20/02/2006 12:09:00 door Huh bla
Luuk:
?
ik snap het niet, ik heb dus een bestandje met e-mail adressen (zit NOG geen beveiliging op).
wat nu dus moet gebeuren, is dat als ik een e-mail verstuur met dit formulier, dat het moet worden verzonden naar alle adressen in dat bestand.
Maar dan zou het toch gewoon moeten werken wat ik nu heb?
maar niemand krijgt een e-mail...
ik snap het niet, ik heb dus een bestandje met e-mail adressen (zit NOG geen beveiliging op).
wat nu dus moet gebeuren, is dat als ik een e-mail verstuur met dit formulier, dat het moet worden verzonden naar alle adressen in dat bestand.
Maar dan zou het toch gewoon moeten werken wat ik nu heb?
maar niemand krijgt een e-mail...
In het config gedeelte staat dit:
maar ik zie nergens code waarmee dat bestand wordt uitgelezen, dus lijkt het me logisch dat niemand een mail ontvangt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
else {
$mails = file ($DataBestand);
$n = count ($mails);
for ($i = 0; $i < $n; $i++) {
$email = str_replace (',', '', $mails[$i]);
mail($email, $onderwerp, $message, $headers);
}
// Bericht als mail succesvol is verzonden
echo 'Message send';
// formulier wordt niet weer getoond
$Formulier = true;
}
?>
else {
$mails = file ($DataBestand);
$n = count ($mails);
for ($i = 0; $i < $n; $i++) {
$email = str_replace (',', '', $mails[$i]);
mail($email, $onderwerp, $message, $headers);
}
// Bericht als mail succesvol is verzonden
echo 'Message send';
// formulier wordt niet weer getoond
$Formulier = true;
}
?>
Let wel: dit werkt alleen als het aantal e-mails niet al te groot wordt. Anders kun je beter met de phpmailer class aan de gang gaan.
ik ga het allemaal is uitproberen vanuit mijn ziekbed :P