Erreur lors de l'envoi d'une piece jointe
Résolu/Fermé
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
-
26 mars 2013 à 21:29
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014 - 27 mars 2013 à 22:20
cpcr Messages postés 29 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 16 avril 2014 - 27 mars 2013 à 22:20
A voir également:
- Une erreur est survenue lors de l'envoi du message
- Message - Guide
- Erreur 0x80070643 - Accueil - Windows
- Recuperer message whatsapp supprimé - Guide
- Diff message ✓ - Forum Mobile
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
27 réponses
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
27 mars 2013 à 20:18
27 mars 2013 à 20:18
Pas de soucis ce code je le comprend bien , et le possède dans le traitement.
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
27 mars 2013 à 20:30
27 mars 2013 à 20:30
oui cela fonctionne j'ai bien le "coucou "
Utilisateur anonyme
27 mars 2013 à 20:39
27 mars 2013 à 20:39
Essaye maintenant
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps)) {
C'est à dire comme avant mais SANS les en-têtes supplémentaires.
Ta pièce jointe étant mal faite, si tu reçois quelque chose tu verras le code de la pièce jointe au milieu du message mais ce n'est pas grave.
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps)) {
C'est à dire comme avant mais SANS les en-têtes supplémentaires.
Ta pièce jointe étant mal faite, si tu reçois quelque chose tu verras le code de la pièce jointe au milieu du message mais ce n'est pas grave.
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
27 mars 2013 à 20:47
27 mars 2013 à 20:47
Tout a fait je reçoit bien mon corps de mail avec les intitulé de chaque valeur (vide par contre) :
Message de :
Reference:
Photo:
...........=
(le code de notre piece jointe)
Message de :
Reference:
Photo:
...........=
(le code de notre piece jointe)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
Modifié par le père. le 27/03/2013 à 21:20
Modifié par le père. le 27/03/2013 à 21:20
J'essaye de corriger ce qui ne va pas et je reviens
Mais il faut être conscient que même si ça marche, ça ne va pas être peaufiné et qu'il vaut mieux utiliser de bibliothèques toutes faites pour l'envoi de mails. J'ai longtemps fait mes mails "à la main" mais maintenant utilise phpMailer.
Mais il faut être conscient que même si ça marche, ça ne va pas être peaufiné et qu'il vaut mieux utiliser de bibliothèques toutes faites pour l'envoi de mails. J'ai longtemps fait mes mails "à la main" mais maintenant utilise phpMailer.
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
27 mars 2013 à 21:25
27 mars 2013 à 21:25
J' entend très souvent parler de phpMailer mais ne sachant pas m'en servir j'ai opter pour la solution "débrouille"
Je ne t'ai pas mis mon code entier :
?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Merci, votre demande à bien été prise en compte. Vous pouvez quitter le site en toute sécurité.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','cpcr75@gmail.com');
define('MAIL_SUJET','Index PHOTO');
// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre adresse mail<br/>";
if (empty($_POST['ref_gaz']))
$message .= "Votre reference<br/>";
// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
die();
}
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/html; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: base64\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
// Traitement PJ
// Lecture du fichier
$fichier = $_FILES['photo']['tmp_name'];
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Fichier Image
$attachement .= "Content-Type: image/jpeg; name=\"[nom du fichier]\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"" . $_FILES['photo']['name']."\"\n\n";
// Joint du fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// Préparation du corps du mail
$mail_corps = "Message de : $nom, $email\n";
$mail_corps .= "Reference : $ref_gaz\n";
$mail_corps .= "Photo : $attachement\n";
$mail_corps .= "Commentaires : $comments\n";
// Envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps)) {
//Le mail est bien expédié
echo $msg_ok;
} else {
//Le mail n'a pas été expédié
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
?>
Je ne t'ai pas mis mon code entier :
?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Merci, votre demande à bien été prise en compte. Vous pouvez quitter le site en toute sécurité.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','cpcr75@gmail.com');
define('MAIL_SUJET','Index PHOTO');
// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre adresse mail<br/>";
if (empty($_POST['ref_gaz']))
$message .= "Votre reference<br/>";
// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
die();
}
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/html; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: base64\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
// Traitement PJ
// Lecture du fichier
$fichier = $_FILES['photo']['tmp_name'];
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Fichier Image
$attachement .= "Content-Type: image/jpeg; name=\"[nom du fichier]\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"" . $_FILES['photo']['name']."\"\n\n";
// Joint du fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// Préparation du corps du mail
$mail_corps = "Message de : $nom, $email\n";
$mail_corps .= "Reference : $ref_gaz\n";
$mail_corps .= "Photo : $attachement\n";
$mail_corps .= "Commentaires : $comments\n";
// Envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps)) {
//Le mail est bien expédié
echo $msg_ok;
} else {
//Le mail n'a pas été expédié
echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
?>
cpcr
Messages postés
29
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
16 avril 2014
27 mars 2013 à 22:20
27 mars 2013 à 22:20
Effectivement avec ton code ça fonctionne parfaitement !!
Et je comprend beaucoup mieux les commandes, tu vient de faire carrément un tuto sur le sujet , et un cours personnalise pour moi .
Je vais suivre tes conseils et "essayer" de comprendre PHPMAILER.
Je te remercie infiniment et te souhaite une excellente soirée .
Et je comprend beaucoup mieux les commandes, tu vient de faire carrément un tuto sur le sujet , et un cours personnalise pour moi .
Je vais suivre tes conseils et "essayer" de comprendre PHPMAILER.
Je te remercie infiniment et te souhaite une excellente soirée .
27 mars 2013 à 20:20