Envoie de mail avec pièce jointe php, renseignement
fanzy76
Messages postés8Date d'inscriptionvendredi 18 juillet 2008StatutMembreDernière intervention 2 mars 2009
-
14 janv. 2009 à 10:39
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 2012
-
14 janv. 2009 à 14:32
Bonjour, je sais que ce sujet est assez redondant, mais j'aurais besoin de renseignements. Après diverses recherchent sur la toile, je n'ai pu répondre à cette question :
Est-il possible d'envoyer un mail avec pièce jointe en php sans faire d'upload?
Si je me pose cette question, c'est pour la simple et bonne raison que je crée un site internet en php et que la fonction pour envoyer des mails avec pièce jointe fonctionne bien en local mais pas sur le serveur distant (je ne peux toucher à la config de php.ini dont aucune valeur n'est renseignée pour permettre l'upload).
Un coup de main serait le bienvenu.
Merci d'avance!
Quand ça bug, ça bug!
A voir également:
Envoie de mail avec pièce jointe php, renseignement
fanzy76
Messages postés8Date d'inscriptionvendredi 18 juillet 2008StatutMembreDernière intervention 2 mars 2009 14 janv. 2009 à 11:20
Alors comment faire pour envoyer un mail avec pièce jointe sans modifier le php.ini?
Je bloque sur ce problème depuis deux jours, et je ne trouve aucune réponse sur différents forums.
if(!is_uploaded_file($_FILES['cv']['tmp_name']))
{
$erreur = "Le fichier est introuvable";
}
else
{
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($_FILES['cv']['tmp_name'], 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['cv']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
//=====Déclaration des messages au format texte et au format HTML
$message_html = "Recrutement:\r\n".$civilite." ".$nom." ".$prenom;
$message_html .= "Recrutement:\r\n".$civilite." ".$nom." ".$prenom."\r\nTél: ".$tel."\r\n".$commentaires;
//==========
//=====Lecture et mise en forme de la pièce jointe
/*$fichiers = fopen($dossier . $fichier, "r");
$attachement = fread($fichiers, $taille);
$attachement = chunk_split(base64_encode($attachement));
fclose($fichiers);*/
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet
$sujet = "Recrutement";
//=========
//=====Ajout du message au format HTML
$message.="Content-Type: text/plain; charset="iso-8859-1"\n";
$message.="Content-Transfer-Encoding: 8bit\n";
$message.= $message_html."\n";
//==========
//=====On ferme la boundary alternative
$message.= "\n--".$boundary_alt."--\n";
//==========
$message.= "\n--".$boundary."\n";
//=====Ajout de la pièce jointe
//$message .= 'Content-Type: text/plain; name="'.$fichier."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="CV"'.$extension.''."\n\n";
//=====Envoi de l'e-mail
if(mail("[mailto:yy@xx.fr",$sujet,$message,$header yy@xx.fr",$sujet,$message,$header]))
{
$erreur = 'Le mail a été envoyé';
}
else
{
$erreur = 'Le mail n\'a pu être envoyé';
}
}
else
{
$erreur = "impossible de déplacer le fichier";
}
}
else
{
echo $erreur;
}
}
Les warnings que j'obtiens sur le serveur distant sont :
Warning
: move_uploaded_file(/web/tmp/-tmp-phpnqulG3) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/www/7f07b10f0600c52fe8910da7b4848683/web/pgs/postuler.php on line 71
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpnqulG3' to '/web/tmp/-tmp-phpnqulG3' in /home/www/7f07b10f0600c52fe8910da7b4848683/web/pgs/postuler.php on line 71La ligne 71 fait référence à : if(move_uploaded_file($_FILES['cv']['tmp_name'], $dossier . $fichier))
Merci quand même Teclis01 pour cette rapide réponse
fanzy76
Messages postés8Date d'inscriptionvendredi 18 juillet 2008StatutMembreDernière intervention 2 mars 2009 14 janv. 2009 à 12:17
Si ça pouvait être aussi facil, malheureusement le client ne voudra pas!
Et en attendant, le site bug.
Y aurait pas une solution qui pourrait arranger tout le monde?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 14 janv. 2009 à 14:32
Yep!
Tu réponds à ce client que l'on ne peut pas faire ce genre de chose sur un hébergement gratuit (je me demande qui prendrait le risque de mettre un site ou il y a un applicatif important sur un hébergement gratos) on a les prestations à la hauteur du prix de l'hébergement.
S'il veut pas changer de host ou prendre un hébergement pro et bien ... C'est pas possible.
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro