Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 232 → Rev 233

/trunk/controleurs/MessageControleur.php
105,7 → 105,7
// En-têtes additionnels
$entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
 
return mail($adresse_mail,'Inscription à l\'annuaire',$contenu_mail, $entetes);
return mail($adresse_mail,mb_encode_mimeheader('Inscription à l\'annuaire'),$contenu_mail, $entetes);
 
}
 
136,7 → 136,7
// En-têtes additionnels
$entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
 
return mail($mail,'Demande de réinitialisation de mot de passe',$contenu_mail, $entetes);
return mail($mail,mb_encode_mimeheader('Demande de réinitialisation de mot de passe'),$contenu_mail, $entetes);
 
}
 
143,6 → 143,50
/** -------------------Fonctions pour la messagerie entre utilisateurs -----------------------*/
/** Effectue une recherche dans la base de données et envoie un mail à tous les inscrits correspondants,
* à l'adresse donnée en paramètre
* @param string $expediteur l'expediteur du message
* @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
* @param string $sujet sujet du mail
* @return boolean true ou false suivant le succès ou non de l'envoi
*/
public function envoyerMailParRequete($id_annuaire, $expediteur, $criteres, $sujet, $message) {
if(isset($criteres['exclusive'])) {
$exclusive = $criteres['exclusive'];
} else {
$exclusive = true;
}
unset($criteres['page']);
unset($criteres['taille_page']);
$collecteur = new VerificationControleur();
$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($criteres, $this->obtenirChampsMappageAnnuaire($id_annuaire));
$valeurs_recherchees = $tableau_valeur_collectees['valeurs_recherchees'];
$valeurs_mappees = $tableau_valeur_collectees['valeurs_mappees'];
$valeurs_get = $tableau_valeur_collectees['valeurs_get'];
// on recherche dans les métadonnées
$this->chargerModele('MetadonneeModele');
// le résultat est un ensemble d'identifiants
$resultat_metadonnees = $this->MetadonneeModele->rechercherDansValeurMetadonnees($id_annuaire,$valeurs_recherchees, $exclusive);
// on recherche les infos dans la table annuaire mappée
// en incluant ou excluant les id déjà trouvées dans les metadonnées
// suivant le critères d'exclusivité ou non
$this->chargerModele('AnnuaireModele');
$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive, 0, 0);
$resultat_recherche = $resultat_annuaire_mappe['resultat'];
$nb_resultats = $resultat_annuaire_mappe['total'];
$destinataires = $this->aplatirTableauSansPreserverCles($resultat_recherche);
return $this->envoyerMailDirectOuModere($id_annuaire, $expediteur, $destinataires, $sujet, $message);
}
/** Envoie un mail avec l'adresse de l'utilisateur donné en paramètre,
* à l'adresse donnée en paramètre
153,20 → 197,27
*/
public function envoyerMail($expediteur, $destinataires, $sujet, $message) {
 
if(is_array($destinataires)) {
$destinataires = implode(',',$destinataires);
if(!is_array($destinataires)) {
$destinataires = array($destinataires);
}
 
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$entetes = 'MIME-Version: 1.0' . "\r\n";
$entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
$entetes .= 'Bcc:'.$destinataires . "\r\n";
// En-têtes additionnels
$entetes .= 'From: '.$expediteur."\r\n";
foreach($destinataires as $destinataire) {
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$entetes = 'MIME-Version: 1.0' . "\r\n";
$entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
//$entetes .= 'To:'.$destinataire . "\r\n";
// En-têtes additionnels
$entetes .= 'From: '.$expediteur."\r\n";
 
$contenu_mail = $message;
 
return mail('', $sujet, $contenu_mail, $entetes);
$contenu_mail = $this->encoderChainePourEnvoiMail($message);
$sujet = $this->encoderChainePourEnvoiMail($sujet);
if(!mail($destinataire, mb_encode_mimeheader($sujet), $contenu_mail, $entetes)) {
return false;
}
}
return true;
}
 
/**
193,7 → 244,7
$donnees['moderation'] = true;
} else {
// sinon, envoi direct
$this->envoyerMail($expediteur, $destinataires_mail, $sujet, $message);
340,6 → 391,7
$donnees['lien_refuser_mail'] = $lien_refuser_mail;
$donnees['sujet_message'] = $sujet_message_a_moderer;
$donnees['contenu_message'] = $message_a_moderer;
if(is_array($destinataires)) {
$destinataires = implode(', ', $destinataires);;
}
355,5 → 407,8
return strip_tags($message);
}
 
private function encoderChainePourEnvoiMail($chaine) {
return stripslashes($chaine);
}
}