Subversion Repositories Applications.annuaire

Rev

Rev 327 | Rev 349 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 327 Rev 346
Line 149... Line 149...
149
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
149
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
150
	 * @param string $sujet sujet du mail
150
	 * @param string $sujet sujet du mail
151
	 * @return boolean true ou false suivant le succès ou non de l'envoi
151
	 * @return boolean true ou false suivant le succès ou non de l'envoi
152
	 */
152
	 */
153
	public function envoyerMailParRequete($id_annuaire, $expediteur, $criteres, $sujet, $message) {
153
	public function envoyerMailParRequete($id_annuaire, $expediteur, $criteres, $sujet, $message) {
154
		
-
 
155
		if(isset($criteres['exclusive'])) {
154
		if (isset($criteres['exclusive'])) {
156
			$exclusive = $criteres['exclusive'];
155
			$exclusive = $criteres['exclusive'];
157
		} else {
156
		} else {
158
			$exclusive = true;
157
			$exclusive = true;
159
		}
158
		}
Line 193... Line 192...
193
		
192
		
Line 194... Line 193...
194
		return $this->envoyerMailDirectOuModere($id_annuaire, $expediteur, $destinataires, $sujet, $message);
193
		return $this->envoyerMailDirectOuModere($id_annuaire, $expediteur, $destinataires, $sujet, $message);
Line -... Line 194...
-
 
194
		
-
 
195
	}
-
 
196
	
-
 
197
	/** Envoie un mail au format texte avec l'adresse de l'utilisateur donné en paramètre,
-
 
198
	 * à l'adresse donnée en paramètre
-
 
199
	 * @param string $expediteur l'expediteur du message
-
 
200
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
-
 
201
	 * @param string $sujet sujet du mail
-
 
202
	 * @return boolean true ou false suivant le succès ou non de l'envoi
-
 
203
	 */
-
 
204
	public function envoyerMailText($expediteur, $destinataires, $sujet, $message) {
-
 
205
		if (!is_array($destinataires)) {
-
 
206
			$destinataires = array($destinataires);
-
 
207
		}
-
 
208
		
-
 
209
		// Définition d'un mail en texte simple et html
-
 
210
		$entetes = 				
-
 
211
			"X-Sender: <http://www.tela-botanica.org>\n".
-
 
212
			"X-Mailer: PHP\n".
-
 
213
			"X-auth-smtp-user: annuaire@tela-botanica.org \n".
-
 
214
			"X-abuse-contact: annuaire@tela-botanica.org \n".
-
 
215
			"Date: ".date("D, j M Y G:i:s O")."\n".
-
 
216
			'From: '.$expediteur."\n".
-
 
217
			"Content-Type: text/plain; charset=\"".Config::get('appli_encodage')."\";\n".
-
 
218
			"Content-Transfer-Encoding: 7bit;\n\n";
-
 
219
		
-
 
220
		$sujet = mb_encode_mimeheader($this->encoderChainePourEnvoiMail($sujet));
-
 
221
 
-
 
222
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
-
 
223
		$contenu = $this->filtrerChaine($message_antislashe);
-
 
224
		
-
 
225
		foreach ($destinataires as $destinataire) {
-
 
226
			if (!mail($destinataire, $sujet, $contenu, $entetes)) {
-
 
227
				return false;
-
 
228
			}			
-
 
229
		}
195
		
230
		return true;
196
	}
231
	}
197
	
232
	
198
	/** Envoie un mail avec l'adresse de l'utilisateur donné en paramètre,
233
	/** Envoie un mail avec l'adresse de l'utilisateur donné en paramètre,
199
	 * à l'adresse donnée en paramètre
234
	 * à l'adresse donnée en paramètre
200
	 * @param string $expediteur l'expediteur du message
235
	 * @param string $expediteur l'expediteur du message
201
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
236
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
202
	 * @param string $sujet sujet du mail
237
	 * @param string $sujet sujet du mail
203
	 * @return boolean true ou false suivant le succès ou non de l'envoi
-
 
204
	 */
238
	 * @return boolean true ou false suivant le succès ou non de l'envoi
205
	public function envoyerMail($expediteur, $destinataires, $sujet, $message) {
239
	 */
206
		
240
	public function envoyerMail($expediteur, $destinataires, $sujet, $message) {
Line 207... Line 241...
207
		if(!is_array($destinataires)) {
241
		if (!is_array($destinataires)) {
208
			$destinataires = array($destinataires);
-
 
209
		}
242
			$destinataires = array($destinataires);
Line 210... Line 243...
210
		
243
		}
Line 211... Line 244...
211
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
244
		
Line 212... Line -...
212
		
-
 
213
		$message_texte = $this->filtrerChaine($message_antislashe);
-
 
214
		
245
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
215
		$message_html = $message_antislashe;
-
 
216
		
246
		$message_texte = $this->filtrerChaine($message_antislashe);
217
		$limite = "_----------=_parties_".md5(uniqid (rand()));
247
		
218
 
248
		$message_html = $message_antislashe;
219
		foreach($destinataires as $destinataire) {
249
		
220
			
250
		$limite = "_----------=_parties_".md5(uniqid (rand()));
221
			$entetes = '';
251
				
222
			
252
		$entetes = '';
223
			// Définition d'un mail en texte simple et html				
253
		// Définition d'un mail en texte simple et html				
224
			$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
254
		$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
Line 225... Line 255...
225
			$entetes .= "X-Mailer: PHP\n";
255
		$entetes .= "X-Mailer: PHP\n";
Line -... Line 256...
-
 
256
		$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
226
			$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
257
		$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \n";
227
			$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \n";
258
		$entetes .= "Date: ".date("D, j M Y G:i:s O")."\n";
228
			$entetes .= "Date: ".date("D, j M Y G:i:s O")."\n";
259
		$entetes .= 'From: '.$expediteur."\n";
229
			$entetes .= 'From: '.$expediteur."\n";
260
		// multipart/alternative signifie même contenu de la forme la plus simple à la plus complexe
230
			// multipart/alternative signifie même contenu de la forme la plus simple à la plus complexe
261
		$entetes .= "Content-Type: multipart/alternative; boundary=\"".$limite."\";\n\n";
231
			$entetes .= "Content-Type: multipart/alternative; boundary=\"".$limite."\";\n\n";
-
 
232
			
262
 
233
			$contenu = "";
263
		$sujet = $this->encoderChainePourEnvoiMail($sujet);
234
			
264
		
235
			// message en texte plein
265
		$contenu = "";
236
			$contenu .= "--".$limite."\n";
266
		// message en texte plein
237
			$contenu .= "Content-Type: text/plain; charset=\"".Config::get('appli_encodage')."\";\n";
267
		$contenu .= "--".$limite."\n";
238
			$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
-
 
239
			$contenu .= $message_texte."\n";
268
		$contenu .= "Content-Type: text/plain; charset=\"".Config::get('appli_encodage')."\";\n";
Line 240... Line 269...
240
			
269
		$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
241
			// le message en html est préféré s'il est lisible
-
 
242
			$contenu .= "--".$limite."\n";
270
		$contenu .= $message_texte."\n";
243
			$contenu .= "Content-Type: text/html;";
271
		// le message en html est préféré s'il est lisible
244
			$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
272
		$contenu .= "--".$limite."\n";
245
			$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
273
		$contenu .= "Content-Type: text/html;";
Line 246... Line 274...
246
			$contenu .= $message_antislashe."\n";
274
		$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
247
			
275
		$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
Line 248... Line 276...
248
			$contenu .= "--".$limite."--\n";
276
		$contenu .= $message_antislashe."\n";
249
						
-
 
250
			$sujet = $this->encoderChainePourEnvoiMail($sujet);
277
		$contenu .= "--".$limite."--\n";
251
			
278
		
252
			if(!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
279
		foreach ($destinataires as $destinataire) {
Line 253... Line 280...
253
				return false;
280
			if (!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
254
			}			
-
 
255
		}
281
				return false;
256
		
-
 
257
		return true;
282
			}			
Line 258... Line 283...
258
	}
283
		}
259
	
-
 
260
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain') {
284
		
Line 261... Line -...
261
 
-
 
262
		if(!is_array($destinataires)) {
-
 
263
			$destinataires = array($destinataires);
285
		return true;
Line 264... Line 286...
264
		}
286
	}
265
		
287
	
266
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
288
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain') {
Line 327... Line 349...
327
				$contenu .= "Content-Disposition: attachment; filename=\"".$nom_fichier."\"\n";
349
			$contenu .= "Content-Disposition: attachment; filename=\"".$nom_fichier."\"\n";
328
				$contenu .= "X-Attachment-Id: ".md5($attachment)."\n\n";
350
			$contenu .= "X-Attachment-Id: ".md5($attachment)."\n\n";
Line 329... Line 351...
329
				
351
			
330
				$contenu .= $attachment;
352
			$contenu .= $attachment;
331
				$contenu .= "\n--".$limite."--\n";
-
 
332
				
353
			$contenu .= "\n--".$limite."--\n";
Line -... Line 354...
-
 
354
		}
333
			}
355
		
334
			
356
		foreach ($destinataires as $destinataire) {
335
			if(!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
357
			if (!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
336
				return false;
358
				return false;
337
			}			
-
 
338
		}
359
			}			
339
		
360
		}
Line 340... Line 361...
340
		return true;
361
		return true;
341
	}
362
	}