Subversion Repositories Applications.annuaire

Rev

Rev 214 | Rev 272 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 214 Rev 233
Line 103... Line 103...
103
	     $entetes  = 'MIME-Version: 1.0' . "\r\n";
103
	     $entetes  = 'MIME-Version: 1.0' . "\r\n";
104
	     $entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
104
	     $entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
105
	     // En-têtes additionnels
105
	     // En-têtes additionnels
106
	     $entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
106
	     $entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
Line 107... Line 107...
107
 
107
 
Line 108... Line 108...
108
		return mail($adresse_mail,'Inscription à l\'annuaire',$contenu_mail, $entetes);
108
		return mail($adresse_mail,mb_encode_mimeheader('Inscription à l\'annuaire'),$contenu_mail, $entetes);
Line 109... Line 109...
109
 
109
 
110
	}
110
	}
Line 134... Line 134...
134
	     $entetes  = 'MIME-Version: 1.0' . "\r\n";
134
	     $entetes  = 'MIME-Version: 1.0' . "\r\n";
135
	     $entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
135
	     $entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
136
	     // En-têtes additionnels
136
	     // En-têtes additionnels
137
	     $entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
137
	     $entetes .= 'From: '.Config::get('adresse_mail_annuaire')."\r\n";
Line 138... Line 138...
138
 
138
 
Line 139... Line 139...
139
		 return mail($mail,'Demande de réinitialisation de mot de passe',$contenu_mail, $entetes);
139
		 return mail($mail,mb_encode_mimeheader('Demande de réinitialisation de mot de passe'),$contenu_mail, $entetes);
Line 140... Line 140...
140
 
140
 
Line -... Line 141...
-
 
141
	}
-
 
142
 
-
 
143
	
-
 
144
/** -------------------Fonctions pour la messagerie entre utilisateurs -----------------------*/
-
 
145
	
-
 
146
	/** Effectue une recherche dans la base de données et envoie un mail à tous les inscrits correspondants,
-
 
147
	 * à l'adresse donnée en paramètre
-
 
148
	 * @param string $expediteur l'expediteur du message
-
 
149
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
-
 
150
	 * @param string $sujet sujet du mail
-
 
151
	 * @return boolean true ou false suivant le succès ou non de l'envoi
-
 
152
	 */
-
 
153
	public function envoyerMailParRequete($id_annuaire, $expediteur, $criteres, $sujet, $message) {
-
 
154
		
-
 
155
		if(isset($criteres['exclusive'])) {
-
 
156
			$exclusive = $criteres['exclusive'];
-
 
157
		} else {
-
 
158
			$exclusive = true;
-
 
159
		}
-
 
160
		
-
 
161
		unset($criteres['page']);
-
 
162
		unset($criteres['taille_page']);
-
 
163
		
-
 
164
		$collecteur = new VerificationControleur();
-
 
165
		$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($criteres, $this->obtenirChampsMappageAnnuaire($id_annuaire));
-
 
166
				
-
 
167
		$valeurs_recherchees = $tableau_valeur_collectees['valeurs_recherchees']; 
-
 
168
		$valeurs_mappees = $tableau_valeur_collectees['valeurs_mappees']; 
-
 
169
		$valeurs_get = $tableau_valeur_collectees['valeurs_get']; 
-
 
170
		
-
 
171
		// on recherche dans les métadonnées
-
 
172
		$this->chargerModele('MetadonneeModele');
-
 
173
		// le résultat est un ensemble d'identifiants
-
 
174
		$resultat_metadonnees = $this->MetadonneeModele->rechercherDansValeurMetadonnees($id_annuaire,$valeurs_recherchees, $exclusive);
-
 
175
		
-
 
176
		// on recherche les infos dans la table annuaire mappée
-
 
177
		// en incluant ou excluant les id déjà trouvées dans les metadonnées
-
 
178
		// suivant le critères d'exclusivité ou non
-
 
179
		$this->chargerModele('AnnuaireModele');
-
 
180
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive, 0, 0);
-
 
181
								
-
 
182
		$resultat_recherche = $resultat_annuaire_mappe['resultat'];
-
 
183
		$nb_resultats = $resultat_annuaire_mappe['total'];
-
 
184
		
Line 141... Line 185...
141
	}
185
		$destinataires = $this->aplatirTableauSansPreserverCles($resultat_recherche);
142
 
186
		
143
	
187
		return $this->envoyerMailDirectOuModere($id_annuaire, $expediteur, $destinataires, $sujet, $message);
144
/** -------------------Fonctions pour la messagerie entre utilisateurs -----------------------*/
188
		
145
	
189
	}
146
	
190
	
147
	/** Envoie un mail avec l'adresse de l'utilisateur donné en paramètre,
191
	/** Envoie un mail avec l'adresse de l'utilisateur donné en paramètre,
148
	 * à l'adresse donnée en paramètre
192
	 * à l'adresse donnée en paramètre
Line 149... Line 193...
149
	 * @param string $expediteur l'expediteur du message
193
	 * @param string $expediteur l'expediteur du message
150
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
194
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
151
	 * @param string $sujet sujet du mail
195
	 * @param string $sujet sujet du mail
Line -... Line 196...
-
 
196
	 * @return boolean true ou false suivant le succès ou non de l'envoi
152
	 * @return boolean true ou false suivant le succès ou non de l'envoi
197
	 */
153
	 */
198
	public function envoyerMail($expediteur, $destinataires, $sujet, $message) {
154
	public function envoyerMail($expediteur, $destinataires, $sujet, $message) {
199
 
155
 
200
		if(!is_array($destinataires)) {
156
		if(is_array($destinataires)) {
201
			$destinataires = array($destinataires);
157
			$destinataires = implode(',',$destinataires);
202
		}
Line 158... Line 203...
158
		}
203
 
-
 
204
		foreach($destinataires as $destinataire) {
159
 
205
			// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
160
		 // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
206
			$entetes  = 'MIME-Version: 1.0' . "\r\n";
-
 
207
			$entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
-
 
208
			//$entetes .= 'To:'.$destinataire . "\r\n";
-
 
209
			// En-têtes additionnels
-
 
210
			$entetes .= 'From: '.$expediteur."\r\n";
-
 
211
 
161
	     $entetes  = 'MIME-Version: 1.0' . "\r\n";
212
			$contenu_mail = $this->encoderChainePourEnvoiMail($message);
Line 162... Line 213...
162
	     $entetes .= 'Content-type: text/html; charset='.Config::get('appli_encodage'). "\r\n";
213
			$sujet = $this->encoderChainePourEnvoiMail($sujet);
163
	     $entetes .= 'Bcc:'.$destinataires . "\r\n";
214
	
164
	     // En-têtes additionnels
215
			if(!mail($destinataire, mb_encode_mimeheader($sujet), $contenu_mail, $entetes)) {
Line 191... Line 242...
191
 
242
 
192
			$this->stockerMailPourModeration($expediteur, $destinataires_mail, $sujet, $message);
243
			$this->stockerMailPourModeration($expediteur, $destinataires_mail, $sujet, $message);
Line 193... Line 244...
193
			$donnees['moderation'] = true;
244
			$donnees['moderation'] = true;
194
			
245
			
195
		} else {
246
		} else {
196
						
247
			
Line 197... Line 248...
197
			// sinon, envoi direct
248
			// sinon, envoi direct
198
			$this->envoyerMail($expediteur, $destinataires_mail, $sujet, $message);
249
			$this->envoyerMail($expediteur, $destinataires_mail, $sujet, $message);
Line 338... Line 389...
338
 
389
 
339
		$donnees['lien_accepter_mail'] = $lien_accepter_mail;
390
		$donnees['lien_accepter_mail'] = $lien_accepter_mail;
340
		$donnees['lien_refuser_mail'] = $lien_refuser_mail;
391
		$donnees['lien_refuser_mail'] = $lien_refuser_mail;
341
		$donnees['sujet_message'] = $sujet_message_a_moderer;
392
		$donnees['sujet_message'] = $sujet_message_a_moderer;
-
 
393
		$donnees['contenu_message'] = $message_a_moderer;
342
		$donnees['contenu_message'] = $message_a_moderer;
394
		
343
		if(is_array($destinataires)) {
395
		if(is_array($destinataires)) {
344
			$destinataires = implode(', ', $destinataires);;	
396
			$destinataires = implode(', ', $destinataires);;	
345
		}
397
		}
Line 353... Line 405...
353
	
405
	
Line 354... Line 406...
354
	private function filtrerChaine($message) {
406
	private function filtrerChaine($message) {
355
		
407
		
356
		return strip_tags($message);
408
		return strip_tags($message);
-
 
409
	}
-
 
410
	
-
 
411
	private function encoderChainePourEnvoiMail($chaine) {
357
	}
412
		return stripslashes($chaine);