Envoi EMail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoi EMail

par pudge » 05 juil. 2006, 13:50

C'est l'avant dernière ligne de ta fonction mail qui pose problème :
$szAttachement .= "\n\n\n------=$szLimite\n";
Tu rajoute une nouvelle "boundary" qui n'est pas nécessaire et qui génère un nouveau fichier. Il suffit de supprimer cette ligne de ton code et ça devrait marcher. :wink:

J'ai eu un temps le même souci avant de tomber sur ton post et de le résoudre!
:)

Envoi EMail

par sfourre » 12 mai 2006, 21:13

Aidé par les sources de NEXEN, j'ai préparé cette fonction pour envoyer un EMail avec un fichier attaché.
function fctMail($szTo , $szSujet , $szMessage , $szFichier , $szTypeMime , $szNom , $szReply , $szFrom) 
	{
	// szTo : adresse EMail du destinataire
	// $szSujet : sujet du message
	// szFichier : nom et chemin du fichier à attacher
	// $szTypeMime : type MIME, exemple : image/gif, voir http://www.commentcamarche.net/systemes/mime.php3
	// $szNom : nom du fichier attaché (celui qui apparaitra dans l'EMail
	// szReply : adresse EMail de réponse
	// szFrom : adresse EMail expéditeur
	
	$szLimite = "_parties_".md5(uniqid (rand())); 

	$szMail_mime = "Date: ".date("l j F Y, G:i")."\n"; 
	$szMail_mime .= "MIME-Version: 1.0\n"; 
	$szMail_mime .= "Content-Type: multipart/mixed;\n"; 
	$szMail_mime .= " boundary=\"----=$szLimite\"\n\n"; 

	//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML 
	$szTexte = "This is a multi-part message in MIME format.\n"; 
	$szTexte .= "Ceci est un message est au format MIME.\n"; 
	$szTexte .= "------=$szLimite\n"; 
	$szTexte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
	$szTexte .= "Content-Transfer-Encoding: 7bit\n\n"; 
	$szTexte .= $szMessage; 
	$szTexte .= "\n\n"; 

	//le fichier 
	$szAttachement = "------=$szLimite\n"; 
	$szAttachement .= "Content-Type: $szTypeMime; name=\"$szNom\"\n"; 
	$szAttachement .= "Content-Transfer-Encoding: base64\n"; 
	$szAttachement .= "Content-Disposition: attachment; filename=\"$szNom\"\n\n"; 

	$idFic = fopen( $szFichier, "r" ); 
	$bufFic = fread( $idFic, filesize( $szFichier ) ); 
	fclose( $idFic ); 
	$szAttachement .= chunk_split(base64_encode($bufFic)); 

	$szAttachement .= "\n\n\n------=$szLimite\n"; 
	mail($szTo, $szSujet, $szTexte.$szAttachement, "Reply-to: $szReply\nFrom: $szFrom\n".$szMail_mime); 
	}  

?>
Apellée de la manière suivante :
<?php
include ("../Outils/fctphp_mail.php");

fctMail("[email protected]" , "Essai avec fichier attaché", "Corps du message" , "T06A01024SF.pdf" , "application/pdf" , "Devis.pdf" , "[email protected]" , "[email protected]");

?>
J'ai 1 problème :
Un fichier vide de 59 octet ATT00024.TXT est attaché !!! D'ou sort il ?

Par ailleurs, je ne retrouve pas le contenu de szReply !

Merci de votre aide

Stéphane