Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

PHP - MySQL [Retour au menu]
Envoi d'E-Mails

Modif de PHP.ini, fonction mail(), utilisation de variables, options d'envoi (From, Cc, Bcc, Etc.), comparaison avec le mailto: de HTML

Une classe comportant toutes les fonctions inhérentes à l'envoi d'E-Mails via PHP se trouve ici

Préparation

ATTENTION : avant de pouvoir envoyer un mail avec la fonction mail(), il est nécessaire de modifier PHP.ini comme ceci (remplacez mail.info-3000.com par les paramètres de votre fournisseur d'accès) :

[mail function]
; For Win32 only.
;SMTP = localhost
SMTP = mail.info-3000.com

Exemple simple

La commande théorique est :

mail("adresse e-mail","Sujet","Corps du message", "Options complémentaires");

Exemple :
mail("fuckspam@junkmail.com","Bonjour","Ce message est un super message");

Envoi d'un mail en format HTML

Le mail suivant envoi le texte Voici le lien Tagada Il est bien, et quand on clique sur Tagada, on arrive sur l'adresse www.perdu.com

mail("mdefawes@info-3000.com","leSujet","Voici le lien : <a href='http://www.perdu.com'>Tagada</a> Il est bien !","Content-type: text/html");

Utilisation d'une variable

Il est possible d'insérer une variable dans le contenu d'un mail :

$Fruit = "Pommes";
mail("fuckspam@junkmail.com","Bonjour","J'aime les $Fruit");

Envoi d'un E-Mail à plusieurs destinataires

Il faut séparer les différents destinataires d'une virgule, et PAS d'un point virgule

mail("truc@machin.com , dupont@tralala.com","Sujet","Corps");

Options complémentaires

From:

Les options se trouvent concaténées dans le 4ème paramètre. Par exemple, si on voulait préciser que le mail envoyé a été envoyé par Bozo, on dirait :

mail("fuckspam@junkmail.com","Bonjour","Je suis un clown", "From:Bozo");

Cc:

Envoi d'une copie :

Théoriquement, il devrait suffire d'écrire :

mail("truc@machin.com","Sujet","Corps", "Cc:fuckspam@junkmail.com");

Mais autant la clause From fonctionnait très bien, autant la clause Cc: ne fonctionne pas. Aucun message d'erreur n'est généré, mais rien n'est envoyé.

Bug de Cc:

Normalement, on devrait pouvoir cumuler les paramètres, comme ceci :

mail("truc@machin.com","Sujet","Corps", "From: Tralala \n Cc:fuckspam@junkmail.com");

Mais à cause de Cc qui ne fonctionne pas, plus grand chose d'autre ne fonctionne du coup...

Les différentes clauses possibles dans ce 4ème paramètre sont :

Utilisation de mailto: dans le HTML

Au lieu de la fonction mail de PHP, on peut utiliser mailto: de HTML. La différence, c'est que mailto: va préparer un mail et le mettre dans la boîte d'envoi du logiciel de mail installé (Outlook ou Lotus Notes par exemple), tandis que mail envoie vraiment le mail immédiatement. Toujours est-il que voici la syntaxe :

<A HREF="mailto:machin@info-3000.com;truc@info-3000.com&cc=bidule@hotmail.com?subject=Le%20sujet&body=Le%0dCorps">
Clique ici </a>

-