[PHP5] - SIMPLE CLASSE D'ENVOI D'EMAIL

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 10 juil. 2008 à 13:00
snoozer Messages postés 1 Date d'inscription mardi 10 septembre 2013 Statut Membre Dernière intervention 10 septembre 2013 - 10 sept. 2013 à 15:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47281-php5-simple-classe-d-envoi-d-email

snoozer Messages postés 1 Date d'inscription mardi 10 septembre 2013 Statut Membre Dernière intervention 10 septembre 2013
10 sept. 2013 à 15:50
j'ai viré la function chunk_split comme conseillé plus haut.

La fonction qui nous met plein de caractere bizarre : quoted_printable_encode()

dans le construct :
$this->_aProperties['Date'] = date("r");

c'est mieux comme ca, ca retourne le bon fuseau horraire plutot que celui qui est sur -0600 .

dans la fonction send j'ai du rajouter une ligne :
$this->_aProperties['Bodies'] = array();

pour reinitialisé le body

autrement si on veut envoyer 2 mail a la suite dans la meme instance, on récupéré le premier body dans le 2 ieme mail, meme en utilisant addBody (qui est censé le rajouté)

et j'ai pas trop fouiller...
JMarcBoutaud Messages postés 1 Date d'inscription dimanche 5 février 2012 Statut Membre Dernière intervention 5 février 2012
5 févr. 2012 à 10:35
Ca paraît génial de simplicité effectivement, merci beaucoup de mettre à disposition ce très beau travail. Par contre, quand je fais le test avec l'exemple fourni : l'email envoyé va direct dans la boîte "Junk EMail" du destinataire...

Il y a moyen d'éviter ça ?
bentom32390 Messages postés 25 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 21 février 2009
13 janv. 2012 à 20:04
je vient de teste ta source marche bien
mais juste que les lien ne affiche pas comme lien
testabc Messages postés 33 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 23 juillet 2014
15 nov. 2011 à 17:40
Testé sur ovh, ça ne fonctionne pas.
j'ai fais le test sans pièce jointe, le mail part bien, mais n'arrive jamais...

Peut-être une petite mise a jour de codefalse serait la bienvenue...
cink4webmister Messages postés 1 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011
14 janv. 2011 à 13:47
Bonjour,
Cette source est excelente mais je retrouve le même soucis sur les pièces jointes, le fichier est non lisible.
Quelqu'un aurait-il une solution ?
Merci
hungawa Messages postés 1 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010
29 nov. 2010 à 17:20
Bonjour,

Merci pour cette excellente source.

J'ai un petit soucis, lorsque je joints une pièce jointe (pdf, image) la taille d'arrivée du fichier est de 0 et ne peut donc être lu. Avez-vous une idée afin de résoudre ce problème svp ?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
29 oct. 2010 à 16:11
Propositions :

SimpleMail.php Ligne 72 :
if (NULL !== ($aProperties) && is_array($aProperties)) {

SimpleMail.php Méthode __set($sKey, $mValue) :
public function __set ($sKey, $mValue) {
if (gettype($this->_aProperties[$sKey]) != gettype($mValue))
throw new Exception ('Invalid type, must be '.gettype($this->_aProperties[$sKey]);
else
$this->_aProperties[$sKey] = $mValue;
}

J'ai pas regardé plus en profondeur pour le moment :)
NeoMansLand Messages postés 1 Date d'inscription vendredi 3 septembre 2010 Statut Membre Dernière intervention 3 septembre 2010
3 sept. 2010 à 14:55
Bonjour à tous, et merci beaucoup pour cette source =)

j'ai utilisé ton script pour m'envoyer par mail le résultat d'un formulaire. Le visiteur remplit plusieurs champs, il a la possibilité de laisser une pièce jointe, et lorsqu'il valide son formulaire, je reçois un mail avec ce qu'il a rempli.

J'ai cependant deux problèmes :

- si l'on joint un fichier, il me balance l'erreur suivante : The file "MonFichier.pdf" is unreadable. J'ai pourtant la ligne qui correspond pour les pdf :
$oEmail->addAttachment ($_FILES['r_file']['name'], MimeType::get ('pdf'));

- le problème de la pièce jointe mise à part, dans la mise en page de mon mail, j'ai des retours à la ligne aléatoires... any idea why ?
code :
$sMessage_env='Nom: '.$_POST['r_nom'].'
'.
'Prenom: '.$_POST['r_prenom'].'
'.
'Societe: '.$_POST['r_fonction'].'
'.
'Adresse1: '.$_POST['r_adresse1'].'
'.
'Adresse2: '.$_POST['r_adresse2'].'
'.
'CP: '.$_POST['r_c_postal'].'
'.
'Ville: '.$_POST['r_ville'].'
'.
'Pays: '.$_POST['r_pays'].'
'.
'Tel: '.$_POST['r_tel'].'
'.
'Mail: '.$_POST['r_email'].'
'.
'Message: '.'
'.$_POST['r_message'].'
';

$oEmail->addBody ($sMessage_env, 'text/html');
cs_lkaiman Messages postés 16 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 6 février 2010
6 févr. 2010 à 17:56
Merci pour ce code,

et me voila avec un autre module tout fais à utiliser comme je veux ;)

Have fun
jayprisme Messages postés 1 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 4 décembre 2009
4 déc. 2009 à 14:11
outre les espaces ajoutés déjà discutés ici, j'ai un problème d'encodage :
si mon texte est en utf8 il est mal interprété

et j'ai un caractère " ! " qui est inséré sans raison ...

je switch sur php mailer
brosto Messages postés 2 Date d'inscription jeudi 28 juillet 2005 Statut Membre Dernière intervention 1 octobre 2009
1 oct. 2009 à 11:29
A oui pardon...
dommage aussi que le code génère une erreur si le mime d'une pièce jointe est introivable au lieu de mettre un mime par defaut. par exemple le swf n'est pas reconnu, donc envoi pas possible...

je me suis permis de le reprendre comme ça. je ne sais pas si c'est le top, mais ça marche :
public static function geti($sKey) {
$sExtension = $sKey;

if (strpos ($sKey, '.') !== false)
$sExtension = substr ($sKey, strrpos ($sKey, '.') + 1);

if (!isset (self::$_aType[$sExtension]))
return "application/octet-stream";
return self::$_aType[$sExtension];
}
brosto Messages postés 2 Date d'inscription jeudi 28 juillet 2005 Statut Membre Dernière intervention 1 octobre 2009
1 oct. 2009 à 11:25
Salut,

juste un petit truc... quand même. soit je suisa veugle, soit je ne trouve pas la fonction getMessage() qui est applelée en ligne 25 de index.php. donc ça fait une erreur fatale.

de plus, si elle sert à ce que je pense, elle serait bien utile pour faire un "imap_append" après que l'envoi ai été bien fait. une solution ?

merci quand même, bon code.
crahier Messages postés 54 Date d'inscription dimanche 22 septembre 2002 Statut Membre Dernière intervention 22 avril 2011
20 sept. 2009 à 16:01
Merci pour ce code !
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
4 déc. 2008 à 22:45
c'est le but !

J'espère qu'il aide beaucoup tout en restant simple ! :)
cs_The_Pretender Messages postés 60 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 18 janvier 2011
4 déc. 2008 à 22:07
Merci pour votre réponse rapide.

J'ai trouvé d'où venait les problèmes.

- il faut pas utiliser plusieurs fois la méthode $oEmailAdmin->addBody(...) pour envoyer des messages mails longs. Sinon il ne sont pas envoyés en entier.
- le lien dans les mails doivent contenir une url complète, sinon il n'est pas affiché dans mozilla thunderbird.
exemple : Newsletter
- j'ai désativé chunck_split (ligne 152) dans le code.

Pour information, plusieurs intances fonctionnent très bien en tenant comptes des 2 remarques précédentes.

Féléicitation pour ton script propre et bien codé en php5. Merci beaucoup, cela m'a fait gagner du temps en m'évitant d'en développer un :)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
4 déc. 2008 à 21:38
Bonsoir :)

le fait qu'il manque un lien à la fin du mail est étrange, juste avant l'envoi de l'email, tu devrais faire un var_dump ($ton_objet); histoire de voir ce qu'il en est.

Pour ce qui est des multiples instances, je n'ai jamais essayé, mais je ne vois pas en quoi cela pourrai poser problème. Tu devrais peut-être essayer d'instancier une premiere fois, faire tout ton traitement, envoyer, supprimer (unset), et faire une nouvelle instance pour le second mail. Regarde ce que ca donne.

Enfin, pour le problème d'espace dans les mots, cela vient de la fonction chunck_split (ligne 152). Essaye en l'enlevant, ca devrait ptete mieux passer !

N'hésite pas à me dire ce qu'il en est, c'est grâce à ce genre de remarques que les problèmes ce corrigent.
cs_The_Pretender Messages postés 60 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 18 janvier 2011
4 déc. 2008 à 20:49
Bonjour,

Après avoir testé votre script, j'ai plusieurs bugs :
- Le mail n'est pas envoyé entièrement en html, il manque un lien a href à ola fin du message.
- Dans la même classe, j'instancie la classe simplemail 2 fois pour avoir 2 objet mail différents. Le 2ème mail n'est jamais envoyé en entier, le première partie disparait toujours du mail.

est ce des bugs connus ou une limitation du script ?

Exemple de message envoyé (le message n'apparaît pas correctement car les balises html sont désactivées) : Les points accumulés avec le Quizz Trouve Ta Musique de notre partenaire vo us fait gagner le cadeau suivant :

Nom : Iphone
Descri ption : Iphone 3G débloqué tout réseau.

logo_Iphone

Nombre de points nécessaire : 4000 points.

Féli citation pour votre cadeau. Celui-ci vous sera envoyé dans les plus brefs d élais.
N'hésitez pas à vous inscrire à la Newsletter Quizz Trouve Ta Musique pour étre tenu informé des prochains Quizz organisés par nos partenaires.
cs_bug31 Messages postés 9 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 13 août 2011
7 nov. 2008 à 11:23
Merci codefalse j'avé la tete un peut ailleur suand jai regarder le script surment !
nico1214 Messages postés 37 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 6 mai 2009
6 nov. 2008 à 22:49
Bonjour,

J'avais le même problème que ClaudeD07 avec les espaces et en retirant chunk_split, ça fonctionne parfaitement.
Ceci dit, un grand bravo pour ce code et un grand merci !
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
4 nov. 2008 à 15:37
Tu as déjà fait de la soumission de formulaire ?
Il faut que tu récupère les valeurs données par le formulaire (en $_POST généralement mais sinon aussi en $_GET), et que tu remplace l'exemple fournit par les variables en rapport dans ton formulaire (mail, nom/prénom, message, etc).
Si toutefois tu ne comprends rien de ce que j'ai dit, demande de l'aide sur le forum, tu trouvera une réponse plus adaptée à ton problème
cs_bug31 Messages postés 9 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 13 août 2011
4 nov. 2008 à 15:16
Super il y a vraiment tout dessu mais j'ai un probleme, j'ai mon formullaire avec la fontion envoyer... et comment en ce sert de ta classe ?
PHP5 ?, j'ai essayer tes fichier seul comme ca rien ne ce passe !
Comment ca marche ? Merci
cs_gaele Messages postés 3 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 2 septembre 2008
2 sept. 2008 à 22:22
je vais essayer.
merci
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
2 sept. 2008 à 21:51
Dans le fichier qui recoit la réponse du formulaire d'envoi d'email. Ou si tu l'envoie sans passer par un formulaire, directement dans la page qui effectue le traitement.
cs_gaele Messages postés 3 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 2 septembre 2008
2 sept. 2008 à 21:01
ok mais ou dois-je le placer?
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
2 sept. 2008 à 20:47
Le code présent sur cette page est un exemple, tu peux l'adapter à tes besoins.
cs_gaele Messages postés 3 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 2 septembre 2008
2 sept. 2008 à 20:21
Bonjour,
je suis complètement novice en php et j'aimerais savoir comment utiliser ce code.
merci
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
2 sept. 2008 à 18:35
En fait, je suis en train de me demander si je n'ai pas fait une mauvaise interprétation du manuel PHP :

"Scinde la chaîne body en segments de chunklen octets de longueur. Cette fonction est très pratique pour convertir les résultats de base64_encode() au format de la RFC 2045.".

Après relecture, il semblerai qu'elle soit utile après l'usage de la méthode base64_encode. Donc si on n'utilise pas cette méthode, on a pas besoin d'utiliser chunk_split. Or dans mon code je l'utilise quoiqu'il arrive.

Dites-moi ce que vous en pensez, et si j'ai effectivement fait une mauvaise interprétation, je corrigerai vite le code ! :)
cs_clauded07 Messages postés 5 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 2 septembre 2008
2 sept. 2008 à 18:27
en supprimant chunk_split, ca marche
tout en fesant attention de faire de temps en temps des retour a la ligne au bon endroit
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
2 sept. 2008 à 17:10
ca doit être la fonction chunk_split qui te découpe ta chaine. Par contre je ne vois pas trop comment y remédier ... !
cs_clauded07 Messages postés 5 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 2 septembre 2008
2 sept. 2008 à 16:46
Un probleme!!
Parfois, des caractères "espace" sont rajouté, en addbody(text/html). quand ca tombe bien ca va. quand ca tombe a l'interieur des caratère spéciaux &xxxx; c'est pas cool ou en plein mot.

exemple avec cette phrase :
------
Ce courriel vous a été envoyé par un système automatique d'émission de messages. L'adresse d'émission n'est pas une adresse de courriel classique. Si vous écrivez à cette adresse votre message ne sera pas pris en compte. Si vous souhaitez nous envoyer un message, nous vous invitons à utiliser [la] rubrique NOUS CONTACTER se trouvant sur le site.
-------
insertion d'un blanc sur [la], mis entre crochet, au caractere N° 296 .
mystere
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 août 2008 à 10:58
lol pas de problemes ;)

Perso je préfère quand ca marche ;)

Bonne journée :)
cs_clauded07 Messages postés 5 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 2 septembre 2008
29 août 2008 à 10:37
J'ai recu les mail, impeccable! c'est qmail il a fait de la retention d'information! vraiement désolé, heureusement que t'es pas cardiaque!
Merci, super boulot !
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 août 2008 à 10:15
c'est un probleme au niveau des headers que mon code ajoute, il doit y en avoir un que ovh n'aime pas. Je m'était déjà battu pour débugguer, et sur mon 60gp c'était passé ensuite. Peut-être que maintenant il y en à un autre ? (il est vrai que j'en met pas mal des headers !)

Si tu veux trouver le problème, je te conseil fortement de regarder de ce côté. Je te dit ca car je peux pas te promettre de corriger le code rapidement, en ce moment je fait des journées de 19 heures ... :p

Mais si tu ne trouve pas, je jeterai un oeil quand j'aurai du temps devant moi. Je le met sur la liste de mes tâches ;)

Merci pour la remontée !
cs_clauded07 Messages postés 5 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 2 septembre 2008
29 août 2008 à 09:03
oui les mails avec la fonction php [mail] passe bien.
avec ton code, j'ai fait des essais d'envoi simple, sans pieces jointes mais c'est pareil.
c'est le mystere! qmail est configurer de maniere classique. aucune trace dans les logs, aucune erreur généré.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 août 2008 à 22:43
Mais la fonction mail envoie bien les mails sur ton serveur dédié (sans passer par ma source) ?

J'avais corrigé certains bugs à propos de OVH, mais ptete pas tous apparement.
J'attends des retours de ma question ?
cs_clauded07 Messages postés 5 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 2 septembre 2008
28 août 2008 à 20:53
salut et bon travail. cependant tester sur un dedie ovh, gentoo 2, ca marche pas.
:(
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
1 août 2008 à 00:23
Ajout du support des accents dans le sujet ! :)

Par contre je sais pas comment faire pour le support des accents dans les emails, si vous avez une idée ?

Si j'utilise la fonction quoted_printable_encode, ca va me fusiller tous les <>, espace et @, donc c'est pas bon !

Parce que pour le moment si quelqu'un met un truc du genre 'éléphant <elephantman@example.org>'. Le mail ne partira pas ... :/
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
31 juil. 2008 à 23:36
Je me suis rendu compte que le code marchait pas chez ovh. Pire encore, ca fonctionnait pas en lecture sur les serveurs MS (exchange et Hotmail). C'est maintenant corrigé ! :)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
18 juil. 2008 à 18:52
Merci ^^ :)
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
18 juil. 2008 à 17:36
Voila tu as gagné j'ai plus rien à dire maintenant snif :D
Encore bravo pour cette source ! :)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
15 juil. 2008 à 20:15
Voila une petite mise à jour :)
J'ai pris en compte vos commentaires.
Maintenant la classe supporte les mails en html avec les images, qui sont automatiquement incorporées dans le html lorsque ces images sont accessibles en lecture depuis le script.

La classe supporte aussi la compression des pièces jointes à la volée. J'ai pas fait quelque chose de complexe car la compression n'est pas le sujet ici.
J'ai donc fait une interface iCompression, que la méthode addAttachment prends en paramètre, et appele la méthode compress afin de compresser une chaine donnée dans la compression choisie.
J'ai ensuite fait trois classes BzCompression, GzCompression et LzfCompression, pour montrer comment cela marche. Elles ne sont absoluments pas poussée (3 méthodes ! :p) mais c'est volontaire, car là n'est pas le but. A vous ensuite d'implémenter vos propres classes de compression.

Alors ? Verdict ? :)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
15 juil. 2008 à 00:44
C'est vrai que travailler à fond sur un truc et etre sur de faire quelque chose d'innovant, et se rendre compte trop tard que nan ... je crois que beaucoup d'entre nous connaissent ca ! :)

... et ouais ... j'aime coder ... :)
DijxDreaM Messages postés 4 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 14 juillet 2008
14 juil. 2008 à 14:39
C'est clair que de toute manière personne ne pourra nous retirer le plaisir de programmer. Quand bien même notre code ne servirais à rien! C'est juste que souvent c'est assez frustrant de developper un belle appli pour finalement se rendre compte, qu'il éxiste déjà mieux et plus rapide loool !
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
14 juil. 2008 à 13:43
Et Firefox ? ils réinvente la roue nan ? parce que il y avait déjà IE ! :p

Nan plus sérieusement, si tu veux implémenter un formulaire d'envoi de mail, tu va pas installer tout le zend fw rien que pour utiliser Zend_Mail :/ Et sinon Pear doit probablement faire déjà cela aussi, ainsi que bien d'autres.

Mais c'est en diversifiant les choses qu'on se rend compte qu'il y a toujours des amélirations possibles ! :p

En plus, qu'est-ce que tu veux incznrze ? ya déjà trop de choses qui existent ! :)

Après je sais, perso je suis plus du genre à réinventer la roue (regarde mes sources), mais comme je viens de le dire, je suis plus du genre à tenter d'améliorer la roue (ou tout du moin d'y ajouter des options intéressantes) que d'essayer d'inventer un truc qu'au final quelqu'un d'autre aura déjà fait :p
DijxDreaM Messages postés 4 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 14 juillet 2008
14 juil. 2008 à 00:11
et Zend_Mail ? Ca fait un peu: "Je réinvente la roue" nan? lol. Mais en tout cas, j'ai testé et j'approuve xD !
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
13 juil. 2008 à 01:08
Excellent !
J'ai écumé phpcs et d'autres sites web il n'y a pas longtemps, sans trouver de source mail qui me plaise. Je m'étais résolu à me faire ma propre classe quand j'aurais le temps mais là tu m'as sauvé, merci :) J'aurai peut-être des commentaires quand j'aurai pu tester. à+
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
11 juil. 2008 à 09:27
@Winwarrior : j'ai commencé par remplir les champs un par un, puis je les ais supprimés petit à petit à force d'avancer dans le code

@Webdeb : Merci ! :)

@Orion : :p

@Morphinof : C'est pas con l'idée de mettre des liens absolus. Le problème qui se pose maintenant, c'est de bien choisir ce qui sera mis en pièce jointe ou non. Les images, ok, mais les css ? le js ? et les images dans le css ? etc ... :/
Pour l'histoire de l'exception, en effet tu a raison ! :p
cs_OriOn Messages postés 822 Date d'inscription vendredi 25 mai 2001 Statut Modérateur Dernière intervention 1 août 2014
11 juil. 2008 à 09:05
content de ne pas avoir à supprimer une source d'envoi de mail ;-)
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
11 juil. 2008 à 00:41
Bravo c'est du bon code ;)
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
11 juil. 2008 à 00:06
Au temps pour moi, mal lu, c'est vrai que ca fait bizarre d'envoyer un mail en utilisant que les headers (ca m'apprendra a ecrire trop vite..)
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
11 juil. 2008 à 00:02
Salut,

Ligne 242, if (mail ('', '', '', $sHeaders) === false) << il y a pas comme un oubli?
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
10 juil. 2008 à 23:44
En fait tu te casse la tête pour rien :p Si l'utilisateur veut utiliser sa il met un lien absolu et basta ^^ Enfin moi ce que j'en dit :D Sinon si il veut du gz sans activer la librairie alors c'est un excellent exemple d'exception à lever ;) Dans la mesure ou la personne spécifie que la pièce doit être compressée alors il vaut mieux ne pas l'envoyer non compressée ;)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 juil. 2008 à 20:04
Pour ce qui est de la jointure de document liés au document html principal, le probleme c'est comment définir ou se trouve le repertoire qui contient le document en question ? pour src="image.jpg" ou se trouve image.jpg ?

Je peux éventuellement faire une variable sBasePath qui contient le repertoire de base et donc donc mon exemple, l'image serait à $sBasePath.'image.jpg';

Mais dans ce cas est-ce que $sBasePath s'applique aussi aux pièces jointes simples ?

Pour ce qui est de la compression, j'ai remarqué les librairies Zlib, Bz, Lzf et Zip qui peuvent permettre une compression. Maintenant si toutefois le serveur n'a pas la bibliothèque Zlib d'activée et que l'utilisateur veux du gz, est-ce que je lance une exception ou je ne la compresse pas ?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 juil. 2008 à 17:36
"En fait si tu a un email en html avec quelque chose du genre . Cette classe n'ira pas chercher le fichier bannière.jpg, la compresser et faire en sorte que chez le destinataire, l'image s'affiche normalement à l'emplacement voulut dans l'html."
Ce serait bien pourtant lol

Non mais ok, j'avais bien compris. Donc... si je joins une image à un mail, a priori, il doit être possible d'y faire référence dans le mail en HTML...

Pour la compression, yep... Et peut-être même une interface, pour la portabilité et la réutilisation.

Sinon, tu publies ça en GNU/GPL, mais tu précises pas la version... La V3 est plus secure... ;)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 juil. 2008 à 17:26
@Neigedhiver : En fait si tu a un email en html avec quelque chose du genre . Cette classe n'ira pas chercher le fichier bannière.jpg, la compresser et faire en sorte que chez le destinataire, l'image s'affiche normalement à l'emplacement voulut dans l'html.
J'explique mieux la ? :p

Sinon biensur tu peux ajouter des pièces jointes sans soucis ! :)

Pour le fichier distant en pièce jointe, c'est possible si la configuration de php le permet (vu que je passe par is_readable et file_get_contents)

Pour la compression je peux utiliser Zip et ZLib, mais du coup il faudrait faire un truc de ce genre (à mon avis) :

class abstract Compression {}
class Zlib extends Compression {}
class Zip extends Compression {}

Puis rajouter une option 'Compress' dans la signature de la méthode addAttachment qui contient soit Zip (pour une compression zip), soit Zlib (pour une compression Zlib), soit rien pour aucune compression.

Ca peux etre possible en effet :)
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 juil. 2008 à 17:16
"Je ne l'ai pas précisé mais cette classe ne permet pas d'envoyer des documents avec des pièces jointes attachée au document"

Pas sûr d'avoir compris... Heureusement que la parenthèse qui suit m'éclaire...
Mais rassure moi... cette classe permet bien d'envoyer des pièces jointes, hein ?
Donc on peut attacher des images auxquelles ont fait référence dans le mail HTML non ?

Pour ce qui est de la compression, je pense que ça peut être bien, aussi...
La décision de compresser est à la discrétion de l'expéditeur... Si je veux envoyer plusieurs pièces jointes et que je veux les zipper, parce que c'est ce que j'ai convenu par téléphone avec le destinataire, ça peut être sympa.
Si en plus on peut mettre en pièce jointe un fichier distant, c'est encore plus super (c'est pas forcément intéressant pour un mailer comme Thunderbird, Outlook, etc, mais pour un mailer en ligne, ça permet d'envoyer des fichiers sans avoir besoin de les télécharger, les enregistrer, les ajouter...)
C'est pas que ces fonctionnalités sont indispensables, hein... Juste que de pouvoir le faire en cochant une simple case à cocher (au niveau du contrôleur), ça fait toujours plaisir...
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
10 juil. 2008 à 17:12
@Neigedhiver : "Ça pourrait être, à mon avis, une référence en matière de source d'email.", c'est clair je suis tout à fait d'accord ^^
Elle est tellement légère que c'est pour sa que me demandait si le coup d'ajouter la compression c'était pas l'alourdir pour rien.
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
10 juil. 2008 à 17:09
D'où l'idée de le mettre en option lors de l'ajout d'une pièce jointe car effectivement il faudra décompresser lors de la réception mais après si c'est des mails automatiques d'archivage par exemple c'est intéressant non? ^^
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 juil. 2008 à 17:08
Ca existe déjà, c'est du revu... Ben oui, mais la question à se poser est "Est-ce que ça existe en aussi complet ?".
Des sources d'email, sur phpCS, j'en ai vu quelques unes (toi aussi je pense). Et là, je trouve qu'on atteint une sorte de sommet. On peut sûrement rajouter des trucs, mais sincèrement... Quand j'ai lu ça :

_ simple (un texte)
_ alternative (différentes versions d'un texte (plain et html généralement))
_ mixed simple (un texte et n pièces jointes (avec n > 0))
_ mixed alternative (différentes versions d'un texte avec n pièces jointes)

Associé à l'auteur, j'ai tout de suite compris que c'était de l'inédit sur phpcs... Ca pourrait être, à mon avis, une référence en matière de source d'email.
Et j'en profite pour noter, parce que quand même...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 juil. 2008 à 17:03
Merci :)
Je ne l'ai pas précisé mais cette classe ne permet pas d'envoyer des documents avec des pièces jointes attachée au document (des images du document html par exemple).

Pour la compression c'est pas une mauvaise idée mais comment tu fait ? parce que si je les compresses en zip/tgz/bgz, le client devra forcément les décompresser, ce qui n'est pas forcément dans l'envie de l'émetteur de compresser les documents ?
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
10 juil. 2008 à 16:47
Bah rien à dire !
C'est tout simple à utiliser, c'est propre, c'est fonctionnel... Que du bon quoi :D
Sa mérite une bonne note sa ;)
A la limite tu peu même t'amuser à intégrer un système de compression en option pour les pièces jointes, c'est la cerise sur le gâteau, à voir si sa l'alourdirai trop ou non ^^
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 juil. 2008 à 13:31
Et bien ! Personnnellement je craignais plus un "Ca existe déjà", "c'est du revu".
Ton commentaire fait plaisir :)

En fait je l'ai codé hier pour les besoins de la boite dans laquelle je suis et d'apres les premiers tests effectués, ca à l'air de fonctionner ! :)
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 juil. 2008 à 13:00
Plop !

Dis donc... Ca a l'air plutôt pas mal tout ça !
Forcément, c'est propre, joli à regarder, lisible et compréhensible... Forcément, c'est facile à réutiliser, etc...
Euh je suis pas sûr d'avoir des critiques négatives à faire...
Je vais pas pouvoir tester, donc pour le débogage et un éventuel retour pour des améliorations possibles, je ne suis pas en mesure d'apporter ça...

En tout cas, c'est très très complet, et ça change des sources d'envoi de mails qu'on trouve habituellement. Chapeau donc pour cette exhaustivité !
Rejoignez-nous