PHP + envoi de mail automatique

Fermé
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 - 8 sept. 2009 à 11:12
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 - 9 sept. 2009 à 22:39
Bonjour,
J'ai fais un script php qui permet aux utilisateurs de déposer leur CV dans ma cvthèque.
J'ai aussi un autre qui permet d'ajouter les offres d'emploi quotidiennement sur mon site.
Maintenant, je voudrai savoir comment faire de sorte que s'il y a une offre concernant un poste (exple: informatique Bac +3), que tous ceux qui se sont inscrit sur la cvthèque et ayant le profil de l'offre (informatique Bac +3) reçoivent automatiquement un mail dans leur boîte avec comme sujet "Offre vous concernant"?
J'ai une table emploi et une table cvtheque. C'est la jointure entre less deux table et surtout le script qui permettra d'envoyer des mails automatiquement.

Merci à tous
A voir également:

9 réponses

jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
8 sept. 2009 à 12:08
bonjour...

tu trouvera sur mon site la fonction pour l envoie des mails..

jjsteing.u7n.org

va dans webmastering => Formulaire_envoie_mail.php

@++
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
8 sept. 2009 à 19:48
Salut jjsteing, j'ai regarder ton programme d'envoi de mail mais il répond pas à ce que je veux faire. Ma requête sql de jointure marche, j'arrive à récupérer les adresses mais mais maintenant, j voudrait qu'un mail soit envoyé à tous ceux qui répondent au profil concernant l'offre.
Je sais pas si je me fais comprendre.
Encore merci
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 sept. 2009 à 12:57
Très simple. Tu modifie le script pour ajouter l'offre de manière à ce qu'un mail soit envoyé à ceux qui sont concerné.
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
8 sept. 2009 à 13:03
Merci bien pour vos réponses. Voici un peu le script pour les offres
Je sais pas trop comment faire la jointure entre mes deux tables c-a-d emploi et cvtheque

<?php
include("admin/connexion.php");
$sql = "SELECT * FROM emploi order by id DESC";
$requete = mysql_query ($sql, $connect) or die ("Requete echouée!");
$messagesParPage=30; //Nous allons afficher XX offres par page.

$retour_total=mysql_query('SELECT COUNT(*) AS total FROM emploi order by id DESC'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);

if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire

// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM emploi GROUP BY poste, date_annonce ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');

while($resultat=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
echo"<table border=1 bordercolor=#FFCCFF background=../images/fond_offres.gif>";
echo" <tr>";
echo"<td width=15%><strong>".$resultat['date_annonce']."</strong></td>";
echo"<td width=35%>".$resultat['recruteur']."</td>";
echo" <td width=30%> <a href=\"emplois.php?id=$resultat[id]\" onclick=\"window.open('emplois.php?id=$resultat[id]','wclose','width=750,height=700,toolbar=no,status=no,left=20,top=30,resizable=no'); return false;\">" .$resultat['poste'].'</a>';
echo" <td width=20%>".$resultat['lieu']."</td>";
echo"</tr>";
echo"</table>";
}


echo '<p>Page : '; //Pour l'affichage, on justifie la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' '.$i.' ';
}
else //Sinon...
{
echo ' <a href="emploi.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>'; ?>

Merci encore
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 sept. 2009 à 21:01
Deux petites remarques.
Par souci de lisibilité, il est conseillé d'utiliser la balise <code> pour insérer du code sur ce forum (ou le bouton "Conserver la mise en forme", ce qui reviens au même).
Autre remarque, plutôt que de simple mettre ton code, le mieux serai de l'expliquer très simplement pour orienter notre recherche sur la solution répondant à ta demande. En l'état actuel, je suis désolé de le dire mais ça donne pas trop envie de voir plus loin que ce simple message.
Par exemple: expliques nous l'emploi de ces tables dans ce code et tu peux également mettre en gras les passages concerné pour nous orienter.
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 08:05
re :)

Arrive tu as avoir une liste avec :

- Les adresses mail
- Les Noms
- Les prénoms

des personnes à qui tu dois envoyer le dit mail ?
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
9 sept. 2009 à 11:53
Oui j'arrive à voir une liste
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 12:30
bon.. c'est déjà ca ;)

alors.. tu dois avoir quelque chose du style :

$result=SQL("Select......");

$i=0
while ($Users= mysql_fetch_array($result);){
$Destinataires = $Destinataire.";".$Users["Email"];
}

$mail_destinataire = ''.$Destinataires;

$entetemail ='From: "Ton Site"<Webmaster@tonsite.net>'."\n";
// $entetemail .='Reply-To: Webmaster2@tonsite.net'."\n";
// $entetemail.= 'Bcc:Webmaster3@tonsite.net'."\n";
$entetemail .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$entetemail .='Content-Transfer-Encoding: 8bit';

$msg = 'Bonjour Une annonce peu vous interreser';

$msg .= "<br><br><br>";

if(mail($mail_destinataire, 'annonces interressantes', $msg, $entetemail)){
$Html= "Un email de confirmation a été envoyé<br>";
}else{
$Html= "Erreur lors de l'envoie de l'email de confirmation. Veuillez recommencer<br>";
}
echo $Html;
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
9 sept. 2009 à 13:58
Merci bien jjsteing.
Je vais mettre ça en pratique de suite et te dire ce que ça donne comme résultat.
Merci
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3 > djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015
9 sept. 2009 à 18:49
Bonsoir,
j'ai pu corrigé les messages d'erreurs mais toujours un soucis.
Pas de mail envoyé or à l'entête, le message me dit que "Un email de confirmation a été envoyé"
Comment je fais?
Merci
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 20:04
re :)

est tu sur que ton serveur supporte l envoie de mail??

qui est ton hebergeur?
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
9 sept. 2009 à 20:11
Je penses bien que le serveur supporte car j'arrive à envoyer des newsletters
mon hebergeur c'est godaddy.com
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 21:51
ok pour tester ca.. prend mon formulaire sur jjsteing.u7n.org .. modifie le pour qu il l envoie a ton adresse et met le en ligne... et fait un test. Dis moi ca ca marche..
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
9 sept. 2009 à 21:53
Ok, je fais le test
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 22:02
ok,

sinon...

plusieurs tests a faire :

en me basant sur mon code :

$result=SQL("Select......");

$i=0
while ($Users= mysql_fetch_array($result);){
$Destinataires = $Destinataire.";".$Users["Email"];
}

$mail_destinataire = ''.$Destinataires;

echo "<script>alert('".$mail_destinataire."');</script>
$entetemail ='From: "Ton Site"<Webmaster@tonsite.net>'."\n";
$entetemail .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$entetemail .='Content-Transfer-Encoding: 8bit';

$msg = 'Bonjour Une annonce peu vous interreser';

$msg .= "<br><br><br>";

echo "<script>alert('".$msg."');</script>

if(mail($mail_destinataire, 'annonces interressantes', $msg, $entetemail)){
$Html= "Un email de confirmation a été envoyé<br>";
}else{
$Html= "Erreur lors de l'envoie de l'email de confirmation. Veuillez recommencer<br>";
}

$Html.="<br>Entete:$entetemail<br>Dest:$Destinataire<br>Entete:$entetemail<br>Msg:$msg";
echo $Html;



ceci afin de vérifier l intégralite du message tiens moi au jus ;)
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 sept. 2009 à 22:10
Re :)

pis j ai un doute.. c'est ; ou , pour separer les différents destinataires... je sais pas... sinon, essaye déjà avec une seule adresse (la tienne) ;)
0
djimson Messages postés 211 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 13 février 2015 3
9 sept. 2009 à 22:39
Ok, excuse moi pour le silence, suis en plein cour donc je fais le test juste après.
Merci
0