Accueil > Forum > > > > Prob de mail html
Prob de mail html
samedi 15 juillet 2006 à 18:49:14 |
Prob de mail html

DarkCid
|
Yaoh !
Voilà le contexte, je dois envoyer des mails promotionnel avec des images histoire que se soit plus sympa à voir, donc mail html oblige. J'ai récupéré sur phpcs cette fonction :
function htmlMailing($sendTo,$subject,$htmlMessage,$textMessage,$additional_headers = '',$additional_parameters = '')
{
// ici on cherche les fichiers inclus dans l'HTML par src="..."
preg_match_all('@src="([\w.]+)"@im',$htmlMessage,$preg_result);
$file[0] = array();
foreach( $preg_result[1] as $name )
{
// on evite de faire des doublons...
if(!in_array($name,$file[0]))
{
// on pose un identifiant pour chaque fichier trouvé dans l'HTML
$ID = md5( uniqid ( rand() ) ).$_SERVER['SERVER_NAME'];
$file[0][$name] = $ID;
$file[1][$name] = '(src="'.$name.'")';
$file[2][$name] = 'src="cid:'.$ID.'"';
}
}
unset($preg_result);
$htmlMessage = preg_replace($file[1],$file[2],$htmlMessage);
// La frontière des messages de type MIME
$boundary = '-----=' . md5( uniqid ( rand() ) );
// On ajoute dans l'header du mail le fait que c'est un message MIME
$additional_headers.= NL.'MIME-Version: 1.0'.NL;
// multipart/related veux dire que les fichiers inclus seront liés dans le message
$additional_headers.= 'Content-Type: multipart/related; boundary="'.$boundary.'"'.NL;
$message = $textMessage.NL.NL; //au cas où le navigateur ne sache pas lire les types MIME
$message.= '--'.$boundary.NL; // frontière
$message.= 'Content-Type: text/html; charset="iso-8859-1"'.NL;
// entete HTML
$message.= 'Content-Transfer-Encoding: 8bit'.NL.NL;
$message.= $htmlMessage.NL.NL; // corps du message
// on inclu tous les fichiers utilisés :
foreach( $file[0] as $name => $ID )
{
$message.= '--'.$boundary.NL;
$message.= 'Content-Type: '.mime_content_type($name).'; name="'.$name.'"'.NL;
$message.= 'Content-Transfer-Encoding: base64'.NL;
$message.= 'Content-ID: <'.$ID.'>'.NL.NL;
$message.= chunk_split(base64_encode(file_get_contents ($name))).NL.NL;
}
$message.= '--'.$boundary.'--';
mail($sendTo, $subject, $message, $additional_headers, $additional_parameters);
}
Alors juste avant, je fabrique un message html (un peu comme si je faisais un echo de toute une page html), je l'affiche pour debug et il affiche ce que je ve, ouf !
Le prob c'est que pour envoyer ce message, là il bug et il me met ça :
Warning: preg_replace(): Empty regular expression in /home.10.2/signanet/www/Pages/adminenvoi.php on line 32
(pour info, la ligne 32 c'est celle là :$htmlMessage = preg_replace($file[1],$file[2],$htmlMessage);)
Alors que dois-je faire ?
|
|
samedi 15 juillet 2006 à 23:44:50 |
Re : Prob de mail html

rrk275
|
peut tu poser un echo d'un $file[1] classique ( bien evidemment pour chaque case de celui ci ^^) d'un $file[2] pour le $htmlMessage je pense c'est bon ^^ (d'apres le message d'erreur y en un vide .. eventuellement essaye de faire foreach( $preg_result[0] as $name ) .. 
|
|
dimanche 16 juillet 2006 à 00:37:56 |
Re : Prob de mail html

DarkCid
|
Yaoh !
aucun file n'affiche koi ke se soit, ke se soit file[1] ou file[2] et foreach( $preg_result[0] as $name ) ne change rien non plus.
Du coup, je suppose k'on peut croire que le problème vient du preg_match_all non ?
|
|
dimanche 16 juillet 2006 à 00:40:43 |
Re : Prob de mail html

rrk275
|
balance les arguments de preg_match_all('@src="([\w.]+)"@im',$htmlMessage,$preg_result); et les resultats .. (je pense qu'il y en a aucun .. ) , au fait pourquoi a tu mis foreach( $preg_result[1] as $name ) ? ( c'est une question relle je m'y connais pas beaucoup ... )
|
|
dimanche 16 juillet 2006 à 00:44:19 |
Re : Prob de mail html

DarkCid
|
Yaoh !
SI je balance cette partie, d'après ce que j'ai compris du code k'on m'a passé, mon message html n'aura plus d'images pour ceux qui le recevront, ce qui est logique puisque le chemin des images est en relatif. Cette partie du code est donc censé remplacé les chemins relatif par des chemin que n'importe qui peut comprendre, enfin je pense.
|
|
dimanche 16 juillet 2006 à 00:54:50 |
Re : Prob de mail html

rrk275
|
Mdr balance ... montre ^^ je pensais pas a l'enlever 
|
|
dimanche 16 juillet 2006 à 01:12:01 |
Re : Prob de mail html

rrk275
|
apres avoir bien regardé ton code certaine chose m'étonne , foreach( $preg_result[0] as $name ) { //ici $name contient src="monimage.jpg" et tu fais $file[0][$name] = $ID; $file[1][$name] = '(src="'.$name.'")'; $file[2][$name] = 'src="cid:'.$ID.'"'; } je t'ai donc mitonné un pti code <? $htmlMessage = '<img src="banane.jpg">'; preg_match_all('@src="([\w.]+)"@im',$htmlMessage,$preg_result); for($i= 0;$i<count($preg_result[0]);$i++) { $file[0][$i] = '/'.$preg_result[0][$i].'/'; $file[1][$i] = $_SERVER['SERVER_NAME'].$preg_result[0][$i]; } $htmlMessage = preg_replace($file[0],$file[1],$htmlMessage); echo $htmlMessage; ?> marche parfait chez moi a adapter , mais c'est relativement simple ..donc je te laisse faire .. au fait le 1 ne change rien comme il n'y a aucune parenthese mais je pense que c'est aussi bien 0 .. 
|
|
dimanche 16 juillet 2006 à 10:07:56 |
Re : Prob de mail html

DarkCid
|
Yaoh !
Je sais pas si y a du mieux ou pas, mais y a du changement :
Warning: preg_replace(): Empty regular expression in /home.10.2/signanet/www/Pages/adminenvoi.php on line 22
Warning: Invalid argument supplied for foreach() in /home.10.2/signanet/www/Pages/adminenvoi.php on line 39
La ligne 39, c le foreach ki est avant la fin.
|
|
dimanche 16 juillet 2006 à 11:35:04 |
Re : Prob de mail html

rrk275
|
salut , Il fallait integrer mon code à ta page, la ca à apparement pas reussi et je me demande comment tu as fait ...
function htmlMailing($sendTo,$subject,$htmlMessage,$textMessage,$additional_headers = '',$additional_parameters = '') { // ici on cherche les fichiers inclus dans l'HTML par src="..." preg_match_all('@src="([\w.]+)"@im',$htmlMessage,$preg_result); $file[0] = array(); foreach( $preg_result[1] as $name ) { // on evite de faire des doublons... if(!in_array($name,$file[0])) { // on pose un identifiant pour chaque fichier trouvé dans l'HTML $ID = md5( uniqid ( rand() ) ).$_SERVER['SERVER_NAME']; $file[0][$name] = $ID; $file[1][$name] = '(src="'.$name.'")'; $file[2][$name] = 'src="cid:'.$ID.'"'; } } unset($preg_result);
$htmlMessage = preg_replace($file[1],$file[2],$htmlMessage); ca on supprime
preg_match_all('@src="([\w.]+)"@im',$htmlMessage,$preg_result); for($i= 0;$i<count($preg_result[0]);$i++) { $file[0][$i] = '/'.$preg_result[0][$i].'/'; $file[1][$i] = $_SERVER['SERVER_NAME'].$preg_result[0][$i]; } $htmlMessage = preg_replace($file[0],$file[1],$htmlMessage);
et voila comment j'aurais fait masi ptet a tu fais ainsi ... je vais donc tester la fonction ..
// La frontière des messages de type MIME $boundary = '-----=' . md5( uniqid ( rand() ) );
// On ajoute dans l'header du mail le fait que c'est un message MIME $additional_headers.= NL.'MIME-Version: 1.0'.NL; // multipart/related veux dire que les fichiers inclus seront liés dans le message $additional_headers.= 'Content-Type: multipart/related; boundary="'.$boundary.'"'.NL;
$message = $textMessage.NL.NL; //au cas où le navigateur ne sache pas lire les types MIME $message.= '--'.$boundary.NL; // frontière $message.= 'Content-Type: text/html; charset="iso-8859-1"'.NL; // entete HTML $message.= 'Content-Transfer-Encoding: 8bit'.NL.NL; $message.= $htmlMessage.NL.NL; // corps du message // on inclu tous les fichiers utilisés : foreach( $file[0] as $name => $ID ) { $message.= '--'.$boundary.NL; $message.= 'Content-Type: '.mime_content_type($name).'; name="'.$name.'"'.NL; $message.= 'Content-Transfer-Encoding: base64'.NL; $message.= 'Content-ID: <'.$ID.'>'.NL.NL; $message.= chunk_split(base64_encode(file_get_contents ($name))).NL.NL; } $message.= '--'.$boundary.'--'; mail($sendTo, $subject, $message, $additional_headers, $additional_parameters); }
|
|
dimanche 16 juillet 2006 à 11:40:34 |
Re : Prob de mail html

DarkCid
|
Yaoh ! Tu va tester la fonction ? Tu me dira si sa marche. Moi en attendant, je me suis pas fait chier, g vaqué tt ce qui concerne les fichiers, et g remplacé dans la création du mail les chemins relatifs en absolu  Comme ça marche bien, prends ton temps pour trouver le prob, mais sa m'intéresse toujours de connaître le problème (sa m'agace d'ailleurs kan je comprends pas).
|
|
Cette discussion est classée dans : message, file, html, name, nl
Répondre à ce message
Sujets en rapport avec ce message
Securiser un upload !! [ par SnOOpss ]
Bonjour je doit faire un systeme d'upload sur un site, sans inscriptions, donc le premier venu pourra uploader des fichiers sur le serveur et je voula
Mail multiformat vide sous Mail Mac [ par cseagle ]
Bonjour, Je viens de développer une application php d'envoi de newsletter multi format (Content-Type: multipart/alternative) Dans les webmails qui n
upload image [ par mariobotta ]
bonjour,j'ai créer un système d'upload pour des image stocker dans une base de donnée .mon script fonctionne bien en local mais plus sur le net (je su
parse erreur [ par hanlin ]
je ne sais quoi faire pour regler ce probleme de "parse error" dans ce code...quelqu'un pourrait-il m'aider ?mysql_select_db($database_contact, $conta
je patauge avec mon code !! [ par hanlin ]
voila...je veux faire un formulaire d'inscription tout simple avec possibilité d'iploader un fichier doc ou pdf...j'utilise pour ça dreamweaver et je
upload images [ par refkaben ]
Bonjour à tous,je veux uploade une image, j'ai fait des recherches sur phpcs et j'ai eu ce code que j'ai adapté à mon cas.le problème c'est que ça fon
Problème d'upload en php [ par Adrien4 ]
Bonjour,j'ai trouvé un code php sur le net il y a quelques mois, que je ne retrouve plus.Il fonctionnait, même chez free, mais après l'avoir "arrangé"
AIDEZ MOI PAR PITIÉ [ par Toolsweb ]
Bon, j'ai ça $taille_octets_max = 1048576; // Taille maxi du fichier, en octets. if ($file_name == "none" || !$file_name) { $error="Spéc
fonction "\'" [ par magicsmacks ]
Bonjour, Je suis en train de programmer un forum de disussion... Mais j'ai un petit problème : J'ai programmé la page de formulaire pour que l'utilis
problème d'upload [ par romiain ]
Salut à tous, J'ai un problème avec mon upload, lorsque je charge une photo j'ai l'erreur suivante Notice: Undefined variable: name_file in c:\program
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|