Mail functie in php
Als ik het registratie systeem heb ingebouwd, moet er een automatische confirmatiemail de deur uit. Dit wil helaas niet lukken.
Ik zie wel dat de persoon wordt toegevoegd aan de database dat lukt wel.
De code voor het versturen van de confirmatiemail is:
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
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
<?php
// Include de class (jouw pad kan natuurlijk afwijkend zijn)
include_once("include/classes/class.phpmailer.inc");
$mail = new PHPMailer();
// Afzender
$mail->FROM = trim("[email protected]");
$mail->FROMName = trim("Jouw naam");
$mail->AddReplyTo = trim("Jouw naam");
// Geadresseerde
$mail->AddAddress($_POST['email'], $_POST['naam']);
// Onderwerp
$mail->Subject = "Confirmeren van aanmelding";
// Tekstversie
$return = "Beste " . $_POST['naam'] . ",\n\n";
$return .= "Je hebt je zojuist aangemeld voor de nieuwsbrief van www.jouwsite.nl. Door op onderstaande link te klikken confirmeer je je aanmelding:\n\n";
$return .= "http://www.jouwsite.nl/nieuwsbrief.php?actie=aanmelden&email=" . $_POST['email'] . "&code=" . $code . "\n\n";
$return .= "Met vriendelijke groeten,\n\n";
$return .= "jouwsite.nl";
$mail->AltBody = $return;
// HTML-versie
$return = "<html>
<head>
<title>Confirmeren van aanmelding</title>
<style type=\"text/css\">
body, td {
font-size : 11px;
font-family : verdana, tahoma, arial, helvetica;
}
</style>
</head>
<body>
<p>Beste " . $_POST['naam'] . ",</p>
<p>Je hebt je zojuist aangemeld voor de nieuwsbrief van www.jouwsite.nl. Door op onderstaande link te klikken confirmeer je je aanmelding:</p>
<p><a href=\"http://www.jouwsite.nl/nieuwsbrief.php?actie=aanmelden&email=" . $_POST['email'] . "&code=" . $code . "\">Confirmeer je aanmelding</a></p>
<p>Met vriendelijke groeten,</p>
<p>jouwsite.nl</p>
</body></html>";
$mail->Body = $return;
// Versturen
$mail->Send();
?>
// Include de class (jouw pad kan natuurlijk afwijkend zijn)
include_once("include/classes/class.phpmailer.inc");
$mail = new PHPMailer();
// Afzender
$mail->FROM = trim("[email protected]");
$mail->FROMName = trim("Jouw naam");
$mail->AddReplyTo = trim("Jouw naam");
// Geadresseerde
$mail->AddAddress($_POST['email'], $_POST['naam']);
// Onderwerp
$mail->Subject = "Confirmeren van aanmelding";
// Tekstversie
$return = "Beste " . $_POST['naam'] . ",\n\n";
$return .= "Je hebt je zojuist aangemeld voor de nieuwsbrief van www.jouwsite.nl. Door op onderstaande link te klikken confirmeer je je aanmelding:\n\n";
$return .= "http://www.jouwsite.nl/nieuwsbrief.php?actie=aanmelden&email=" . $_POST['email'] . "&code=" . $code . "\n\n";
$return .= "Met vriendelijke groeten,\n\n";
$return .= "jouwsite.nl";
$mail->AltBody = $return;
// HTML-versie
$return = "<html>
<head>
<title>Confirmeren van aanmelding</title>
<style type=\"text/css\">
body, td {
font-size : 11px;
font-family : verdana, tahoma, arial, helvetica;
}
</style>
</head>
<body>
<p>Beste " . $_POST['naam'] . ",</p>
<p>Je hebt je zojuist aangemeld voor de nieuwsbrief van www.jouwsite.nl. Door op onderstaande link te klikken confirmeer je je aanmelding:</p>
<p><a href=\"http://www.jouwsite.nl/nieuwsbrief.php?actie=aanmelden&email=" . $_POST['email'] . "&code=" . $code . "\">Confirmeer je aanmelding</a></p>
<p>Met vriendelijke groeten,</p>
<p>jouwsite.nl</p>
</body></html>";
$mail->Body = $return;
// Versturen
$mail->Send();
?>
Als je bij de aanmelding op aanmelding klikt, krijg je wel duidelijk een bericht van een confirmatiemail is verzonden.
Nu dacht ik, misschien ligt het aan de instelling van mijn mailserver oid. Maar dat is niet het geval. Dit kleine scriptje heb ik getest en werkt:
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
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
<?
# mail() voorbeeldscriptje
# Kijken of het formuliertje verzonden is en alle vakjes ingevuld zijn
if($_POST['submit'] && $_POST['aan'] && $_POST['onderwerp'] && $_POST['bericht'])
{
# formulier verzonden -> email sturen
# Je kan natuurlijk eerst nog allerlei checks enzo doen maar het is maar een voorbeeldje :)
$mail = mail($_POST['aan'], $_POST['onderwerp'], $_POST['bericht']);
if($mail)
echo("Email succesvol verzonden!");
else
echo("Emailen mislukt!");
}
else
{
# Niet verzonden -> formuliertje weergeven
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<input type="text" name="aan" /><br />
<input type="text" name="onderwerp" /><br />
<textarea name="bericht"></textarea><br />
<input type="submit" name="submit" value="Verstuur!" />
</form>
<?
}
# Einde voorbeeld
?>
# mail() voorbeeldscriptje
# Kijken of het formuliertje verzonden is en alle vakjes ingevuld zijn
if($_POST['submit'] && $_POST['aan'] && $_POST['onderwerp'] && $_POST['bericht'])
{
# formulier verzonden -> email sturen
# Je kan natuurlijk eerst nog allerlei checks enzo doen maar het is maar een voorbeeldje :)
$mail = mail($_POST['aan'], $_POST['onderwerp'], $_POST['bericht']);
if($mail)
echo("Email succesvol verzonden!");
else
echo("Emailen mislukt!");
}
else
{
# Niet verzonden -> formuliertje weergeven
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<input type="text" name="aan" /><br />
<input type="text" name="onderwerp" /><br />
<textarea name="bericht"></textarea><br />
<input type="submit" name="submit" value="Verstuur!" />
</form>
<?
}
# Einde voorbeeld
?>
Ziet iemand waarom er geen mailtjes worden verstuurd?
Bvd.
Gewijzigd op 01/01/1970 01:00:00 door Gerard Anoniem
Dan is het beter leesbaar.
Fatal error: Class 'PHPMailer' not found in /home/websitevanmij.nll/www/testbrief/post.php on line 4
Staat de class hier wel in? En klopt het pad wel?
Ik vraag me eigenlijk af of die lijn er wel in moet. Hetzelfde geldt voor $mail = new PHPMailer();
Tuurlijk, je moet die class includeren en aanroepen? Anders krijg je van die 'method' en 'member'-errors.
Is het niet zo dat je php mailer gedownload hebt, en dat je script nog de "syntax" van een oudere versie gebruik maakt? Dus dat de include bijvoorbeeld anders is geworden?
EDIT: de php 5/6 versie die ik gedownload heb (PHPmailer 5.1 als ik me niet vergis) kent sowiezo een heel andere manier om te gebruiken, kent zelfs geen map meer genaamd include.
EDIT2: kijk maar
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
als er een bevestigingsmail is gestuurd, dan staat daar de volgende code in:
http://www.mijnsite.nl/nieuwsbrief/aanmelden.php?actie=aanmelden&email=ditadresbevestigen@hotmail.com&code=UNP03pEBzRGZBLZkWEog
Door deze bevestiging moet hij de waarde van bevestiging van 0 naar 1 veranderen. Hoe kan ik dit oplossen?
Edit: het is al gelukt
Gewijzigd op 01/01/1970 01:00:00 door Gerard Anoniem
Op phphulp staat een paar simpel basis tutorials over hoe je die variabele uit een url kan halen en te verwerken.
peter schreef op 12.12.2009 21:45:
Dat zijn variabele die in een link zitten, denk dat je beter even kan verdiepen in php voordat je met dit soort zaken gaat beginnen. Is namelijk basis kennis en zal je constant tegenkomen.
Op phphulp staat een paar simpel basis tutorials over hoe je die variabele uit een url kan halen en te verwerken.
Op phphulp staat een paar simpel basis tutorials over hoe je die variabele uit een url kan halen en te verwerken.
Dude, hij zegt toch al dat het gelukt is.
Overheen gelezen, was al de tutorial aan het zoeken.