Subversion Repositories Applications.annuaire

Rev

Rev 464 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 464 Rev 468
Line 186... Line 186...
186
	 * @param string $expediteur l'expediteur du message
186
	 * @param string $expediteur l'expediteur du message
187
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
187
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
188
	 * @param string $sujet sujet du mail
188
	 * @param string $sujet sujet du mail
189
	 * @return boolean true ou false suivant le succès ou non de l'envoi
189
	 * @return boolean true ou false suivant le succès ou non de l'envoi
190
	 */
190
	 */
191
	public function envoyerMailText($expediteur, $destinataires, $sujet, $message) {
191
	public function envoyerMailText($expediteur, $destinataires, $sujet, $message, $adresse_reponse = null) {
192
		if (!is_array($destinataires)) {
192
		if (!is_array($destinataires)) {
193
			$destinataires = array($destinataires);
193
			$destinataires = array($destinataires);
194
		}
194
		}
Line 195... Line 195...
195
 
195
 
Line 199... Line 199...
199
			"X-Mailer: PHP-ANNUAIRE-TXT\n".
199
			"X-Mailer: PHP-ANNUAIRE-TXT\n".
200
			"X-auth-smtp-user: annuaire@tela-botanica.org \n".
200
			"X-auth-smtp-user: annuaire@tela-botanica.org \n".
201
			"X-abuse-contact: annuaire@tela-botanica.org \n".
201
			"X-abuse-contact: annuaire@tela-botanica.org \n".
202
			"Date: ".date('r')."\n".
202
			"Date: ".date('r')."\n".
203
			"From: $expediteur\n".
203
			"From: $expediteur\n".
204
			'Content-Type: text/plain; charset="'.Config::get('appli_encodage').'";'."\n".
204
			'Content-Type: text/plain; charset="'.Config::get('appli_encodage').'";'."\n";
-
 
205
		if ($adresse_reponse !== null) {
-
 
206
			$entetes .= 'Reply-To: '.$adresse_reponse."\n";
-
 
207
		}
205
			"Content-Transfer-Encoding: 8bit;\n\n";
208
		$entetes .=	"Content-Transfer-Encoding: 8bit;\n\n";
Line 206... Line 209...
206
 
209
 
207
		$sujetEndode = mb_encode_mimeheader($this->encoderChainePourEnvoiMail($sujet));
210
		$sujetEncode = mb_encode_mimeheader($this->encoderChainePourEnvoiMail($sujet), mb_internal_encoding(), "B", "\n");
Line 208... Line 211...
208
		$contenu = $this->encoderChainePourEnvoiMail($message);
211
		$contenu = $this->encoderChainePourEnvoiMail($message);
209
 
212
 
210
		foreach ($destinataires as $destinataire) {
213
		foreach ($destinataires as $destinataire) {
Line 221... Line 224...
221
	 * @param string $expediteur l'expediteur du message
224
	 * @param string $expediteur l'expediteur du message
222
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
225
	 * @param mixed $destinataires un string ou un tableau de mails qui contiennent les destinataire
223
	 * @param string $sujet sujet du mail
226
	 * @param string $sujet sujet du mail
224
	 * @return boolean true ou false suivant le succès ou non de l'envoi
227
	 * @return boolean true ou false suivant le succès ou non de l'envoi
225
	 */
228
	 */
226
	public function envoyerMail($expediteur, $destinataires, $sujet, $message_html, $message_texte = '') {
229
	public function envoyerMail($expediteur, $destinataires, $sujet, $message_html, $message_texte = '', $adresse_reponse = null) {
227
		if (!is_array($destinataires)) {
230
		if (!is_array($destinataires)) {
228
			$destinataires = array($destinataires);
231
			$destinataires = array($destinataires);
229
		}
232
		}
230
		$message_html = $this->encoderChainePourEnvoiMail($message_html);
233
		$message_html = $this->encoderChainePourEnvoiMail($message_html);
231
		if ($message_texte == '') {
234
		if ($message_texte == '') {
Line 243... Line 246...
243
			"X-Mailer: PHP-ANNUAIRE-HTML".$eol.
246
			"X-Mailer: PHP-ANNUAIRE-HTML".$eol.
244
			"X-auth-smtp-user: annuaire@tela-botanica.org ".$eol.
247
			"X-auth-smtp-user: annuaire@tela-botanica.org ".$eol.
245
			"X-abuse-contact: annuaire@tela-botanica.org ".$eol.
248
			"X-abuse-contact: annuaire@tela-botanica.org ".$eol.
246
			'Date: '.date('r').$eol.
249
			'Date: '.date('r').$eol.
247
			'From: '.$expediteur.$eol.
250
			'From: '.$expediteur.$eol.
248
			'MIME-Version: 1.0'.$eol.
251
			'MIME-Version: 1.0'.$eol;
-
 
252
		if ($adresse_reponse !== null) {
-
 
253
			$entetes .= 'Reply-To: '.$adresse_reponse.$eol;
-
 
254
		}
249
			"Content-Type: multipart/alternative; boundary=\"$limite\";".$eol.$eol;
255
		$entetes .= "Content-Type: multipart/alternative; boundary=\"$limite\";".$eol.$eol;
Line 250... Line 256...
250
 
256
 
251
		// message en texte simple
257
		// message en texte simple
252
		$contenu = "--$limite".$eol.
258
		$contenu = "--$limite".$eol.
253
			"Content-Type: text/plain; charset=\"$encodage\";".$eol.
259
			"Content-Type: text/plain; charset=\"$encodage\";".$eol.
Line 258... Line 264...
258
			"Content-Type: text/html; charset=\"$encodage\";".$eol.
264
			"Content-Type: text/html; charset=\"$encodage\";".$eol.
259
			"Content-Transfer-Encoding: 8bit;".$eol.$eol.
265
			"Content-Transfer-Encoding: 8bit;".$eol.$eol.
260
			$message_html.$eol.$eol.
266
			$message_html.$eol.$eol.
261
			"--$limite--".$eol.$eol;
267
			"--$limite--".$eol.$eol;
Line 262... Line 268...
262
 
268
 
263
		$sujetEncode = mb_encode_mimeheader($this->encoderChainePourEnvoiMail($sujet), $encodage);
269
		$sujetEncode = mb_encode_mimeheader($this->encoderChainePourEnvoiMail($sujet), $encodage, "B", "\n");
264
		$ok = true;
270
		$ok = true;
265
		foreach ($destinataires as $destinataire) {
271
		foreach ($destinataires as $destinataire) {
266
			$ok = mail($destinataire, $sujetEncode, $contenu, $entetes);
272
			$ok = mail($destinataire, $sujetEncode, $contenu, $entetes);
267
			if (!$ok) {
273
			if (!$ok) {
Line 272... Line 278...
272
	}
278
	}
Line 273... Line 279...
273
 
279
 
274
	/**
280
	/**
275
	 * ATTENTION : le sujet et le contenu envoyer à cette méthode doivent avoir le même encodage que l'application.
281
	 * ATTENTION : le sujet et le contenu envoyer à cette méthode doivent avoir le même encodage que l'application.
276
	 */
282
	 */
277
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain') {
283
	public function envoyerMailAvecPieceJointe($expediteur, $destinataires, $sujet, $message, $piece_jointe = null, $nom_fichier, $type_mime = 'text/plain', $adresse_reponse = null) {
278
		if (!is_array($destinataires)) {
284
		if (!is_array($destinataires)) {
279
			$destinataires = array($destinataires);
285
			$destinataires = array($destinataires);
Line 280... Line 286...
280
		}
286
		}
Line 291... Line 297...
291
			"X-Mailer: PHP-ANNUAIRE-PJ\n".
297
			"X-Mailer: PHP-ANNUAIRE-PJ\n".
292
			"X-auth-smtp-user: annuaire@tela-botanica.org \n".
298
			"X-auth-smtp-user: annuaire@tela-botanica.org \n".
293
			"X-abuse-contact: annuaire@tela-botanica.org \n".
299
			"X-abuse-contact: annuaire@tela-botanica.org \n".
294
			"Date: ".date('r')."\n".
300
			"Date: ".date('r')."\n".
295
			"From: $expediteur\n".
301
			"From: $expediteur\n".
296
			'MIME-Version: 1.0' . "\n".
302
			'MIME-Version: 1.0' . "\n";
-
 
303
		if ($adresse_reponse !== null) {
-
 
304
			$entetes .= 'Reply-To: '.$adresse_reponse.$eol;
-
 
305
		}
297
			// Définition d'un type de contenu mixed (mail (texte + html) + piece jointe)
306
		// Définition d'un type de contenu mixed (mail (texte + html) + piece jointe)
298
			"Content-Type: multipart/mixed; boundary=\"$limite\";\n\n";
307
		$entetes .= "Content-Type: multipart/mixed; boundary=\"$limite\";\n\n";
Line 299... Line 308...
299
 
308
 
300
		// Première sous partie : contenu du mail
309
		// Première sous partie : contenu du mail
301
		$contenu = "\n".
310
		$contenu = "\n".
302
			"--$limite\n".
311
			"--$limite\n".
Line 329... Line 338...
329
				"X-Attachment-Id: ".md5($attachment)."\n\n".
338
				"X-Attachment-Id: ".md5($attachment)."\n\n".
330
				"$attachment\n".
339
				"$attachment\n".
331
				"--$limite--\n";
340
				"--$limite--\n";
332
		}
341
		}
Line 333... Line 342...
333
 
342
 
334
		$sujetEncode = mb_encode_mimeheader($sujet);
343
		$sujetEncode = mb_encode_mimeheader($sujet, mb_internal_encoding(), "B", "\n");
335
		foreach ($destinataires as $destinataire) {
344
		foreach ($destinataires as $destinataire) {
336
			if (!mail($destinataire, $sujetEncode, $contenu, $entetes)) {
345
			if (!mail($destinataire, $sujetEncode, $contenu, $entetes)) {
337
				return false;
346
				return false;
338
			}
347
			}