2010-07-16 6 views
1

Je souhaite envoyer un courrier électronique à plusieurs destinataires à l'aide de la fonction PHP mail(). Le message électronique est simplement un rappel que l'adhésion doit expirer, donc les adresses email proviendront de la requête de base de données MySql. Il y aurait de 2 à 10 à tout moment. J'ai trouvé le code suivant mais il génère des erreurs. Le problème n'est pas avec ma requête car il génère un jeu d'enregistrements précis. C'est le code que j'ai: j'espère que quelqu'un pourra m'aider. En passant, je suis très novice et j'ai besoin d'une explication simple et directe. Merci à l'avance:Envoyer un e-mail à plusieurs destinataires à partir de MySQL Recordset

<?php 

$recipients = ("SELECT email FROM tblMembers WHERE search criteria=criteria"); 
$email_list = $db->query($recipients); 
foreach($email_list as $row) { 
$to = $row['email']; 
$subject = "Membership Renewal"; 
$headers = "From: Membership Coordinator <[email protected]>\r\n"; 
$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY""\n""etc, etc, etc"; 
    if (mail($to,$subject,$headers,$message)) { 
    echo "Email was sent successfully"; 
    } else { 
    echo "Email delivery has failed!"; 
    } 
} 
?> 
+3

Quelles sont les erreurs? –

+1

Erreur d'analyse: erreur de syntaxe, T_IF inattendu dans /data/9/1/42/26/1205515/user/1284694/htdocs/Members/Renewals_Due.php sur la ligne 85 La ligne 85 se trouve être: if (mail ($ to, $ subject, $ headers, $ message)) { – Kathy

Répondre

0

Pour autant que je sache, puis $ headers vient après $ message, vous devriez juste changer l'ordre dans le courrier() et être plus conscients à l'avenir.

0

changement

$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY""\n""etc, etc, etc"; 

à

$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY\netc, etc, etc"; 

Il y a l'erreur de syntaxe, car "mettra fin à la chaîne. Vous auriez besoin d'un. Concaténer la chaîne suivante.

Mais vous pourrait également laisser les deux "out" à ce stade, car dans une chaîne entre guillemets, PHP va remplacer \ n par un caractère de nouvelle ligne.

+0

Maintenant, j'ai une nouvelle erreur. Le code est dans un pour qui affiche la liste des renouvellements dans un formulaire dynamique avec la région de répétition. Avant que la page ne s'ouvre pas du tout. Le message d'erreur est apparu sur une page blanche. Maintenant la page s'ouvre mais j'ai une nouvelle erreur au bas de la page qui dit " Erreur fatale: Appel à une requête de fonction membre() sur un non-objet dans/data/9/1/42/26/1205515 /user/1284694/htdocs/Members/Renewals_Due.php on line 79 Et la ligne 79 est: $ email_list = $ db-> query ($ recipients); – Kathy

+0

Êtes-vous dans une fonction lorsque vous appelez $ db-> query()? Ensuite, vous devez ajouter "global $ db;" avant l'appel $ db-> query() Et vérifiez si vous avez chargé la classe $ db – JochenJung

+0

Ok. J'ai vérifié tout cela. l'erreur indique que l'argument foreach est invalide Comme dans le code ci-dessus, j'ai: foreach ($ email_list comme $ row) – Kathy

Questions connexes