Envoie d'image par e-mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoie d'image par e-mail

Re: Envoie d'image par e-mail

par jojo1000 » 18 janv. 2010, 18:37

Ben moi aussi avec le tuto de phpfacile j'ai réussi à faire ce que je voulais.

Re: Envoie d'image par e-mail

par diabless6 » 18 janv. 2010, 16:44

Je viens de tester le script du lien que je t'ai envoyé ! Il fonctionne super bien :wink:

Re: Envoie d'image par e-mail

par diabless6 » 18 janv. 2010, 15:46

http://www.emanueleferonato.com/2008/07 ... -with-php/
Intéressant, mais moi je pensais plutôt à ça.

Re: Envoie d'image par e-mail

par jojo1000 » 18 janv. 2010, 15:37

C'est expliqué sur phpfacile:
http://www.phpfacile.com/creer_un_site_web_en_php/envoyer_un_mail_en_php_2.php5

Re: Envoie d'image par e-mail

par diabless6 » 18 janv. 2010, 15:24

bon en tout cas merci pour ton aide, je vais voir ça.
Tient moi au courant si tu trouves ça m'intéresse :wink:

Re: Envoie d'image par e-mail

par jojo1000 » 18 janv. 2010, 15:08

bon en tout cas merci pour ton aide, je vais voir ça.

Re: Envoie d'image par e-mail

par diabless6 » 18 janv. 2010, 14:56

Ben j'avoue, que je me suis pas posée la question.
Je pense que déjà, faut passer par fopen:
$path[1] = 'moi.jpg'; // chemin vers le fichier
$path[2] ='bt.jpg';
$ac=implode(",",$path);
for($x=1;$x<=sizeof($path);$x++){
$fp = fopen($ac, 'rb');}
$content = fread($fp, filesize($path));
fclose($fp);
Le problème c'est que fopen ouvre seulement un fichier ! J'ai réussie à m'envoyer un array en pièce jointe :mrgreen:
Franchement je vois pas là :roll:

Re: Envoie d'image par e-mail

par jojo1000 » 18 janv. 2010, 11:08

D'accord merci diabless, mais si je veux joindre plusieurs images

  $message .= "Content-Transfer-Encoding: base64\n";
  $message .= "Content-ID: <$file_id>\n\n";
  $message .= $content_encode . "\n";
  
?>

comment je fais, ça se passe ici non?

Re: Envoie d'image par e-mail

par diabless6 » 17 janv. 2010, 01:44

Chaque pièce jointe qui est référencé dans le corps du message (par exemple une image dans le corps HTML) a généralement un entête Content-ID qui est utilisé pour faire référence à cet attachement du corps du message.

Par exemple, si le corps HTML contient <IMG SRC="cid:picture1">, il ya une image en pièce jointe avec Content-ID picture1. Cette image doit être affichée à la place du tag <IMG SRC="cid:picture1"> lorsque le corps est rendu HTML.

Il faut encoder un image pour pouvoir l'envoyer par mail:

http://www.commentcamarche.net/content ... mime.php3

Re: Envoie d'image par e-mail

par jojo1000 » 17 janv. 2010, 01:10

  $message .= "<img src=\"cid:$file_id\" alt=\"ma tof!!!\"><br>";
  
C'est quoi le cid ici ?
$content_encode = chunk_split(base64_encode($content));

Et ça c'est obligatoire?

Re: Envoie d'image par e-mail

par diabless6 » 16 janv. 2010, 21:57

Tient si ça peut t'aider :wink: :
<?php
  // on génère une frontière
  $boundary = '-----=' . md5( uniqid ( rand() ) );
  // on génère un identifiant aléatoire pour le fichier
  $file_id  = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];

  // on va maintenant lire le fichier et l'encoder
  $path = 'moi.jpg'; // chemin vers le fichier
  $fp = fopen($path, 'rb');
  $content = fread($fp, filesize($path));
  fclose($fp);
  $content_encode = chunk_split(base64_encode($content));

 
  $headers = "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";

  $message  = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/html; charset=\"iso-8859-2\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n\n";
  $message .= "<html><body>coucou !, <br><br>";
  $message .= "Voila une tof sexy de moi :<br>";
  $message .= "<img src=\"cid:$file_id\" alt=\"ma tof!!!\"><br>";
  $message .= "<br>bises @+";
  $message .= "\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: image/jpg; name=\"$path\"\n";
  $message .= "Content-Transfer-Encoding: base64\n";
  $message .= "Content-ID: <$file_id>\n\n";
  $message .= $content_encode . "\n";
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";

  mail('[email protected]', 'une photo de moi...:p', $message, $headers);
?>

Re: Envoie d'image par e-mail

par jojo1000 » 16 janv. 2010, 18:17

Perso je préfère la deuxième solution.
Mais alors je vais devoir utiliser la classe Mail de PHP5 non? ce n'est pas possible avec la simple fonction mail(), si?

Re: Envoie d'image par e-mail

par Ryle » 16 janv. 2010, 17:52

Tu as deux solutions en fait... il faut soit :
- que ton image soit accessible sur internet, auquel cas tu peux mettre son url complète (avec le chemin http), et le client de messagerie affichera l'image (s'il a accès à internet)
- que ton image soit rattachée au message qui est envoyé pour pouvoir être affichée directement

Le premier est le plus simple à réaliser, le second est plus complexe , mais ne nécessite pas que la connexion internet soit active pour être consultée :)

Re: Envoie d'image par e-mail

par jojo1000 » 16 janv. 2010, 17:32

C'est un chemin de mon ftp, il faut donc j'envoie l'image en pièce jointe?

Re: Envoie d'image par e-mail

par Ryle » 16 janv. 2010, 17:29

Quand tu dis que ta variable $annonceImage contient le bon chemin, elle contient le bon chemin par rapport à quoi ?

C'est un chemin relatif par rapport à ton site ? (chose que le client de messagerie ne peut donc pas trouver)
C'est un chemin relatif par rapport au contenu du mail ? (auquel cas il te faut envoyer l'image avec le mail)
C'est un chemin absolu vers ton site ? (avec le http://tondomaine.com auquel cas, il faut être connecter à internet pour la voir)