IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi d'e-mail complet avec image et pièce-jointe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2004
    Messages : 369
    Points : 121
    Points
    121
    Par défaut Envoi d'e-mail complet avec image et pièce-jointe
    Bonjour,
    Envoyant couramment des mails avec la fonction mail() mais débutant dans le domaine de la newsletter, j'essaie d'appliquer les recommendations du tutoriel http://a-pellegrini.developpez.com/tutoriels/php/mail/, paragraphe "Mail Complet".

    Pour cela, j'ai simplifié le code du tutoriel et vous trouverez ci-dessous le code utilisé pour l'essai.

    Dans le répertoire le fichier www.monsite.com/fichiers/image.jpg exite bien
    et de même pour http://www.monsite.com/ressources/image1.jpg

    Aucune erreur à l'éxécution, mais la valeur renvoyée par la fonction mail() est vide, donc le mail ne part pas.

    Pouvez vous m'indiquer où est l'erreur ? Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    	// clé aléatoire de limite
    	$boundary = md5(uniqid(microtime(), TRUE));
    	// Headers
    	$headers = "From: Adrien Pellegrini <mail@server.com>"."\r\n";
    	$headers .= "Mime-Version: 1.0"."\r\n";
    	$headers .= "Content-Type: multipart/mixed;";
    	$headers .= "boundary=".$boundary;
    	$headers .= "\r\n";
     
    	// Message
    	$msg = 'Texte affiché par des clients mail ne supportant pas le type MIME.'."\r\n\r\n";
     
    	// Message HTML
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type: text/html; charset=utf-8'."\r\n\r\n";
    	$msg .= "<div><img src=http://www.monsite.com/ressources/image1.jpg></div>\r\n";
     
    	Pièce jointe 1
    	$file_name = 'fichiers/image.jpg';
    	if (file_exists($file_name))
    	{
    		$file_type = filetype($file_name);
    		$file_size = filesize($file_name);
     
    		$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    		$content = fread($handle, $file_size);
    		$content = chunk_split(base64_encode($content));
    		$f = fclose($handle);
     
    		$msg .= '--'.$boundary."\r\n";
    		$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    		$msg .= 'Content-transfer-encoding:base64'."\r\n\r\n";
    		$msg .= $content."\r\n";
    	}
    	// Fin
    	$msg .= '--'.$boundary."\r\n";

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas la fonction mail() dans le code que tu nous montres.

    Sinon mail() renvoit TRUE ou FALSE, elle ne renvoit pas "une valeur vide".

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2004
    Messages : 369
    Points : 121
    Points
    121
    Par défaut
    Tu as tout à fait raison sabotage, il n'y a pas la fonction mail() ni l'adresse, je ne voulais pas charger le code.

    La fonction mail() utilisée est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("nom@fai.ext",$subject,$msg,$headers);
    et la fonction mail() me renvoie bien un FALSE

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Vérifie que tu affiches toutes les erreurs PHP : mail renvoit un warning en cas d'erreur.

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2004
    Messages : 369
    Points : 121
    Points
    121
    Par défaut
    Comment fait on cela ?

  6. #6
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2004
    Messages : 369
    Points : 121
    Points
    121
    Par défaut
    Bon après plusieurs essais, il semble que le manquement d'un Return-path dans le header soit à la source de mon problème.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Mail HTML avec SwiftMailer et pièce jointe
    Par Mister Nono dans le forum Symfony
    Réponses: 2
    Dernier message: 28/06/2014, 19h17
  2. [XL-2010] Envoi mail auto avec image
    Par pitipilot dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/07/2013, 12h20
  3. [OL-2010] Signature e-mail avec images sans pièce jointe
    Par davidoffsky dans le forum Outlook
    Réponses: 1
    Dernier message: 31/05/2012, 08h58
  4. Mail shell avec contenu et pièce jointe
    Par onime_no_squat dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 09/09/2009, 09h35
  5. Réponses: 4
    Dernier message: 02/04/2007, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo