php mail functie

Status
Niet open voor verdere reacties.

Kriztiaan

Gebruiker
Lid geworden
14 mrt 2007
Berichten
18
Ik krijg deze mail functie niet werkend.
de functie is staandaard. wat ik wil, wanneer er een privebericht in de database komt (een nieuwe) dat hij de ontvanger een email stuurt. Nu denk ik niet dat het gaat lukken met die $email want dan moet je zijn ingelogd, was gewoon even om te testen.

hoe kan ik dat het beste doen?

PHP:
<? include ("config_prive.php");
  $tellen = mysql_query("SELECT COUNT(bid) as aantal FROM prive".$naam."") or die(mysql_error());
  $res = mysql_fetch_assoc($tellen);echo $res['aantal']; 
  
  if ( $res['aantal'] ==> 0); {

$to      = ''.$email.'' ;
$subject = 'Service bericht';
$message = 'Je hebt een nieuw privé bericht ontvangen!';
$headers = 'From: info@pot-online.eu' . "\r\n" .
    'Reply-To: webmaster@pot-online.eu' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers); } ?>
 
Een paar zaken die me opvallen,

  • Gebruik van shorttags ( <? )
  • Elke gebruiker heeft een aparte tabel?
  • Puntkomma achter je if-statement. Gaf dat geen error?
  • Zo nee, heb je error_reporting wel aan staan?
  • Bij $to koppel je een lege string, een variabele en nog een lege string aan elkaar. Waarom?
 
Een paar zaken die me opvallen,

Gebruik van shorttags ( <? )
Elke gebruiker heeft een aparte tabel?
Puntkomma achter je if-statement. Gaf dat geen error?
Zo nee, heb je error_reporting wel aan staan?
Bij $to koppel je een lege string, een variabele en nog een lege string aan elkaar. Waarom?


Heey ErikBooy007,

Inderdaad iedere gebruiker heeft zijn eigen tabel.( Ik vond dit makkelijker om mee te werken.) voor een site van max 25-30 leden kan het geen kwaad ;)

die puntkomma staat er hier idd nog maar niet meer in het scriptje.
Bij $to ben ik nog wat aan het expirimenteren vandaar.


PHP:
<?php include ("config_prive.php");
  $tellen = mysql_query("SELECT COUNT(bid) as aantal FROM prive".$naam."") or die(mysql_error());
  $res = mysql_fetch_assoc($tellen);echo $res['aantal']; 
  
  if ( $res['aantal'] ==> 0)  {
 
$to      = ' naam@domein.eu ' ;
$subject = 'Service bericht';
$message = 'Je hebt een nieuw privé bericht ontvangen!';
$headers = 'From: info@pot-online.eu' . "\r\n" .
    'Reply-To: webmaster@pot-online.eu' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
mail($to, $subject, $message, $headers); } ?>

zo beter ;) ?
 
PHP:
<?php 

  include ("config_prive.php");
  $tellen = mysql_query ( "SELECT COUNT(bid) as aantal FROM prive".$naam );
  $res = mysql_fetch_assoc ( $tellen ) ; 
  
  if ( $res['aantal'] >= 0 )  {
 
    $to = 'naam@domein.eu';
    $subject = 'Service bericht';
    $message = 'Je hebt een nieuw privé bericht ontvangen!';
    $headers = 'From: info@pot-online.eu' . "\r\n";
    $headers .= 'Reply-To: webmaster@pot-online.eu' . "\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
 
    mail($to, $subject, $message, $headers); 
  } 

?>

Ik heb het even netjes geïndent. Dat is sowieso makkelijker werken, maar je probleem zat waarschijnlijk in je if-statement. ==> moest zijn >= .

Daarnaast is het een veel gehoord probleem dat de native mail-functie in PHP niet naar behoren werkt. Het makkelijkst is vaak om een kant-en-klare class als SwiftMailer te gebruiken.
 
Ik had ook problemen met de mail functie, maar als je in php.ini dit zet: SMTP = smtp.jouwhost.nl werkt het misschien :D (waar jouwhost.nl een geldige smtp server is)
 
Ja op deze manier heb ik het werkend gekregen.

maar ik krijg het niet voor elkaar het juiste email adres te verkrijgen.

dacht dat het met $get_ wel zou gaan maar niet dus,

PHP:
<?php 
 
  include ("config_prive.php");
  $tellen = mysql_query ( "SELECT COUNT(bid) as aantal FROM prive".$naam );
  $res = mysql_fetch_assoc ( $tellen ) ; 
  
  if ( $res['aantal'] >= 0 )  {
 
    $to = $_GET[$email];
    $subject = 'Service bericht';
    $message = 'Je hebt een nieuw privé bericht ontvangen!';
    $headers = 'From: info@pot-online.eu' . "\r\n";
    $headers .= 'Reply-To: webmaster@pot-online.eu' . "\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
 
    mail($to, $subject, $message, $headers); 
  }
 
Het zou moeten werken als je de pagina aanroept met:

naamvandepagina.php?email=email@adres.nl

En dan in de code:

PHP:
$_GET[$email]

vervangt door:

PHP:
$_GET[ 'email' ]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan