Mail functie in php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerard Anoniem

Gerard Anoniem

12/12/2009 11:58:00
Quote Anchor link
Ik ben deze week begonnen met het werken in php. Nu wil ik graag een simpel nieuwsbrief systeem gaan opzetten, maar nu loop ik tegen het volgende probleem aan.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
# 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
 
PHP hulp

PHP hulp

18/12/2024 11:07:22
 
- Ariën  -
Beheerder

- Ariën -

12/12/2009 12:33:00
Quote Anchor link
Zet je code aub tussen [code*] en [/code*] tags (zonder sterretje).
Dan is het beter leesbaar.
 
Gerard Anoniem

Gerard Anoniem

12/12/2009 12:43:00
Quote Anchor link
Inmiddels krijg ik een foutmelding:
Fatal error: Class 'PHPMailer' not found in /home/websitevanmij.nll/www/testbrief/post.php on line 4
 
- Ariën  -
Beheerder

- Ariën -

12/12/2009 12:57:00
Quote Anchor link
include_once("include/classes/class.phpmailer.inc");

Staat de class hier wel in? En klopt het pad wel?
 
Gerard Anoniem

Gerard Anoniem

12/12/2009 13:15:00
Quote Anchor link
Ik vraag me eigenlijk af of die lijn er wel in moet. Hetzelfde geldt voor $mail = new PHPMailer();
 
- Ariën  -
Beheerder

- Ariën -

12/12/2009 13:56:00
Quote Anchor link
Tuurlijk, je moet die class includeren en aanroepen? Anders krijg je van die 'method' en 'member'-errors.
 
Afra ca

Afra ca

12/12/2009 14:16:00
Quote Anchor link
Het lijkt erop dat je het script niet zelf hebt geschreven, aangezien er staat dat je "pad kan afwijken", en omdat je zelf net begonnen bent.

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
 
Gerard Anoniem

Gerard Anoniem

12/12/2009 17:25:00
Quote Anchor link
Door de toevoeging van php mailer werkt het script. Alleen loop ik tegen het volgend aan:

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
 
Peter

peter

12/12/2009 21:45:00
Quote Anchor link
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.
 

12/12/2009 21:47:00
Quote Anchor link
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.

Dude, hij zegt toch al dat het gelukt is.
 
Peter

peter

12/12/2009 21:49:00
Quote Anchor link
Overheen gelezen, was al de tutorial aan het zoeken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.