mickbad
Messages postés71Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention20 avril 2008
-
26 mai 2007 à 23:37
yassine_910
Messages postés1Date d'inscriptiondimanche 8 juillet 2007StatutMembreDernière intervention27 mars 2010
-
27 mars 2010 à 20:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
yassine_910
Messages postés1Date d'inscriptiondimanche 8 juillet 2007StatutMembreDernière intervention27 mars 2010 27 mars 2010 à 20:43
slt ,je veux savoir avec quel serveur tu as travaille??
calfou
Messages postés24Date d'inscriptiondimanche 16 février 2003StatutMembreDernière intervention18 mars 2010 18 févr. 2010 à 18:28
Merci pour cette class qui fonctionne super bien et est très facile à intégrer!!
En revanche comme le dit Masternico, il aurait été bon d'ajouter la modif qu'il cite afin de ne pas avoir cette erreur.
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 5 juin 2009 à 19:03
Bon, a-y-est... j'ai fini par débusquer mon bug... qui en fait était lié à un post précédent de neoced75.
Le problème, c'est que je n'avait pas d'affichage d'erreur et que la variable errorlog était toujours vide (en passant par geterrorlog())
Donc en fait la soluce avait été donnée par tomguide:
Seulement, $file[1] et $file[2] n'étant pas toujours renseigné faites une petite verif avant, par exemple, remplacez le code ci-dessus par le suivant :
Il serait bien que la modif soit intégrée à la source car j'y ai passé du temps... pour rien puisque la soluce était déja donnée
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 5 juin 2009 à 16:36
Salut,
mon soucis est que la variable $this->message se perd en cour de route.
Quand je fait un echo $this->message; à la fin de la proc Defmessage($mess), j'ai bien mon message, mais la variable se retrouve vide lorsque j'arrive dans constructbody()... je pige pas très bien pourquoi...
Si quelqu'un avait une piste pour m'aider
Merci
jdeheyn
Messages postés23Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention14 janvier 2010 21 août 2008 à 10:10
Salut!
J'ai la même erreur que TOINE64 : "Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/160/sda/3/4/avolpoet/classes/Mail.class.php on line 5"
Cela peut-il venir du fait que ce script doit être exécuté sous PHP5, et non PHP4 ?
ptitdragonvert
Messages postés26Date d'inscriptiondimanche 15 avril 2007StatutMembreDernière intervention 7 novembre 2009 17 févr. 2008 à 11:11
Bien codé !
Mais $this->destinataire incorect !
Au debut j'avais tout le temps :
Warning: mail() [function.mail]: SMTP server response: 501 Bad address syntax in C:\wamp\www\Mail\mail\Mail.class.php on line 380
et en faisant des test la variable $this->destinataire en faisant :
print_r($this->destinataire);
il me resortait :
Array ( [0] => Moi )
Donc marche très mal !
A+
netphotos
Messages postés1Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention14 février 2008 14 févr. 2008 à 19:42
Salut je trouve dommage que quand on met par exemple
en img dans le $mail->defMessage
ca ne marche pas sur gmail par exemple
idem avec d'autre systeme
comment faire car j'ai vraiment d'utiliser votre classe que je trouve tres bien faite
tonguide
Messages postés2Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 janvier 2008 20 janv. 2008 à 00:41
Seulement, $file[1] et $file[2] n'étant pas toujours renseigné faites une petite verif avant, par exemple, remplacez le code ci-dessus par le suivant :
tonguide
Messages postés2Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 janvier 2008 19 janv. 2008 à 23:16
Juste une petite erreur de logique qui n'a pas énormement d'importance sur le fonctionnement mais je signale quand même.
sur la méthode 'envoi'
Il y a une succession de if / elseif / elseif etc ...
chacune d'elle vérifie et retourne une erreur dans la variable $erreur (si il y a une erreur evidemment).
Ensuite, on fait un "else {}" et on vérifie que la variable d'erreur est vide puis on execute.
Hors, elle est forcement vide à ce niveau là, vu qu'on a fais des "elseif" et non des "if"
Donc il suffirai juste de remplacer elseif par if (permettant de récupérer la totalité des erreurs en une fois) puis de retirer le 'else' tout en laissant le if(empty($erreur)) (qui aurait alors un intérêt).
Voila ;)
if(empty($this->destinataire))
$erreur .= 'Erreur, vous devez definir au moins un destinataire!';
if(empty($this->expediteur))
$erreur .= 'Erreur, vous devez definir un expediteur!';
if(empty($this->sujet))
$erreur .= 'Erreur, vous devez definir un sujet!';
if(empty($this->message))
$erreur .= 'Erreur, vous devez definir un message!';
if(!$this->htmlattachement())
$erreur .= 'Erreur lors de l\'attachement des fichiers present dans le message html!';
if(empty($erreur)) {
etc...
neoced75
Messages postés1Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention25 novembre 2007 25 nov. 2007 à 11:27
Bonjour,
Je pensais oublier qqchose, mais je viens de tester avec les options obligatoires et j'obtiens toujours un "Warning: preg_replace() [function.preg-replace]: Empty regular expression ... on line 148"
J'ai utilisé les arguments obligatoires pour faire ce test:
$mail = new Mail();
$mail->addDestinataire('nom mail@domaine.fr');
$mail->defSujet('Bonjour ceci est le sujet');
$mail->defMessage('Bonjour, ceci est un test de ma classe mail :D');
$mail->defExpediteur('nom mail@domaine.fr');
//Par defaut envoi en texte
$mail->envoi();
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 28 sept. 2007 à 18:27
Hello, jolie source,
juste : j'ai une alerte Undefined variable: dest in C:\Program Files\EasyPHP\www\mail.class.php on line 208.
Je n'ai pas trop regardé, mais il me semble que tu as fait l'erreur à d'autres endroits aussi.
Merci
masseur
Messages postés64Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention24 avril 2010 18 juil. 2007 à 11:56
Dans un repertoire j'ai ma classe et un fichier index.php qui contient ceci.
$mail = new Mail();
$mail->addDestinataire('ddd@dddd.fr');
$mail->defSujet('Bonjour ceci est le sujet');
$mail->defMessage('Bonjour, ceci est un test de ma classe mail :D');
$mail->defExpediteur('ddd@dddd.fr');
$mail->addAttach('fichier.csv');
$mail->envoi('html');
Je recois bien le mail mais j'ai pas de pièce jointe comment cela se fait il?
Cordialement.
Jérôme
cs_toine62
Messages postés1Date d'inscriptionjeudi 15 juin 2006StatutMembreDernière intervention 5 juillet 2007 5 juil. 2007 à 15:05
bonjour,
j'ai utilisé ta classe sans rien modifier et j'ai le message suivant quand je l'appelle:
"Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/160/sda/3/4/avolpoet/classes/Mail.class.php on line 5"
Shadow_Membre
Messages postés4Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention20 novembre 2007 14 juin 2007 à 02:57
très bon classe. bonne continuation.
je met 10 (tu la merite).
A+
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 11 juin 2007 à 21:21
je n'exige rien de tout d'ailleur j'aurrais bien vulu comprendre mieux la commande pour attacher un fichier car malgrée mes efforts beh j'y arrive pas trop .. d'ailleur si on parle de beug .. essay d'envoyer dans le format HTML un code qui est egual a un implode et remplace {vars} tu vera l'espace qu'il peux y avoir (et non pas sur un mais sur plusieurs hosting) depuis le haud de body jusqu'au commencement de <table> bref .. le but de code est bien attent je ne dis pas le contraire mais j'ai demandé just de l'aide au sujet de l'attachement des fichiers
Bref.. J'utilitilise quand meme et je leve le chapeau devant ton travail car pour moi qu'est une enorme economie de temps..
Cordialement...
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 11 juin 2007 à 15:44
mdr!!!!! Depuis quand on exige des codes?
Le but de ma classe est atteint je ne modifierai rien de plus...
A moins qu'un gros bug soit remarqué, mais je ne plierai pas aux exigences de monsieur.
A bonne entendeur salut!
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 9 juin 2007 à 22:41
j'ai remis tout a ca place enfin come c'etait d'origine et tjr parreil ..
Alors je te demande stp de m'ecrire un mod d'utilisation un peux plus complet pour les pieces jointes car ex: mon fichier se trouve dans le dossier "themes/default/background.gif" et je ne peux pas l'attacher alors que je ne veux/peux pas utiliser le corp email avec des liens de gen http://www.site.com/themes/default/background.gif donc je reformule
Ecris moi stp un code de commande complet pour envoyer un email en html ou je peux personnalisé le fond d'ecran des tableaux avec des images egalement un style css pour le text et div
Merçi infiniment si non le code est tres bien sauf biensur mon niveau debutant car j'avoue que je ne comprend pas tout
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 7 juin 2007 à 18:57
Si tu a modifier les entetes je ne peut pas t'aider!
Il n'y a rien a modifier... Les entetes sont complets!
Et si tu n'as rien c'est parce que tes entetes ne sont pas bon justement...
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 6 juin 2007 à 02:41
Je l'ai deja fait et rien il me dis bien que l'email a etait envoyé mais rien a fair .. :( j'ai rempli le reste egalement voici la maniere de la quel je l'utile ta class
$mail = new Mail();
$mail->addDestinataire('mon@email.fr');
$mail->defSujet('Sujet email');
$mail->defMessage('Bonjour voiçi un test');
$mail->defExpediteur('admin@email.fr');
$mail->envoi('html');
e voila la fameuse ligne 215 dans mon fichier qui peux bien sur ne pas correspondre si j'ai rajoutées des entêtes ----- $this->message = preg_replace($file[1],$file[2], $this->message); ----
Donc l'email est bien envoyé mais je n'ai pas le contenu de message autrement il est vide come si j'ai rien parametré içi : $mail->defMessage('bla bla bla');
Merçi de m'aider ..
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 5 juin 2007 à 21:33
Pense a afficher le log d'erreur, ca t'aidera...
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 5 juin 2007 à 21:32
@WildGroup:
Warning: preg_replace(): Empty regular expression in /home/www/a28b375468c6548a8bb3e41efd92b082/web/system/include/class.email.php on line 215
Eu ligne 215... Ya pas de preg_replace dans ce coin la c'est bizarre...
Et pour envoyer un mail:
"Tout sauf ce que je mait dans $mail->defMessage('bla bla bla')"
Ca ne suffit pas il faut remplir le reste!
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 4 juin 2007 à 18:24
J'ai une idée:
quand je r'ajout plusieurs destinataires beh par example dest1 sais que j'ai envoyé l'email au dest2 dest3 etc etc etc car dans le header il marque chaque destinataire.
pour eviter de fair un foreach en d'hors de la class y'as t'il anotre moyen de l'integrer a l'interieur? Ca evite egalement la surcharge de serveur je crois
Bonne travail mais avec des p'tits erreurs (2 jusqu'a maintenant)
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 4 juin 2007 à 18:08
J'ai egalement une autre probleme le contenu d'email n'est pas affiché. Tout sauf ce que je mait dans $mail->defMessage('bla bla bla')
Merçi encore
WildGroup
Messages postés15Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 2 novembre 2010 4 juin 2007 à 18:02
Salut,
j'ai un p'tit probleme voici le message d'error
Warning: preg_replace(): Empty regular expression in /home/www/a28b375468c6548a8bb3e41efd92b082/web/system/include/class.email.php on line 215
Merçi de m'indiquer le chemin pour resoudre cette probleme
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 30 mai 2007 à 17:29
@ricky03: "Ben je ferai moi, c'était juste une question afin de tout avoir en un. Est-il possible d'envoyer le mail à plusieurs personnes au même temps? Si oui, comment faire cela?"
Oui tu peut l'envoyer a autant de personnes que tu veut... Il suffit de faire addDestinataire... Soit de la premiere facon, destinataire par destinataire:
$mail->addDestinataire('dest1');
$mail->addDestinataire('dest2');
$mail->addDestinataire('dest3');
Soit la deuxieme:
$mail->addDestinataire('dest1', 'dest2', 'dest3', ...);
Mais bon tout ca est expliqué sous le code...
@softghost:
C'est pourtant une fonction intégré a php :S
Bizarre que tu est cette erreur :S ce que tu peut faire c'est commenter la méthode
protected function htmlattachement()
Par contre tu perd l'ajout de pieces jointes dans le corps du message html...
softghost
Messages postés61Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention13 avril 2010 30 mai 2007 à 16:01
Bonjour cerede2000 bonjour tous le monde
je suis entreint de travailler sur une application de mass mailing et je pense que ton code sera utile pour moi au moin pour gagné un peux de temps :)
mais le probleme que j'arrive pas a le testé et je comprend pas d'ou vien cette fonction
### function mime_content_type() ###
le Destinataire(s),Sujet,Message,peice jointe marche bien
mais pas d'envoi
le message d'ereur
Fatal error: Call to undefined function mime_content_type() in Mail.class.php on line 150
merci mille fois
ricky03
Messages postés3Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention25 juin 2007 30 mai 2007 à 12:19
Ben je ferai moi, c'était juste une question afin de tout avoir en un. Est-il possible d'envoyer le mail à plusieurs personnes au même temps? Si oui, comment faire cela?
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 29 mai 2007 à 16:31
"Bon alors on frise la perfection :D" => :p
(oui je sais c'était inutile ce commentaire :p)
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 29 mai 2007 à 15:22
@ricky03:
Non je ne ferais pas ca tout simplement parce que si tu veut l'intégrer toi dans ton message c'est simple a faire. Et que tout le monde n'as pas envie d'avoir ca dans son message ;)
@codefalse:
Ok, lol alors c'est bon, enfin la maintenant mon code prendra automatiquement tout ce qui contient un attribut src et l'intégrera dans le mail ;)
Bon alors on frise la perfection :D
ricky03
Messages postés3Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention25 juin 2007 29 mai 2007 à 12:47
Hello,
vraiment pas mal cette classe. Serait-il possible d'intégrer au message pour le destinataire, l'adresse IP, la FAI ,
Serveur (Hôte)... Enfin ce qui serait utile en cas de spam.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 29 mai 2007 à 10:56
"Hum oui, mais je comprend pas l'interet d'inserer une piece jointe dans l'html a part les images..." => uh ? je parlais des images justement ?! j'ai pas tout compris la :p
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 29 mai 2007 à 01:53
Voila, ajout automatique des pieces jointes html possedant un attribut src ;)
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 28 mai 2007 à 20:27
Hum oui, mais je comprend pas l'interet d'inserer une piece jointe dans l'html a part les images...
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 28 mai 2007 à 18:16
Bon ! pour l'exemple ca commence mal, j'avais une liste de fichier type mais j'ai du tout supprimer.
Il m'en reste quelqu'uns mais aucun pour les images.
Alors voila ce que j'ai :
Une image doit etre de ce type :
avec 001f01c55711$86f4d520$5aa0e852@t777 un truc OBLIGATOIREMENT unique (alors tu fait un truc genre md5(uniqid(time())))
et dans tes pieces jointes, tu dois les mettres comme ceci :
Conten-type : le type;
name="le_nom.ext"
Content-Transfer-Encoding: base64
Content-ID: <001f01c55711$86f4d520$5aa0e852@t777>
C'est la que tu retrouve ton ID, entre crochets!
Fait attention au type, il DOIT etre multipart, et apres je sais plus, c'est deja pas alternative de sur, mais j'hésite entre mixed, parallel ou digest.
Cherche un mail ou tu a des images incluses dedans, et fait un imap_body tu saura vite fait ! :)
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 28 mai 2007 à 12:52
Ce qui est vu c'est pour la gestion des erreurs et le sendmail_path ;)
Sinon oui j'attends ton exemple :D
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 28 mai 2007 à 12:16
@ kiki9741 : si mes souvenirs sont bons, le sendmail_path, c'est l'adresse de l'application sendmail, mais uniquement sous un systeme unix. Toi c'est un truc avec smtp_kkchose de mémoire.
@ Cerede2000 : De quoi qui est vu ? T'a trouvé ? ou tu veux quand meme un exemple ?
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 28 mai 2007 à 10:48
Et voila c'est vu ;)
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 28 mai 2007 à 10:38
Hum oui je vais voir ca ;)
cs_wizad
Messages postés355Date d'inscriptionsamedi 30 octobre 2004StatutMembreDernière intervention14 avril 2009 28 mai 2007 à 10:21
C'est pas mal et bien codé. Un seul point me chagrine, le fait que certaines méthodes affiche d'elle même des éléments sur la sortie standart (echo). Il serait beaucoup plus interréssant et portable de retourner par exemple un booléen pour la réussite et en éventuel message d'erreur (par référence par exemple). Ainsi ta classe serait complètement intégrable dans n'importe quel site.
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 28 mai 2007 à 09:05
En effet il existe ce 5ieme parametre je vais le rajouter c'est simple ca. Je ne l'ai pas mit par choix deja parce que tu ne sait meme pas a quoi il sert mais tu le demande...
Et qu'en plus il est souvent désactivé...
kiki9741
Messages postés9Date d'inscriptionlundi 10 juillet 2006StatutMembreDernière intervention 4 juillet 2007 28 mai 2007 à 06:25
Euh... très pratique, il manque des toutes petites choses (déjà cité...) , vraiment bien !
Si je peux posé une question :
la fonction mail peux avoir un cinquième paramètre que tu n'a pas prix en compte, dans la doc de php :
Exemple 3. Envoi d'un mail avec un paramètre de ligne de commande additionnel.
Le paramètre additional_parameters peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.
Quelqu'un peut-il nous faire profité de sa science pour nous expliquer plus en détail (avec d'autres mots peut-être ^^) ce qu'est ce cinquième paramètre
N.B. : pour ma part je bloque un peux sur le "(...) pour envoyer les mails en utilisant sendmail_path (...)", c'est quoi le sendmail_path ? oO
Merci pour tous et toutes ^_^
8/10
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 27 mai 2007 à 18:23
Cool merci :) J'attent ca avec impatience ;)
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 27 mai 2007 à 17:31
J'essaye de te filer ca pour demain ou au pire dans la semaine, car là j'ai rien sur moi ...
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 27 mai 2007 à 16:59
Tu aurais pas un exemple...
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 27 mai 2007 à 16:35
non, tu doit faire attention, ya une syntaxe particuliere, c'est du genre cid:UNIQID (ou UNIQID est un nombre unique) qui pointe dans les pieces jointes sur l'id de la piece en question.
C'est assez tendu a gerer tout ca je te l'accorde :p
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 27 mai 2007 à 15:36
Enfin, quoi que je ne sait pas, car pour mettre une image on a juste a mettre une balise dans le mail et a joindre le fichier...
Donc en faite...
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 27 mai 2007 à 15:11
Oui ca j'y pense a mettre les pieces dans le mail en html ;)
C'est pour la prochaine version :D
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 27 mai 2007 à 15:02
Si tu veux pousser plus loin le code, il faut que tu envisage les mails html avec des fichiers externes (images par ex) inclues dans le mail, qui se charge automatiquement avec le mail. Tu a trois sous types principaux pour le multipart : alternative, mixed, relative
(http://en.wikipedia.org/wiki/MIME)
Le protocol Imap est tres compliqué à mettre en oeuvre quand on veux pousser à fond le travail.
Mais ta source est quand meme tres bien ! :)
9/10 :)
cerede2000
Messages postés71Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention 6 septembre 2013 26 mai 2007 à 23:42
Pour ca:
Cette partie :
# $entete .= "X-Mailer: PHP\n";
# $entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
# $entete .= "X-abuse-contact: abuse@votresite.com \n";
Oui, mais bon j'ai mit ca pour que mon entete soit le plus complet possible mais je doute de l'interet réel ;) A voir...
Merci pour ton commentaire :D
mickbad
Messages postés71Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention20 avril 2008 26 mai 2007 à 23:37
pas mal et bien codé à part le manque de commentaire (pour pinailler un peu).
A propos de pinaillage, tu pourrais aller plus loin dans la configuration de ta classe.
Cette partie :
# $entete .= "X-Mailer: PHP\n";
# $entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
# $entete .= "X-abuse-contact: abuse@votresite.com \n";
.. peut faire l'objet de création de constante (define) en en-tête de ton fichier, afin d'éviter d'aller chercher partout dans le code où ces informations se trouvent (et aussi savoir qu'elles existent ;) )
27 mars 2010 à 20:43
18 févr. 2010 à 18:28
En revanche comme le dit Masternico, il aurait été bon d'ajouter la modif qu'il cite afin de ne pas avoir cette erreur.
5 juin 2009 à 19:03
Le problème, c'est que je n'avait pas d'affichage d'erreur et que la variable errorlog était toujours vide (en passant par geterrorlog())
Donc en fait la soluce avait été donnée par tomguide:
<<
à la ligne 148 (sur le visuel du code)
Vous avez "$this->message = preg_replace($file[1],$file[2], $this->message);"
Seulement, $file[1] et $file[2] n'étant pas toujours renseigné faites une petite verif avant, par exemple, remplacez le code ci-dessus par le suivant :
if(!empty($file[1]) && !empty($file[2])) {
$this->message = preg_replace($file[1],$file[2], $this->message);
}
ça vous évitera d'avoir une petite erreur.
>>
Il serait bien que la modif soit intégrée à la source car j'y ai passé du temps... pour rien puisque la soluce était déja donnée
5 juin 2009 à 16:36
mon soucis est que la variable $this->message se perd en cour de route.
Quand je fait un echo $this->message; à la fin de la proc Defmessage($mess), j'ai bien mon message, mais la variable se retrouve vide lorsque j'arrive dans constructbody()... je pige pas très bien pourquoi...
Si quelqu'un avait une piste pour m'aider
Merci
21 août 2008 à 10:10
J'ai la même erreur que TOINE64 : "Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/160/sda/3/4/avolpoet/classes/Mail.class.php on line 5"
Cela peut-il venir du fait que ce script doit être exécuté sous PHP5, et non PHP4 ?
17 févr. 2008 à 11:11
Mais $this->destinataire incorect !
Au debut j'avais tout le temps :
Warning: mail() [function.mail]: SMTP server response: 501 Bad address syntax in C:\wamp\www\Mail\mail\Mail.class.php on line 380
et en faisant des test la variable $this->destinataire en faisant :
print_r($this->destinataire);
il me resortait :
Array ( [0] => Moi )
Donc marche très mal !
A+
14 févr. 2008 à 19:42
en img dans le $mail->defMessage
ca ne marche pas sur gmail par exemple
idem avec d'autre systeme
comment faire car j'ai vraiment d'utiliser votre classe que je trouve tres bien faite
20 janv. 2008 à 00:41
à la ligne 148 (sur le visuel du code)
Vous avez "$this->message = preg_replace($file[1],$file[2], $this->message);"
Seulement, $file[1] et $file[2] n'étant pas toujours renseigné faites une petite verif avant, par exemple, remplacez le code ci-dessus par le suivant :
if(!empty($file[1]) && !empty($file[2])) {
$this->message = preg_replace($file[1],$file[2], $this->message);
}
ça vous évitera d'avoir une petite erreur.
19 janv. 2008 à 23:16
sur la méthode 'envoi'
Il y a une succession de if / elseif / elseif etc ...
chacune d'elle vérifie et retourne une erreur dans la variable $erreur (si il y a une erreur evidemment).
Ensuite, on fait un "else {}" et on vérifie que la variable d'erreur est vide puis on execute.
Hors, elle est forcement vide à ce niveau là, vu qu'on a fais des "elseif" et non des "if"
Donc il suffirai juste de remplacer elseif par if (permettant de récupérer la totalité des erreurs en une fois) puis de retirer le 'else' tout en laissant le if(empty($erreur)) (qui aurait alors un intérêt).
Voila ;)
if(empty($this->destinataire))
$erreur .= 'Erreur, vous devez definir au moins un destinataire!';
if(empty($this->expediteur))
$erreur .= 'Erreur, vous devez definir un expediteur!';
if(empty($this->sujet))
$erreur .= 'Erreur, vous devez definir un sujet!';
if(empty($this->message))
$erreur .= 'Erreur, vous devez definir un message!';
if(!$this->htmlattachement())
$erreur .= 'Erreur lors de l\'attachement des fichiers present dans le message html!';
if(empty($erreur)) {
etc...
25 nov. 2007 à 11:27
Je pensais oublier qqchose, mais je viens de tester avec les options obligatoires et j'obtiens toujours un "Warning: preg_replace() [function.preg-replace]: Empty regular expression ... on line 148"
J'ai utilisé les arguments obligatoires pour faire ce test:
$mail = new Mail();
$mail->addDestinataire('nom mail@domaine.fr');
$mail->defSujet('Bonjour ceci est le sujet');
$mail->defMessage('Bonjour, ceci est un test de ma classe mail :D');
$mail->defExpediteur('nom mail@domaine.fr');
//Par defaut envoi en texte
$mail->envoi();
28 sept. 2007 à 18:27
juste : j'ai une alerte Undefined variable: dest in C:\Program Files\EasyPHP\www\mail.class.php on line 208.
Je n'ai pas trop regardé, mais il me semble que tu as fait l'erreur à d'autres endroits aussi.
Merci
18 juil. 2007 à 11:56
$mail = new Mail();
$mail->addDestinataire('ddd@dddd.fr');
$mail->defSujet('Bonjour ceci est le sujet');
$mail->defMessage('Bonjour, ceci est un test de ma classe mail :D');
$mail->defExpediteur('ddd@dddd.fr');
$mail->addAttach('fichier.csv');
$mail->envoi('html');
Je recois bien le mail mais j'ai pas de pièce jointe comment cela se fait il?
Cordialement.
Jérôme
5 juil. 2007 à 15:05
j'ai utilisé ta classe sans rien modifier et j'ai le message suivant quand je l'appelle:
"Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/160/sda/3/4/avolpoet/classes/Mail.class.php on line 5"
14 juin 2007 à 02:57
je met 10 (tu la merite).
A+
11 juin 2007 à 21:21
Bref.. J'utilitilise quand meme et je leve le chapeau devant ton travail car pour moi qu'est une enorme economie de temps..
Cordialement...
11 juin 2007 à 15:44
Le but de ma classe est atteint je ne modifierai rien de plus...
A moins qu'un gros bug soit remarqué, mais je ne plierai pas aux exigences de monsieur.
A bonne entendeur salut!
9 juin 2007 à 22:41
Alors je te demande stp de m'ecrire un mod d'utilisation un peux plus complet pour les pieces jointes car ex: mon fichier se trouve dans le dossier "themes/default/background.gif" et je ne peux pas l'attacher alors que je ne veux/peux pas utiliser le corp email avec des liens de gen http://www.site.com/themes/default/background.gif donc je reformule
Ecris moi stp un code de commande complet pour envoyer un email en html ou je peux personnalisé le fond d'ecran des tableaux avec des images egalement un style css pour le text et div
Merçi infiniment si non le code est tres bien sauf biensur mon niveau debutant car j'avoue que je ne comprend pas tout
7 juin 2007 à 18:57
Il n'y a rien a modifier... Les entetes sont complets!
Et si tu n'as rien c'est parce que tes entetes ne sont pas bon justement...
6 juin 2007 à 02:41
$mail = new Mail();
$mail->addDestinataire('mon@email.fr');
$mail->defSujet('Sujet email');
$mail->defMessage('Bonjour voiçi un test');
$mail->defExpediteur('admin@email.fr');
$mail->envoi('html');
e voila la fameuse ligne 215 dans mon fichier qui peux bien sur ne pas correspondre si j'ai rajoutées des entêtes ----- $this->message = preg_replace($file[1],$file[2], $this->message); ----
Donc l'email est bien envoyé mais je n'ai pas le contenu de message autrement il est vide come si j'ai rien parametré içi : $mail->defMessage('bla bla bla');
Merçi de m'aider ..
5 juin 2007 à 21:33
5 juin 2007 à 21:32
Warning: preg_replace(): Empty regular expression in /home/www/a28b375468c6548a8bb3e41efd92b082/web/system/include/class.email.php on line 215
Eu ligne 215... Ya pas de preg_replace dans ce coin la c'est bizarre...
Et pour envoyer un mail:
"Tout sauf ce que je mait dans $mail->defMessage('bla bla bla')"
Ca ne suffit pas il faut remplir le reste!
4 juin 2007 à 18:24
quand je r'ajout plusieurs destinataires beh par example dest1 sais que j'ai envoyé l'email au dest2 dest3 etc etc etc car dans le header il marque chaque destinataire.
pour eviter de fair un foreach en d'hors de la class y'as t'il anotre moyen de l'integrer a l'interieur? Ca evite egalement la surcharge de serveur je crois
Bonne travail mais avec des p'tits erreurs (2 jusqu'a maintenant)
4 juin 2007 à 18:08
Merçi encore
4 juin 2007 à 18:02
j'ai un p'tit probleme voici le message d'error
Warning: preg_replace(): Empty regular expression in /home/www/a28b375468c6548a8bb3e41efd92b082/web/system/include/class.email.php on line 215
Merçi de m'indiquer le chemin pour resoudre cette probleme
30 mai 2007 à 17:29
Oui tu peut l'envoyer a autant de personnes que tu veut... Il suffit de faire addDestinataire... Soit de la premiere facon, destinataire par destinataire:
$mail->addDestinataire('dest1');
$mail->addDestinataire('dest2');
$mail->addDestinataire('dest3');
Soit la deuxieme:
$mail->addDestinataire('dest1', 'dest2', 'dest3', ...);
Mais bon tout ca est expliqué sous le code...
@softghost:
C'est pourtant une fonction intégré a php :S
Bizarre que tu est cette erreur :S ce que tu peut faire c'est commenter la méthode
protected function htmlattachement()
Par contre tu perd l'ajout de pieces jointes dans le corps du message html...
30 mai 2007 à 16:01
je suis entreint de travailler sur une application de mass mailing et je pense que ton code sera utile pour moi au moin pour gagné un peux de temps :)
mais le probleme que j'arrive pas a le testé et je comprend pas d'ou vien cette fonction
### function mime_content_type() ###
le Destinataire(s),Sujet,Message,peice jointe marche bien
mais pas d'envoi
le message d'ereur
Fatal error: Call to undefined function mime_content_type() in Mail.class.php on line 150
merci mille fois
30 mai 2007 à 12:19
29 mai 2007 à 16:31
(oui je sais c'était inutile ce commentaire :p)
29 mai 2007 à 15:22
Non je ne ferais pas ca tout simplement parce que si tu veut l'intégrer toi dans ton message c'est simple a faire. Et que tout le monde n'as pas envie d'avoir ca dans son message ;)
@codefalse:
Ok, lol alors c'est bon, enfin la maintenant mon code prendra automatiquement tout ce qui contient un attribut src et l'intégrera dans le mail ;)
Bon alors on frise la perfection :D
29 mai 2007 à 12:47
vraiment pas mal cette classe. Serait-il possible d'intégrer au message pour le destinataire, l'adresse IP, la FAI ,
Serveur (Hôte)... Enfin ce qui serait utile en cas de spam.
29 mai 2007 à 10:56
29 mai 2007 à 01:53
28 mai 2007 à 20:27
28 mai 2007 à 18:16
Il m'en reste quelqu'uns mais aucun pour les images.
Alors voila ce que j'ai :
Une image doit etre de ce type :
avec 001f01c55711$86f4d520$5aa0e852@t777 un truc OBLIGATOIREMENT unique (alors tu fait un truc genre md5(uniqid(time())))
et dans tes pieces jointes, tu dois les mettres comme ceci :
Conten-type : le type;
name="le_nom.ext"
Content-Transfer-Encoding: base64
Content-ID: <001f01c55711$86f4d520$5aa0e852@t777>
C'est la que tu retrouve ton ID, entre crochets!
Fait attention au type, il DOIT etre multipart, et apres je sais plus, c'est deja pas alternative de sur, mais j'hésite entre mixed, parallel ou digest.
Cherche un mail ou tu a des images incluses dedans, et fait un imap_body tu saura vite fait ! :)
Voili voilou !
Pour info :
http://www.phpcs.com/codes/ENVOI-MAIL-FORMAT-HTML-AVEC-POSSIBLITE-UTILISER-FICHIERS_33432.aspx
http://www.mathguide.de/info/tools/media-types/media-types
28 mai 2007 à 12:52
Sinon oui j'attends ton exemple :D
28 mai 2007 à 12:16
@ Cerede2000 : De quoi qui est vu ? T'a trouvé ? ou tu veux quand meme un exemple ?
28 mai 2007 à 10:48
28 mai 2007 à 10:38
28 mai 2007 à 10:21
28 mai 2007 à 09:05
Et qu'en plus il est souvent désactivé...
28 mai 2007 à 06:25
Si je peux posé une question :
la fonction mail peux avoir un cinquième paramètre que tu n'a pas prix en compte, dans la doc de php :
Exemple 3. Envoi d'un mail avec un paramètre de ligne de commande additionnel.
Le paramètre additional_parameters peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.
<?php
mail('personne@example.com', 'le sujet', 'le message', null,
'-fwebmaster@example.com');
?>
Quelqu'un peut-il nous faire profité de sa science pour nous expliquer plus en détail (avec d'autres mots peut-être ^^) ce qu'est ce cinquième paramètre
N.B. : pour ma part je bloque un peux sur le "(...) pour envoyer les mails en utilisant sendmail_path (...)", c'est quoi le sendmail_path ? oO
Merci pour tous et toutes ^_^
8/10
27 mai 2007 à 18:23
27 mai 2007 à 17:31
27 mai 2007 à 16:59
27 mai 2007 à 16:35
C'est assez tendu a gerer tout ca je te l'accorde :p
27 mai 2007 à 15:36
Donc en faite...
27 mai 2007 à 15:11
C'est pour la prochaine version :D
27 mai 2007 à 15:02
(http://en.wikipedia.org/wiki/MIME)
Le protocol Imap est tres compliqué à mettre en oeuvre quand on veux pousser à fond le travail.
Mais ta source est quand meme tres bien ! :)
9/10 :)
26 mai 2007 à 23:42
Cette partie :
# $entete .= "X-Mailer: PHP\n";
# $entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
# $entete .= "X-abuse-contact: abuse@votresite.com \n";
Oui, mais bon j'ai mit ca pour que mon entete soit le plus complet possible mais je doute de l'interet réel ;) A voir...
Merci pour ton commentaire :D
26 mai 2007 à 23:37
A propos de pinaillage, tu pourrais aller plus loin dans la configuration de ta classe.
Cette partie :
# $entete .= "X-Mailer: PHP\n";
# $entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
# $entete .= "X-abuse-contact: abuse@votresite.com \n";
.. peut faire l'objet de création de constante (define) en en-tête de ton fichier, afin d'éviter d'aller chercher partout dans le code où ces informations se trouvent (et aussi savoir qu'elles existent ;) )
Ce n'est qu'un exemple c'est tout.
Good work Jim !
.Mick.