Envoi mail + pièce jointe
Résolu
Mopire
Messages postés
25
Statut
Membre
-
mpmp93 Messages postés 7217 Statut Membre -
mpmp93 Messages postés 7217 Statut Membre -
Bonjour a tous,
Je souhaite envoyé un mail avec une pièce jointe mais je galère.
J'arrive à envoyé un mail, mais au niveau de la pièce jointe ça déconne.
Voici mon code :
Je souhaite envoyé un mail avec une pièce jointe mais je galère.
J'arrive à envoyé un mail, mais au niveau de la pièce jointe ça déconne.
Voici mon code :
<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@");
$service = $_POST['service'];
$objet = $_POST['objet'];
$contenu = $_POST['contenu'];
$captcha = $_POST['captcha'];
$nom_du_fichier = $_POST['nom_du_fichier'];
$mail = $email; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@().[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_html = "<html><head>
</head>
<body bgcolor=#FFFFFF>
<p>Message envoyer</p>
</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("$nom_du_fichier", "r");
$attachement = fread($fichier, filesize("$nom_du_fichier"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "$objet";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"Mr/Mme $nom\" <$email>".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe.
$message.= "Content-Type: application/pdf; name=\"./$nom_du_fichier\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"$nom_du_fichier\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
?>
A voir également:
- Envoi mail + pièce jointe
- Pièce d'identité - Accueil - Services publics
- Programmer envoi mail gmail - Guide
- Windows live mail - Télécharger - Mail
- Envoi mail cci - Guide
- 1 pièce jointe - Guide
1 réponse
Bonjour,
dans Zend Framework, il y a ça tout fait:
Tout est là:
http://framework.zend.com/manual/fr/zend.mail.attachments.html
A+
dans Zend Framework, il y a ça tout fait:
$mail = new Zend_Mail();
// construction du message
$mail->createAttachment($uneChaineBinaire);
$mail->createAttachment($monImage,
'image/gif',
Zend_Mime::DISPOSITION_INLINE,
Zend_Mime::ENCODING_BASE64);
Tout est là:
http://framework.zend.com/manual/fr/zend.mail.attachments.html
A+