Email komt soms niet aan.
Wij hebben voor onze internetradio een verzoek script die het naar onze email stuurt.
Altijd komen de mails aan, maar heel af en toe niet. dan komt hij niet aan op 1 of andere manier.
Dit is het script:
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
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
<?
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'Verzoek NAAM'; // Je naam...
$cEmail = '[email protected]'; // email waar het heen moet
$cOndPre = ''; // prefix voor onderwerp
$cOndSuf = ''; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten
if(!empty($_POST['verstuur']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal erros.
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
// uiteindelijk toch mailen :)
$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Naam: '.$_POST['naam'].'<br>Email: '.$_POST['email'].'<br>Artiest:'.$_POST['website'].'<br>Titel: '.$_POST['onderwerp'].'<br>Bericht: '.$_POST['bericht'].'';
mail($cEmail,$cOndPre.' Verzoek '.$cOndSuf,$pBericht,$pHeader);
echo 'Je verzoekje is aangekomen bij de DJ!';
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
</p>
<form method="post" action="">
<dl>
<dt><b> </b></dt>
<dt><b> Naam</b> </dt>
<dd><input type="text" name="naam" size="15" value="<?= $pNaam; ?>"></dd>
<dt><b> Email</b> <font color="#999999"><i></i></font></dt>
<dd><input type="text" name="email" size="15" value="<?= $pEmail; ?>"></dd>
<dt><b> Artiest</b></dt>
<dd><input type="text" name="website" size="15" value="<?= $pWebsite; ?>"></dd>
<dt><b> Titel</b> <font color="#999999"><i></i></font></dt>
<dd><input type="text" name="onderwerp" size="15" value="<?= $pOnderwerp; ?>"></dd>
<dt><b> Bericht</b> <font color="#999999"><i></i></font></dt>
<dd><textarea name="bericht" cols="40" rows="10"><?= $pBericht; ?></textarea></dd>
<dd>
<input type="submit" value="Verstuur Verzoek" name="verstuur"> <input type="reset" value="Leeg velden"></dd>
</dl>
</form>
<?
}
?>
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'Verzoek NAAM'; // Je naam...
$cEmail = '[email protected]'; // email waar het heen moet
$cOndPre = ''; // prefix voor onderwerp
$cOndSuf = ''; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten
if(!empty($_POST['verstuur']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal erros.
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
// uiteindelijk toch mailen :)
$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Naam: '.$_POST['naam'].'<br>Email: '.$_POST['email'].'<br>Artiest:'.$_POST['website'].'<br>Titel: '.$_POST['onderwerp'].'<br>Bericht: '.$_POST['bericht'].'';
mail($cEmail,$cOndPre.' Verzoek '.$cOndSuf,$pBericht,$pHeader);
echo 'Je verzoekje is aangekomen bij de DJ!';
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
</p>
<form method="post" action="">
<dl>
<dt><b> </b></dt>
<dt><b> Naam</b> </dt>
<dd><input type="text" name="naam" size="15" value="<?= $pNaam; ?>"></dd>
<dt><b> Email</b> <font color="#999999"><i></i></font></dt>
<dd><input type="text" name="email" size="15" value="<?= $pEmail; ?>"></dd>
<dt><b> Artiest</b></dt>
<dd><input type="text" name="website" size="15" value="<?= $pWebsite; ?>"></dd>
<dt><b> Titel</b> <font color="#999999"><i></i></font></dt>
<dd><input type="text" name="onderwerp" size="15" value="<?= $pOnderwerp; ?>"></dd>
<dt><b> Bericht</b> <font color="#999999"><i></i></font></dt>
<dd><textarea name="bericht" cols="40" rows="10"><?= $pBericht; ?></textarea></dd>
<dd>
<input type="submit" value="Verstuur Verzoek" name="verstuur"> <input type="reset" value="Leeg velden"></dd>
</dl>
</form>
<?
}
?>
Wie kan mij hier mee helpen?
Mvg,
Gewijzigd op 01/01/2012 17:29:48 door Kevin Blokzijl
Ereg zou ik niet meer gebruiken.
Waarom ob_start
Mogelijk dat je headers de oorzaak zijn?
- php mailer
- swift mailer
En dan nog wat opmerkingen:
- waarom de ob_start, deze heb je maar in 0.0002 % van de gevallen ook daadwerkelijk nodig
- weest bewust wat je controleert met de functie empty, in feite is het een zinlose functie, je kunt beter gebruik maken van trim($iets) == '' of in jouw geval trim($iets) != '', kijken of er wat opgeslagen is in een array, gebruik dan count of array_count.
- je vergeet overal bij de $_POST te controleren of de key waarde bestaat
- je kan ook niet op de submit van het form controleren, deze hoeft niet aanwezig te zijn gerbuik: $_SERVER['REQUEST_METHOD'] == 'POST'
- het toevoegen van   voor opmaak is ook niet de bedoeling
- het is ook zinloos om $_POST waarden toe te kennen aan nieuwe variabelen
- erigi is een functie welke je niet meer kunt gebruiken, deze moet je herschrijven naar een preg_ functie
----------------------------------
je hebt een coding style welke mij in ieder geval niet bevalt.
Code (php)
Door overzichtelijk te programeren, maak je je code leesbaar en maak je ook minder fouten. Een hulpmiddel is natuurlijk ook een goede php editor.
Gewijzigd op 01/01/2012 17:49:54 door Noppes Homeland
Quote:
je hebt een coding style welke mij in ieder geval niet bevalt.
Uiteraard is dit natuurlijk totaal persoons bebonden. Ik zelf doe het bijv. zo:
Doe wat je zelf het best, overzichtelijkst en mooist vind dan zit het goed.