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 éclairé
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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
    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
    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".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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
    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
    Par défaut
    Vérifie que tu affiches toutes les erreurs PHP : mail renvoit un warning en cas d'erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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
    Par défaut
    Comment fait on cela ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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
    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, 20h17
  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, 13h20
  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, 09h58
  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, 10h35
  5. Réponses: 4
    Dernier message: 02/04/2007, 19h17

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