Subversion Repositories Applications.annuaire

Rev

Rev 327 | Rev 349 | Go to most recent revision | Show entire file | Ignore 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
		
-
 
245
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
-
 
246
		$message_texte = $this->filtrerChaine($message_antislashe);
-
 
247
		
-
 
248
		$message_html = $message_antislashe;
-
 
249
		
-
 
250
		$limite = "_----------=_parties_".md5(uniqid (rand()));
-
 
251
				
-
 
252
		$entetes = '';
-
 
253
		// Définition d'un mail en texte simple et html				
-
 
254
		$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
-
 
255
		$entetes .= "X-Mailer: PHP\n";
Line 212... Line -...
212
		
-
 
213
		$message_texte = $this->filtrerChaine($message_antislashe);
-
 
214
		
-
 
215
		$message_html = $message_antislashe;
-
 
216
		
-
 
217
		$limite = "_----------=_parties_".md5(uniqid (rand()));
-
 
218
 
-
 
219
		foreach($destinataires as $destinataire) {
-
 
220
			
256
		$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
221
			$entetes = '';
-
 
222
			
-
 
223
			// Définition d'un mail en texte simple et html				
-
 
224
			$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
-
 
225
			$entetes .= "X-Mailer: PHP\n";
257
		$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \n";
226
			$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
258
		$entetes .= "Date: ".date("D, j M Y G:i:s O")."\n";
227
			$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \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";
262
 
232
			
263
		$sujet = $this->encoderChainePourEnvoiMail($sujet);
233
			$contenu = "";
-
 
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";
268
		$contenu .= "Content-Type: text/plain; charset=\"".Config::get('appli_encodage')."\";\n";
239
			$contenu .= $message_texte."\n";
269
		$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
240
			
-
 
241
			// le message en html est préféré s'il est lisible
270
		$contenu .= $message_texte."\n";
242
			$contenu .= "--".$limite."\n";
271
		// le message en html est préféré s'il est lisible
243
			$contenu .= "Content-Type: text/html;";
272
		$contenu .= "--".$limite."\n";
244
			$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
-
 
245
			$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
273
		$contenu .= "Content-Type: text/html;";
246
			$contenu .= $message_antislashe."\n";
274
		$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
247
			
275
		$contenu .= "Content-Transfer-Encoding: 7bit;\n\n";
248
			$contenu .= "--".$limite."--\n";
276
		$contenu .= $message_antislashe."\n";
Line 249... Line 277...
249
						
277
		$contenu .= "--".$limite."--\n";
250
			$sujet = $this->encoderChainePourEnvoiMail($sujet);
278
		
Line 251... Line 279...
251
			
279
		foreach ($destinataires as $destinataire) {
252
			if(!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
-
 
253
				return false;
280
			if (!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) {
254
			}			
281
				return false;
255
		}
282
			}			
Line 256... Line 283...
256
		
283
		}
257
		return true;
-
 
258
	}
284
		
259
	
-
 
260
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain') {
285
		return true;
Line 261... Line 286...
261
 
286
	}
262
		if(!is_array($destinataires)) {
-
 
263
			$destinataires = array($destinataires);
287
	
Line 264... Line -...
264
		}
-
 
265
		
-
 
266
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
288
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain') {
267
		
289
		if (!is_array($destinataires)) {
268
		$message_texte = $this->filtrerChaine($message);
290
			$destinataires = array($destinataires);
269
		
291
		}
270
		$message_html = $message_antislashe;
292
		
271
		
293
		$message_antislashe = $this->encoderChainePourEnvoiMail($message);
272
		$limite = "_----------=_parties_".md5(uniqid (rand()));
294
		$message_texte = $this->filtrerChaine($message);
273
		
295
		$message_html = $message_antislashe;
274
		$limite_partie_message = "_----------=_parties_".md5(uniqid (rand() + 1));
296
		
275
 
297
		$limite = "_----------=_parties_".md5(uniqid (rand()));
276
		foreach($destinataires as $destinataire) {
298
		$limite_partie_message = "_----------=_parties_".md5(uniqid (rand() + 1));
277
			
299
 
278
			$entetes = '';
300
		$entetes = '';
279
			
301
		
280
			// Définition d'un mail avec différents type de contenu
302
		// Définition d'un mail avec différents type de contenu
-
 
303
		$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
-
 
304
		$entetes .= "X-Mailer: PHP\n";
-
 
305
		$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
-
 
306
		$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \n";
-
 
307
		$entetes .= "Date: ".date("D, j M Y G:i:s O")."\n";
-
 
308
		$entetes .= 'From: '.$expediteur."\n";
-
 
309
		$entetes .= 'MIME-Version: 1.0' . "\n";
-
 
310
		
-
 
311
		// Définition d'un type de contenu mixed (mail (texte + html) + piece jointe)
-
 
312
		$entetes .= "Content-Type: multipart/mixed; boundary=\"".$limite."\";\n\n";
-
 
313
		
-
 
314
		$contenu = "";
-
 
315
		
-
 
316
		// Première sous partie : contenu du mail
-
 
317
		$contenu .= "\n--".$limite."\n";
-
 
318
		
-
 
319
		// Définition d'un type de contenu alternatif pour l'envoi en html et texte
-
 
320
		$contenu .= "Content-Type: multipart/alternative; boundary=\"".$limite_partie_message."\";\n";
-
 
321
		
-
 
322
		// Version texte
-
 
323
		$contenu .= "\n--".$limite_partie_message."\n";
-
 
324
		$contenu .= "Content-Type: text/plain;";
-
 
325
		$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
-
 
326
		$contenu .= "Content-Transfer-Encoding: 7bit;\n";
Line -... Line 327...
-
 
327
		$contenu .= "\n";
-
 
328
		$contenu .= $message_texte."\n";
281
			$entetes .= "X-Sender: <http://www.tela-botanica.org>\n";
329
		
282
			$entetes .= "X-Mailer: PHP\n";
330
		// Version html
Line 283... Line -...
283
			$entetes .= "X-auth-smtp-user: annuaire@tela-botanica.org \n";
-
 
284
			$entetes .= "X-abuse-contact: annuaire@tela-botanica.org \n";
-
 
285
			$entetes .= "Date: ".date("D, j M Y G:i:s O")."\n";
-
 
286
			$entetes .= 'From: '.$expediteur."\n";
-
 
287
			$entetes .= 'MIME-Version: 1.0' . "\n";
-
 
288
			
-
 
289
			// Définition d'un type de contenu mixed (mail (texte + html) + piece jointe)
-
 
290
			$entetes .= "Content-Type: multipart/mixed; boundary=\"".$limite."\";\n\n";
331
		$contenu .= "--".$limite_partie_message."\n";
291
			
-
 
292
			$contenu = "";
-
 
293
			
-
 
294
			// Première sous partie : contenu du mail
-
 
295
			$contenu .= "\n--".$limite."\n";
-
 
296
			
-
 
297
				// Définition d'un type de contenu alternatif pour l'envoi en html et texte
-
 
298
				$contenu .= "Content-Type: multipart/alternative; boundary=\"".$limite_partie_message."\";\n";
-
 
299
				
-
 
300
				// Version texte
-
 
301
				$contenu .= "\n--".$limite_partie_message."\n";
-
 
302
				$contenu .= "Content-Type: text/plain;";
-
 
303
				$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
-
 
304
				$contenu .= "Content-Transfer-Encoding: 7bit;\n";
-
 
Line 305... Line -...
305
				$contenu .= "\n";
-
 
306
				$contenu .= $message_texte."\n";
-
 
307
				
-
 
308
				// Version html
-
 
309
				$contenu .= "--".$limite_partie_message."\n";
-
 
310
				$contenu .= "Content-Type: text/html;";
332
		$contenu .= "Content-Type: text/html;";
311
				$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
333
		$contenu .= "charset=\"".Config::get('appli_encodage')."\";\n";
312
				$contenu .= "Content-Transfer-Encoding: 7bit;\n";
334
		$contenu .= "Content-Transfer-Encoding: 7bit;\n";
313
				$contenu .= "\n";
335
		$contenu .= "\n";
314
				$contenu .= nl2br($message_antislashe)."\n";
-
 
315
				
-
 
316
				$contenu .= "\n--".$limite_partie_message."--\n";
-
 
317
				
-
 
318
			$contenu .= "--".$limite."\n";
-
 
Line -... Line 336...
-
 
336
		$contenu .= nl2br($message_antislashe)."\n";
-
 
337
		
-
 
338
		$contenu .= "\n--".$limite_partie_message."--\n";
-
 
339
			
-
 
340
		$contenu .= "--".$limite."\n";
319
			
341
		
320
			// Seconde sous partie : pièce jointe
342
		// Seconde sous partie : pièce jointe
321
			if($piece_jointe != null) {
343
		if ($piece_jointe != null) {
322
				
344
			
323
				$attachment = chunk_split(base64_encode($piece_jointe));
-
 
324
				
345
			$attachment = chunk_split(base64_encode($piece_jointe));
325
				$contenu .= "Content-Type: ".$type_mime."; name=\"".$nom_fichier."\"\n";
346
			
Line 326... Line 347...
326
				$contenu .= "Content-Transfer-Encoding: base64\n";
347
			$contenu .= "Content-Type: ".$type_mime."; name=\"".$nom_fichier."\"\n";
327
				$contenu .= "Content-Disposition: attachment; filename=\"".$nom_fichier."\"\n";
348
			$contenu .= "Content-Transfer-Encoding: base64\n";