Envoi mail avec piece jointe [Résolu]

cs_fredhot 5 Messages postés mardi 16 décembre 2008Date d'inscription 20 mai 2014 Dernière intervention - 11 oct. 2010 à 12:28 - Dernière réponse : cs_fredhot 5 Messages postés mardi 16 décembre 2008Date d'inscription 20 mai 2014 Dernière intervention
- 16 oct. 2010 à 12:35
Bonjour à tous,
depuis quelques jours j'essaie d'envoyer des mails avec une pièce jointe.
Sans résultat malgré mes recherches sur le net et divers essai.
J'ai trouvé pas mal de code mais impossible de les faire fonctionner.
L'envoi du texte(html) fonctionne.
Voici mon code....le code que j'essaie d'adapter à mes besoins.
La pièce jointe que j'essaie d'envoyer est un jpg qui ce trouve au même emplacement que le fichier ci-dessous.
Merci d'avance.

<?php
 
include("../Template/Connect/Connexionbd.php");
$Css        = ' body{ margin: 0;padding: 0;font-family: Georgia, "Times New Roman", Times, serif;} ';
                                                                 
$Texte      = 'Mon texte ';
 
echo '[admin/admin_menu.php retour Menu]

';
 
//-sujet
            $titre      = 'NewsLetter - ';
            $sujet      = utf8_decode( $titre.'Mon Sujet');
 
// Recup Nom & Mail expediteur 
            $Res_Exp      = mysql_query ("select * from User_Exp");
            $Nom_Exp      = mysql_result($Res_Exp,0,"Nom_Exp");
            $Mail_Exp     = mysql_result($Res_Exp,0,"Mail_Exp");
 
// Recup Destinataire
           $sql = "SELECT * FROM User_Dest";
           $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
while($Dest=mysql_fetch_assoc($req))
 
{
 
// destinataire     
          $destinataire = $Dest["Mail_Dest"]; 
     
       //$email_reply   ='email_de_reponse@fai.fr';
     
 // message texte     
         $message_texte ='Bonjour,'."\n\n".'Voici un message au format texte';
 // message html
        $message_html   ='<html><head> <title>'.$sujet.'</title><style type="text/css" media="screen">'.$Css.'  </style></head> '.utf8_decode($Texte).' </html>';                                                
  
  
     $frontiere  = '-----=' . md5(uniqid(mt_rand()));
 
//Nom Expediteur - Mail Expediteur
     $headers  = 'From: '.$Nom_Exp.'  <'.$Mail_Exp.'>'."\n"; 
     
//Mail reponse     
   //$headers .= 'Return-Path: <'.$email_reply.'>'."\n";  
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
 
//MESSAGE TEXTE
    $message = 'This is a multi-part message in MIME format.'."\n\n";
//-----------------------------------------------\\
    $message .= '--'.$frontiere."\n";
    $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
    $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
    $message .= $message_texte."\n\n";
 
  
//MESSAGE HTML
     $message .= '--'.$frontiere."\n";
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_html."\n\n";
//-----------------------------------------------\\
     $message .= '--'.$frontiere.'--'."\n";
 
//PIECE JOINTE
     $message .= 'Content-Type: image/jpeg; name="aff1.jpg"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="aff1.jpg"'."\n\n";
     $message .= chunk_split(base64_encode(file_get_contents('aff1.jpg')))."\n";
 
     if(mail($destinataire,$sujet,$message,$headers))
              {echo $destinataire." OK 
";}
                     else
              {echo $destinataire." NG 
";}
 
}
?>
 
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
 


</html>
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
JulSoft 354 Messages postés dimanche 3 juin 2001Date d'inscription 11 mars 2013 Dernière intervention - 14 oct. 2010 à 23:27
3
Merci
Jamais testé l'envoi de mails avec pieces jointes... Tu peux jetter un oeil du côté de phpmailer, une lib qui permet d'envoyer des mails de façon un peu plus complette que par la fonction native de php...

Merci JulSoft 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de JulSoft
Meilleure réponse
JulSoft 354 Messages postés dimanche 3 juin 2001Date d'inscription 11 mars 2013 Dernière intervention - 15 oct. 2010 à 21:00
3
Merci
Hello,

Il y'a quelques années (donc mes souvenirs sont peut être faux, mais je crois pas), on avait mis en place une newsletter en faisant comme ça (avec phpmailer donc). Ca avait l'avantage qu'on pouvait intégrer un lien de desinscription dans le mail.

L'inconvénient est qu'il fallait pas loin de 1/2h pour envoyer les mails, du coup il faut un serveur configurer pour que les scripts puissent s'exécuter pendant longtemps...

Il faut aussi faire en sorte que la personne qui envoie la newsletter ne puisse pas la réenvoyer en croyant qu'il y'a un bug vu que la page ne charge pas (ça nous était arrivé...).

Merci JulSoft 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de JulSoft
cs_fredhot 5 Messages postés mardi 16 décembre 2008Date d'inscription 20 mai 2014 Dernière intervention - 15 oct. 2010 à 07:00
0
Merci
merci pour ta réponse.
hier soir j'ai effectivement trouvé phpmailer & swiftmailer.
Effectivement des classes très pratique.
je me suis penché sur swiftmailer.

plus de prise de tête avec les frontières, moins de code.

par contre si quelqu'un connait un tuto ou des exemples sur ces classes je suis preneur.
Je me sers du site de l'editeur mais je pense que je n'exploite pas toutes les possibilités.
je cherche à faire une newsletter.
Pour envoyer à chaque contact je prend mes contacts dans ma BDD et je fais une boucle avec while.
Est-ce la bonne solution?

@plus
Commenter la réponse de cs_fredhot
cs_fredhot 5 Messages postés mardi 16 décembre 2008Date d'inscription 20 mai 2014 Dernière intervention - 16 oct. 2010 à 12:35
0
Merci
salut et merci JulSoft pour tes précisions.
j'ai choisi swiftmailer pour l'envoi, j'ai quelques soucis avec l'envoi en CopieCaché.
je préfère clôturer ce Post pour en ouvrir un autre sur ce sujet.

Merci. - @plus
Commenter la réponse de cs_fredhot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.