|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
bonjours,
Je veux envoyé des mails soit en html soit en text donc j'ai regardé le multipart. actuellement j'utilise la fonction tep_mail Code :
Code :
Merci d'avance |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Tu peux poster le code de ta classe (sois gentil et mets nous seulement les prototypes des méthodes, l'implémentation ne nous intéresse pas plus que ça) ? A quel niveau se situe ton problème ? Est-ce ta classe ou essayes-tu d'utiliser une classe sans avoir le background nécessaire en OOP ? Sinon, si tu es en PHP 5.1, tu peux utiliser cette classe.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Merci de ta réponse,
enfaite mon problème est que je sais pas comment faire pour activer le multipart est-ce au moment de l'appel de ma fonction si il me manque un paramètre normalement sa doit marché mais je sais pas comment le lancé car c'est un code récupéré et j'arrive pas très bien à comprendre voici l'appel de ma fonction Code :
tep_mail($relances["customers_prenom"], $relances["customers_email"], $sujet, $content, 'test', 'test@yopmail.com'); |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
je relance un peu car là je suis bloqué
et je sais pas par ou allé si quelqu'un à une direction pour moi sa serait cool |
|
|
00
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Ma class commence comme sa:
Code :
il faut dire que les class et moi sa fait deux et j'ai pas trop compris comment sa marche il faut que je mis plonge bien comme il faut. |
||
|
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Mais si t'as besoin de tous dis moi mais je veux pas te noyé dans mon code
Code :
|
||
|
|
00
|
|
|
#8 | ||||||||||||||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Bon, je vais pas me lancer dans un cours théorique sur le paradigme objet, il y a de très bons articles sur la question. Mais je vais cependant tenter de l'expliquer rapidement.
En programmation orientée object (Oriented Object Programming en Anglais ou OOP), les classes sont des "moules" servant à la fabrication d'un objet (également désigné par le terme "instance"). En somme, un objet est l'instance d'une classe. Une classe est une structure porteuse d'attributs (les données) et de méthodes (les traitements, les fonctions pour parler simplement). Un objet est très pratique en programmation car: - il encapsule les données et les traitements - fournit une notion de visibilité interne sur les entités de l'objet (attributs et méthodes) - permet l'héritage, caractérisé par la relation "est un espèce de..." (par exemple une voiture est une espèce de véhicule). - un objet peut avoir plusieurs types (par exemple un homme est à la fois un humain et un mamifère) La programmation orientée objet est apparue avec PHP 4 mais n'existe véritablement que dans la version 5 - l'implémentation qui en était fait en PHP 4 se rapproche plus des structures comme en C qu'a un réél modèle objet... Prennons un exemple concret: la voiture. Code :
Dans notre exemple, la classe voiture porte 4 attributs: sa marque, le nombre de portes, de places et la puissance du moteur. Ces attributs sont marqués en protected ce qui signifie qu'ils sont protégés: il ne sont pas accessibles de l'extérieur de l'objet mais les classes filles les verront (on verra plus loin ce que ça implique dans le cadre de l'héritage). Il existe 3 mots clés pour définir la visibilité des attributs / méthodes: - public, accès complet a l'extérieur comme aux filles - protected, accès interdit à l'extérieur mais pas aux filles - private, accès interdit à l'extérieur comme aux filles La classe porte également 5 méthodes, un constructeur (__construct est le mot clé en PHP 5, en PHP 4 c'est le nom de la classe qu'il faut utiliser) et 4 accesseurs qui permettent de définir les propriétés de l'objet (car on les à protégés). Dans notre exemple, la protection est certes un peu malheureuse car cela ne sert à rien de définir des champs comme protégés ou privés si c'est pour donner des accesseurs direct dessus. Normalement, les accesseurs doivent faire des vérification sur les données et c'est là que protéger les attributs devient intéressant: par exemple dans le cadre d'une classe de mail, on peut protéger la propriété "to" et faire en sorte que l'accesseur valide l'email qu'on essaye d'insérer. Voici comment on va se servir de notre classe: Code :
Nous avons vu tout à l'heure qu'une voiture est une espèce de véhicule, en effet, les attributs $_marque et $_puissance_chevaux sont communs à tous les véhicules à moteur. On va donc crée une classe mère pour notre voiture: Code :
Note: l'héritage multiple, comme dans la plupart des langages objets n'existe pas. Une classe peut hériter d'aucune ou une seule classe mère mais peut réaliser plusieurs interface (on y reviendra plus tard). Voici donc notre nouvelle classe Voiture: Code :
L'intérêt principal de l'héritage est la factorisation: les méthodes definirPuissance et definirMarque sont immédiatement disponibles. On pourrait d'ailleurs créer une classe Moto sur ce principe (je te laisse imaginer comment Attention: si on avait défini dans la classe abstraite certaines méthode ou propriétés en private, les filles ne les auraient alors pas hérité. Il est également possible pour une classe abstraite de forcer les filles à définir une méthode: Code :
Note: une méthode statique est généralement appelée méthode de classe alors qu'une méthode nécessitant un objet est appelée méthode d'instance. De la même manière, on peut crée des propriétés de classe et des propriétés d'instance. On peut méler les deux arbitrairement suivant ses besoins. Note: s'il est possible conceptuellement de rendre une méthode statique, il vaut mieux le faire, les méthodes de classe s'exécutent 4x plus rapidement que les méthodes d'instance. Exemple: Code :
Elles se définissent de cette façon: Code :
Code :
Code :
Voilà, j'éspère que tu y vois un peu plus clair. Il y a bien évidement beaucoup plus à dire, je suis allé à l'essentiel. On notera également l'usage des méhodes magiques, des constantes magiques, du late static binding, de la défintion d'API au travers des interface, des design patterns etc. Mais je te laisse découvrir tout ça par toi même
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||||||||||||||
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Merci pour cette éclaircissement,
J'ai testé hier croyant avoir compris et le résultat de mes tentative mon prouvé que non ![]() mais je lache pas je continue à tester Merci en tous cas d'avoir pris ton temps pour ces précieuse explication |
|
|
00
|
|
|
#10 | ||||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Le truc que je comprend pas c'est dans l'appel de mon tep_mail_tst
je test et sa marche jamais je doit bien appelé ma class et la fonction qui est dedans je mets surement le mauvais paramètre dedans? Code :
Code :
$message->add_alternative_part($email_text); Code :
|
||||
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Dans un mail multipart qui à une partie text/plain et une partie text/html, si le client est capable de comprendre le mime et d'afficher le HTML, alors seul le HTML sera affiché, mais le contenu du message contiendra bien le texte également.
Si tu utilise gmail pour faire tes test, tu peux faire "Show Orginal" dans l'onglet avec la flèche vers le bas, qui te montrera le code source intégral de l'email.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#12 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Merci heureusement que tu es là sinon je me serais
bon normalement sa doit être bon je te montre ma source mais pour être sure je veux juste ta confirmation Code :
|
||
|
|
00
|
|
|
#13 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
ça m'a l'air correct, ton message est bien en multipart/alternative et on a deux contenus séparés, un en text/plain et l'autre en text/html.
multipart/alternative : Ce type est utilisé pour spécifier une version différente à une même partie de message. Le client mail choisira alors la meilleure version pour lui. La version préférée est généralement placée à la fin. Plus d'infos par ici : http://a-pellegrini.developpez.com/tutoriels/php/mail/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Merci pour ton aide.
J'ai une dernière question. actuellement pour séparer le html du text je prend ma variable qui contient le html ex: Code :
Merci d'avance |
||
|
|
00
|
|
|
#15 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
C'est louche que le lien disparaisse... Il n'est pas présent dans la source du mail ?
Tu peux utiliser les headers pour les abonnements (mais tous les clients ne n'ont pas encore): X-Unsubscribe-Email et X-Unsubscribe-Web. Jute pour aider, tu peux utiliser la syntaxe heredoc pour déclarer des chaines longues en PHP: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
Merci Benjamin,
Mais c'est normal que j'ai plus mon lien car dans ma fonction je fait un pour supprimer les balises html donc forcément sa supprime mon lien le truc c'est que je dois trouvé la solution pour gardé que les balises href ce que je pense n'existe pas. Enfin je cherche une solution. |
|
|
00
|
|
|
#17 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Une chaine en text/plain ne sera jamais interprétée en HTML. Donc tu n'auras jamais de lien cliquable.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Inscription : février 2008 Messages : 318 ![]() |
je sais c'est pour sa qu'il faut que je trouve une astuce mais là je vais supprimer ce qui commence par <a href=|http:// comme sa la personne aura le lien enfin c'est le seul truc que j'ai trouvé pour l'instant
c'est ce qui s'appel du bricolage |
|
|
00
|
|
|
#19 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Au passage, la fonction stip_tags permet de passer les tags qui resteront inchangés dans la chaine de caractères.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com