L'envoi d'emails est certainement l'une des utilisations les plus courantes en PHP. Nous allons tout d'abord voir un exemple simple d'envoi, puis, progressivement, nous détaillerons d'autres possibilités.
Pour envoyer un email, nous disposons en PHP de la fonction mail(). En voici la syntaxe :
boolean mail( string to, string subject, string message [, string headers [, string parameters]])
Seuls les trois premiers arguments sont obligatoires. La fonction retourne true en
cas de succés, false dans le cas contraire.
L'email est envoyé au destinataire to. L'email a pour sujet subject et le corps de l'email
est message. Des entêtes supplémentaires peuvent être ajoutés avec headers. Enfin, des
paramètres de commande supplémentaires peuvent être passés avec parameters. PHP
les utilisera dans son appel du programme d'envoi de courriel.
Voici un exemple basique d'envoi d'un email :
<?php
mail('adresse@domain.tld', 'Le sujet', 'Exemple d\'envoi d\'email');
?>
Ca y est, vous avez envoyé un email :-))…, c'est bien beau tout ça, mais dans l'email que reçoit le
destinataire, l'expéditeur n'a pas été défini…
C'est là que les headers
entrent en jeu.
Nous allons maintenant construire un message un peu plus compliqué et inclure des entêtes à l'email pour améliorer tout ça. Un entête se présente comme suit :
nom de l'entête: contenu de l'entête
Notez bien qu'il n'y a pas d'espace entre le nom de l'entête et les deux points, mais qu'il y a ensuite un
espace entre les deux points et le contenu de l'entête. Si vous indiquez plusieurs entêtes, vous devez effectuer
un retour à la ligne entre chaque entête à l'aide du caractère spécial \n.
Exemple de construction des headers et du message, puis envoi :
<?php
$headers = "From: toto@titi.fr\n";
$headers .= "Reply-To: toto@free.fr";
$message = "Salut Alphonse, \n\n";
$message .= "J'espère que tu vas bien !\n";
$message .= "Voila, j'ai découvert un super site :\n";
$message .= "http://www.phpcodeur.net\n\n";
$message .= "Va y jeter un oeil, il est terrible !\n\n";
$message .= "Ciao.\n\n";
$message .= "toto";
mail('alphonse@lycos.fr', 'Super site', $message, $headers);
?>
Ici, nous avons utilisé l'entête From qui sert (comme vous l'avez deviné) à définir l'adresse email de
l'expéditeur, ainsi que l'entête Reply-To qui, lui, sert à définir l'adresse de réponse à l'email.
Note : Les noms de certains entêtes sont case-sensitive [1]
Note : L'adresse définie comme expéditeur n'a pas besoin d'être réelle. On comprend maintenant comment les spammeurs s'y prennent. Vous ne vous étonnerez plus si vous recevez un email de Bill Gates ;-)
Note : L'adresse définie comme expéditeur n'est pas nécessairement la même que celle indiquée pour l'adresse de réponse
Comme on l'a vu, l'opérateur de concaténation (le point devant le caractère =) nous a permis de
construire un message un peu plus compliqué. L'ajout des entêtes appropriés nous a permis de définir
l'expéditeur, ce qui est la moindre des choses lorsqu'on envoie un email.
Il existe différents entêtes qui ont chacun leur utilité (utilité plus ou moins importante).
Pour voir une liste non-exhaustive des entêtes possibles, rendez vous au chapitre suivant.
On l'a vu dans le chapitre précédent, les entêtes nous permettent de fournir de précieuses informations sur l'email. Voici quelques uns des entêtes, et leur utilité :
From To Reply-To From X-Priority Return-Path Cc Cc signifie Carbon Copy) Bcc Bcc signifie Blind Carbon Copy) Disposition-Notification-To Content-Type Content-Transfer-Encoding Voici un autre exemple d'envoi d'email en utilisant quelques uns des entêtes sus-nommés :
<?php
$headers = "From: \"toto\"<toto@titi.fr>\n";
$headers .= "Reply-To: toto@titi.fr\n";
$headers .= "Cc: alphonse@lycos.fr, georges@usa.com\n";
$headers .= "Bcc: fred@free.fr\n";
$headers .= "X-Priority: 1\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$headers .= "Content-Transfer-Encoding: 8bit";
$subject = 'Un site à voir absolument !';
$message = "Salut à tous, \n\n";
$message .= "Un site super à voir absolument : \n";
$message .= "http://www.phpcodeur.net\n\n";
$message .= "A demain\n\n";
$message .= "toto";
$result = mail('francois@wanadoo.fr', $subject, $message, $headers);
if( $result == true )
{
echo 'l\'email a bien été envoyé';
}
else
{
echo 'l\'email n\'a pas pu être envoyé !';
}
?>
Dans l'exemple ci-dessus, nous avons envoyé l'email à francois@wanadoo.fr. Nous avons également envoyé une copie
de l'email à alphonse@lycos.fr et georges@usa.com (je manque d'inspiration moi…). Une copie cachée a été
envoyée à fred@free.fr, et enfin, l'email a une haute priorité.
Nous avons également défini le type MIME
du contenu de l'email (text/plain) bien que ce ne fut pas nécessaire, les emails étant par défaut dans ce type.
Dans l'exemple précédent, j'ai utilité l'entête Content-Type pour définir le type
MIME de l'email.
Réutilisons cet entête en spécifiant cette fois text/html :
<?php
$headers = "From: \"toto\"<toto@titi.fr>\n";
// on indique qu'on a affaire à un email au format html avec l'entête ci-dessous
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
$message_html = "<html><body><b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<u>toto</u>";
mail('alphonse@lycos.fr', 'Comment tu vas', $message_html, $headers);
?>
Note : Rappellez vous que certains logiciels de courrier électronique ne gèrent pas les emails au format html.
Prévoyons une alternative pour les personnes ne disposant pas d'un logiciel gérant les emails au format
html, ou
qui désactivent pour des raisons de sécurité l'affichage de ces emails.
Nous allons ici aborder le terme de frontières dans le corps de l'email, un moyen de séparer les différentes
parties de l'email, en conformité avec le format MIME 1.0.
En d'autres termes, nous allons définir une chaîne de caractères, et l'utiliser pour séparer la partie texte de
la partie html.
Mais je laisse le code parler pour moi :
<?php
// on génère une chaîne de caractères aléatoire qui sera utilisée comme frontière
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "From: \"toto\"<toto@titi.fr>\n";
// on indique qu'on a affaire à un email au format html et texte et
// on spécifie la frontière (boundary) qui servira à séparer les deux parties
// ainsi que la version mime
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$message_txt = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "toto";
$message_html = "<html><body><b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<u>toto</u>";
$message = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";
mail('alphonse@lycos.fr', 'Comment tu vas', $message, $headers);
?>
Respectez bien la construction du message, en particulier les sauts de ligne entre les différents entêtes et les
parties proprement dites.
Voila, le destinataire recevra un email qui s'affichera au format html
dans son logiciel, si celui ci gère ce format, au format texte dans le cas contraire.
Pour joindre un fichier à votre email, c'est exactement le même principe des frontières que précédemment que nous
devons utiliser. Nous allons également utiliser les fonctions de lecture de fichiers pour lire le fichier à
joindre. Les fichiers (image, archive zip, etc…) étant de type binaire, nous allons l'encoder en base64,
car seules les données de type ascii
peuvent être envoyées par email.
Là encore, je vous laisse étudier le code :
<?php
// on génère une frontière
$boundary = '-----=' . md5( uniqid ( rand() ) );
// on va maintenant lire le fichier et l'encoder
$path = 'chemin/fichier.gif'; // chemin vers le fichier
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path));
fclose($fp);
$content_encode = chunk_split(base64_encode($content));
$headers = "From: \"toto\"<toto@titi.fr>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
$message = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "Salut Alphonse, \n\n";
$message .= "Voila le fichier que tu m'as demandé\n";
$message .= "\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: image/gif; name=\"fichier.gif\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
// mettez inline au lieu de attachment
// pour que l'image s'affiche dans l'email
$message .= "Content-Disposition: attachment; filename=\"fichier.gif\"\n\n";
$message .= $content_encode . "\n";
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";
mail('alphonse@lycos.fr', 'le fichier demandé', $message, $headers);
?>
Note :
Si vous ne connaissez pas le type MIME
du fichier que vous envoyez, vous pouvez indiquer application/octet-stream.
Vous avez également la possibilité de joindre un fichier et de l'utiliser directement dans l'email
html (fichier image, son…)
Cela peut permettre de consulter l'email hors ligne, sans que les images ou autres media ne restent invisibles, faute de connexion au réseau.
Cette méthode doit toutefois être utilisée avec parcimonie, le fichier étant joint à l'email, son poids augmente d'autant
le poids de l'email et rend plus long le téléchargement de ce dernier.
Pour réaliser cela, nous allons faire appel à un nouvel entête : Content-ID. Celui ci va nous servir à
spécifier l'identifiant du fichier, lequel sera utilisé dans la partie html pour indiquer le fichier joint à utiliser.
Voici le code php, très
proche de l'exemple précédent :
<?php
// on génère une frontière
$boundary = '-----=' . md5( uniqid ( rand() ) );
// on génère un identifiant aléatoire pour le fichier
$file_id = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];
// on va maintenant lire le fichier et l'encoder
$path = 'chemin/fichier.gif'; // chemin vers le fichier
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path));
fclose($fp);
$content_encode = chunk_split(base64_encode($content));
$headers = "From: \"toto\"<toto@titi.fr>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";
$message = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "<html><body>Salut Alphonse, <br><br>";
$message .= "Voila le fichier que tu m'as demandé :<br>";
$message .= "<img src=\"cid:$file_id\" alt=\"le fichier demandé\"><br>";
$message .= "<br>@+";
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: image/gif; name=\"fichier.gif\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-ID: <$file_id>\n\n";
$message .= $content_encode . "\n";
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";
mail('alphonse@lycos.fr', 'le fichier demandé', $message, $headers);
?>
Nous avons ajouté dans les entêtes de la partie du fichier l'entête Content-ID avec pour valeur l'identifiant
aléatoire que nous avons créé. Pour appeller ensuite le fichier, il nous a suffi d'indiquer comme valeur de l'attribut
src de la balise img : cid:identifiant_du_fichier
Cette question revenant assez souvent sur la plupart des forums, je vais la traiter brièvement ici.
Si vous avez essayé d'envoyer un email à partir d'un serveur local [2],
vous avez dù tomber sur un message d'erreur de ce genre :
Failed to connect …
En effet, avant de tenter d'envoyer un email en local, vous devez d'abord configurer correctement le fichier
php.ini qui se trouve dans le dossier windows/ (ou winnt, bref, on se comprend).
Vous devez éditer le fichier et vous rendre jusqu'à cette rubrique :
[mail function]
SMTP = localhost ; For Win32 only.
sendmail_from = me@localhost ; For Win32 only.
;sendmail_path =
; For Unix only. You may supply arguments as well (default: "sendmail -t -i")
Indiquez dans SMTP
l'adresse du serveur SMTP qui doit être utilisé, par exemple
celui de votre fournisseur d'accés, et dans sendmail_from l'adresse de retour par défaut (celle qui
sera utilisé dans l'entête Return-Path)
Il est possible que vous ne désiriez pas utiliser le serveur SMTP
de votre fournisseur d'accés [3],
dans ce cas, vous pouvez installer un serveur smtp sur votre machine. Il en existe plusieurs gratuits (par
exemple, limités à un compte).
Si vous désirez savoir comment installer un serveur SMTP, je
vous renvoie sur cet excellent tutorial de phpfrance qui traite ce sujet :
Installer un serveur smtp.
La plupart des hébergeurs gratuits suppriment la fonction mail() ou la bride fortement pour prévenir tout
abus (spamming). Certains hébergeurs payants font de même (intolérable à mon avis).
En voici quelques uns :
Free a supprimé cette fonction de ses serveurs, impossible donc d'envoyer un email avec php. Il existe apparamment une solution alternative qui consiste à utiliser un service gratuit de ovh en ouvrant une fenetre sur leur serveur durant trois secondes le temps d'envoyer l'email. (je ne trouve plus le lien, je le mettrai quand je l'aurai retrouvé).
La fonction mail() est, par contre, disponible chez multimania/lycos, mais fortement bridée. Il y a une limite de 150 envois par jour (le nombre de destinataires est compris dans ce nombre).
Online a remplacé la fonction mail() de base par une fonction email() dont la syntaxe est légèrement différente :
boolean email(string From, string To, string Sujet, string Message [, string Reply To [, string headers]])
Voir la FAQ de Online pour plus de détails.
Une dernière solution pour envoyer un email consiste à utiliser les sockets et de parser les reponses du serveur SMTP…
Le dialogue avec un serveur via les sockets (voir fsockopen()) sera détaillé dans un prochain article.
Vous pouvez, si vous vous intéressez à la question, télécharger la classe WAmailer, qui propose cette fonctionnalité, et en étudier le code.
Cc et Bcc sont sensibles à la casse
sous windows. De manière générale, mettez la première lettre des entêtes en majuscule, ou la première lettre
de chaque mot, si c'est un nom composé comme Reply-To Note : Vos données personnelles restent strictement confidentielles et ne sont pas réutilisées à votre insu. Vous pouvez consulter à ce propos cette page.
Des commentaires ?
Auteur : webmas • 09/01/2003 @ 17:04 • #162
Tres bon script, en tout cas pour comprendre.
Mais lorsque je recopie le script pour envoyer un message du type "multipart/alternative" le message envoyé est complétement vide.....
un petit détail à changer peut etre ?
Auteur : Shok • 04/03/2003 @ 14:41 • #234
Merci c parfait!!
Il me manquait quelques elements pour finir mes newsletters..tout est la!!!!!!!
Merci et bonne continuation!!
Auteur : btruton • 05/03/2003 @ 11:04 • #241
J'ai lu et appliqué à la lettre tous tes commentaires et exemples.
Maintenant j'ai un script qui tourne du tonner de dieu.
Continu comme ça.
Sincères salutations.
Bruno
:-)
Auteur : Kahel • 21/05/2003 @ 23:38 • #319
Ben merci aussi! Le pire c'est que ca me sert pour du visual basic et du dialogue serveur :)...
Auteur : Dante • 09/07/2003 @ 21:11 • #378
Cette article est très bien fait et détaillé !
chapeau
Auteur : marKus • 26/07/2003 @ 22:40 • #384
salut
j'ai trouvé ce site par hasard...et depuis je ne cesse d'halluciner sur tout ce travail (tutoriaux et scripts) qui touche la perfection!
bref[...] Bravo!
j'ai lu ke tu as fait des tests pour ton remarquable outil de mailing (je viens de faire une litote...) et je me demandais jusqu'à kel volume de diffusion ton script (ou ce sera le php ou le server..) peut-il envoyer des mails? (genre 50 000 mails ou+?)
et aussi si un server mutualisé ne va pas trop ramer au moment de l'envoi et/ou comment faire pour programmer l'envoi de nuit par exemple (je crois ke c cron..mais g pas tout compris :S)
merci bcp!
:-)
Auteur : Laurent 06 • 20/01/2004 @ 12:29 • #483
Votre tutorial est GENIAL !!!
Merci !!
Merci !!
Merci !!
Merci !!
Auteur : DOC • 28/01/2004 @ 02:43 • #492
J'ai déjà fait un petit script (qui ressemble à celui ci-dessus) pour inclure des images dans un mail au format HTML, il fonctionne bien simplement qu'il y a toujours une pièce jointe du type ATT00089.txt qui fait 0 octet si quelqu'un sait pourquoi ???
Auteur : pixel • 08/04/2004 @ 19:34 • #536
Informations complémentaires
La plupart des hébergeurs gratuits suppriment la fonction mail() ou la bride fortement pour prévenir tout abus (spamming). .......
Free
Free a supprimé cette fonction de ses serveurs, impossible donc d'envoyer un email avec php. Il existe apparamment une solution alternative qui consiste à .....
Il y en a une qui fonctionne à merveille avec Free: PROTOMAIL que l'on peut trouver sur samuel.kabak.free.fr [Cliquez ici]
testé et adopté !!!
Auteur : CODHEX • 04/05/2004 @ 20:43 • #553
Salut à tous, pour répondre à ta question concernant : "multipart/alternative" tu dois indiquer "multipart/missed".
Voilà @ +++
Auteur : merci • 12/11/2004 @ 22:01 • #629
recever les plus chalereux des bonjours de ma part de votre frere djelloul de hassi messaoud a l'occasion de l'aid fitr
Auteur : • 25/11/2004 @ 20:09 • #633
je comprends toujours pas ce que je dois ecrire devant cc
Auteur : inginfodz • 21/02/2005 @ 14:32 • #661
Tes tutoriaux sont bien fait
-- Bravo et bonne continuation --
Auteur : rita • 22/02/2005 @ 16:29 • #662
Emails pieces jointes
Impossible d'ouvrir un doc. ou pdf.
Ai teste content-type : application/octet-stream ou text/vnd.ms-word, etc.
Ai essaye avec fopen($file, "rb-wb") mais sans succes.
Merci pour vos suggestions, Rita
Auteur : Domy • 20/03/2005 @ 19:46 • #666
tes tutoriaux sont génial exactement ce que je cherchai, mais j'ai un pb. je débute en php, j'ai lu et executé ton code sur l'envoie d'email. mais ça tourne pas sur ma machine.
j'ai installer easyphp 1.8 mon S.E. Winxp
puis je savoir ce donc je devrais faire pour avoir une bonne configuration de php pour pouvoir utiliser tes scripts merci d'avance
Auteur : radeau • 16/04/2005 @ 19:35 • #676
je veut que bill gates m'ecrive car j'ai du apprendre qu'il est catolique .
Auteur : rosebud • 22/04/2005 @ 19:16 • #678
Hello,
Merci pour la clarté, la pédagogie et l'absence de fôôtes de frappe (ben si, parce que d'autres...).
Allez hop, dans mes signets, et vive l'entraide.
:o)
Auteur : dada • 13/05/2005 @ 09:29 • #686
Bonjour, j'essaie d'envoyer des fichiers joints avec la fonction email...
Mon problème est que cela fonctionne tant que le fichier à joindre est sur le même serveur que le fichier php qui fait l'envoi.
Donc si je veux joindre un fichier qui se situe sur mon bureau, j'ai un message d'erreur du type :
-------------
fopen(C:\\Documents and Settings\\jossind\\Desktop\\OS05071.JPG): failed to open stream: No such file or directory
-----------
Alors que le fichier existe sur le bureau !???
Merci pour votre réponse
A bientôt
Auteur : huhuilikeit • 29/06/2005 @ 23:05 • #701
Merci beaucoup !!
tu m'as sauvé la vie avec ce script !
Auteur : reggaechien • 01/08/2005 @ 17:30 • #708
Salut, peut on envoyé un email archivé par email ? MERCI
Auteur : ngnikos • 18/09/2005 @ 23:22 • #721
Bravo et Merci, c'est génial et ça fonctionne, juste ce que je cherchais !
Auteur : Erwan • 10/10/2005 @ 12:14 • #730
Bonjour,
super ce WANewsletter.
cependant, j'ai un petit soucis. Lorsque j'importe une liste d'e-mail, sans utiliser ";" en séparateur, je constate que lorsque la newsletter arrive dans la BAL, l'en-tête du mail montre la liste de tous les inscrits : c'est assez génant.
Y'a-t-il une option ou quelque chose à faire pour les rendre non visibles ?
Merci de votre réponse
Erwan
Auteur : • 06/12/2005 @ 21:23 • #764
Simplement super !
un petit copier/coller et cela marche !
merci et bravo
Auteur : stef • 02/03/2006 @ 16:17 • #805
Bonjour,
merci pour les tutos,
Je n'ai pas trouvé de soluce à mon pb de mail text/html dans les forums.
dés que j'insère un lien type :
<a href=\"abcde.php\">lien</a>
dans le $message_html, celui apparait tronqué d'1 ou 2 caractères au debut
ici : cela donnerait : bcde.php
quelqu'un peut m'expliquer ?
stefan
Auteur : gowgow • 27/03/2006 @ 19:50 • #853
salut,
j'ai cette erreur
Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay for alphonse@lycos.fr in c:\program files\easyphp1-8\www\mon_test\mail.php on line 37
Auteur : • 30/05/2006 @ 08:00 • #955
Bonjour a tous, je lance cette appel pour soliciter de quelqu un une aide preciuse, voila, je creer un site web associative, et je ne connais rien de rien au php, j aimerai voir si une personne bien attentioné serez positif a m aider direct sur msn messenger deluxeservices@hotmail.fr pour pouvoir creer une page ou lmes personne pourrez m envoyer un mail simple, mes sans passer par l ordinateur, enfin par le site lui meme, je suis chez free.fr, merci de votre attention et vous souhaite a tous une excellente semaine.
Auteur : bdelpla • 11/09/2006 @ 09:54 • #2123
Bonjour
Merci pour ce tutorial.
J'ai une petite question : j'ai en pièce jointe de gros fichier. Si leur taille dépasse approximativement les 2 Mo, l'envoi du mail échoue.
Sauriez vous où cela peut bien coincer? J'ai utilisé différente méthode (SMTP, PHP mail(), $Sendmail, qmail MTA), mais j'ai toujours le même problème...
Merci de votre aide
A+B
Auteur : beke • 02/10/2006 @ 16:24 • #2310
Certain arrive à envoyer des mail sans le l'adresse expéditeur, du moins la mention de n'affiche aucun nom ni adresse mail. Pouvez vous l'expliquer
Auteur : bobe • 24/10/2006 @ 23:48 • #2376
bdelpla: Les emails ne sont pas fait pour envoyer de gros fichiers.
beke: Il suffit de ne pas mettre d'entête From dans les entêtes de l'email.
Auteur : Ben • 17/11/2006 @ 21:30 • #2508
Bonjour,
J’ai fais un formulaire sur mon site, maintenant je veux faire le code en php pour envoyé et récupéré les champs renseigné.
J’ai testé l’ensemble des exemples, tout fonctionne parfaitement, c’est très bien expliqué et progressif pour apprendre.
Maintenant, je cherche a « lier » les valeurs de mes champs de texte (sur la page htm) ; au code php des exemples.
Exemple : a la place de « Voila le fichier que tu m'as demandé » je veux le texte saisi dans mon formulaire.
$message .= "Salut Alphonse, \n\n";
$message .= "Voila le fichier que tu m'as demandé\n";
C’est certainement simple a réaliser, mais je n’y arrive pas.
Pouvez vous m’aider, me donner un piste ?
Merci
Auteur : kaos • 28/11/2006 @ 18:53 • #2583
adreses emails
Auteur : lilou789 • 08/01/2007 @ 15:49 • #2865
je n arrive pas a envoyer un courrier electronique ou du moins mon destinataire n arrive pas a l ouvrir.urgent
Auteur : phassoa • 12/01/2007 @ 13:54 • #2891
j'essaie mais la fonction ne marche existe t il une configuration spécial a faire sur le serveur ?
Auteur : wuam • 08/03/2007 @ 18:25 • #3357
Pour les gens qui reçoivent un mail vide.
Dans le HTML : mettez
enctype="application/x-www-form-urlencoded"
Ou dans le PHP:
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
A la place de "text/plain", mettez : "application/x-www-form-urlencoded"
J'ai cherché ça pendant des heures et des jours.
En espérant que ça résolve votre problème de mail vide.
:)
Auteur : • 15/03/2007 @ 17:35 • #3465
Bonjour Jean-louis,
je me présente je suis estelle la fille d' Aurore et de Gérard GOMEZ. Tout d'abord je tiens à vous remercier de l'intérêt que vous porté à ma situation.
De plus je souhaiterai savoir s'il vous est possible de me communiquer le nom de la personne à savoir un représentant du syndicat UNSA avec lequel vous auriez conversé dernièrement.
En effet ayant pris contact avec le responsable régionale ainsi que départementale de l'UNSA POLICE ceux-ci m'ont informés ne pas avoir souvenir de votre rencontre.
Je vous en remercie par avance.
Merci pour tout Estelle
Auteur : sam • 16/03/2007 @ 21:45 • #3491
salut
merci pour toutes ces informations, mais je veut avoir comment envoyer un mail sans définir le headers est ce que c possible?
et merci encore.
salut
Auteur : grummfy • 28/03/2007 @ 15:26 • #3717
Hello,
come signaler plus haut ( [Cliquez ici] ):
boolean mail( string to, string subject, string message [, string headers [, string parameters]])
la partie headers et parameters est facultatif, donc pas besoin de définir cela ...
Auteur : • 25/04/2007 @ 17:34 • #4470
je tramble
Auteur : • 19/05/2007 @ 00:17 • #5083
DONNE DES ADRESE
Auteur : leenux2003 • 07/06/2007 @ 13:53 • #5856
L'email n'est pas fait pour envoyer de gros fichiers.
J'ai trouvé un soft qui permet ca.
Ca s'appelle 123envoi.
Pour ceux qui sont intéressé la nouvelle version v2.0 vient de sortir :
- Pause/Reprise pendant l'envoi
- Reprise lors d'une coupure Internet
- Protection par mot de passe
- Accusé Reception
Dispo sur le site officiel directement : [Cliquez ici]
Auteur : annick • 22/06/2007 @ 17:17 • #6341
coucou bonjour ça y est on fait parti des internautes bisous annick
Auteur : lalo • 27/06/2007 @ 14:26 • #6600
felicitation c'es un tres bon scripte tres clair et pratique pour les debutants comme moi ...mais je voudrais savoir ce que je doit ajouter a ce scripte por pouvoir recuperer tous les emails de ma base de données et en suite lee envoyer un email avec une piece jointe
merci d'avance
Auteur : pakyr • 27/06/2007 @ 21:26 • #6605
je peu vous demandé de fair un page de contact qui point ver mon mail
comme je conais pas le phph alor je vous demand de fair une pour moi
avec mon adrsse de mail
pakyprivi@hotmail.fr
et sava me fair plaizir si vous me le fait une avec mon adrsse e mail merci davance
Auteur : amateo • 11/08/2007 @ 19:05 • #8232
kikou cmt sa va
Auteur : tiph • 22/08/2007 @ 13:57 • #8520
ta gueul safia fé pa chié jfé ske jve si tu crie jte deonse dakor
Auteur : king • 06/09/2007 @ 18:55 • #8818
super! c'est très cool! qlq a deja fait un mail avec css?
Merci
Auteur : yexp17 • 09/09/2007 @ 20:30 • #8872
je suis abonner depuis peu a free mais j'ai des probleme avec ma boite de reception free il m'est impossible d'envoyer un message en haute priorité et comment je pourrais faire pour corriger les faute avant l'envois du message qui pourrais me donner des infos sur la boite free
merci bien de toute l'aide qui me viendra
Auteur : • 11/10/2007 @ 18:01 • #11717
bonsoir
moi je n'arrive pas a ouvrir les pièces jointes du moins pas toutes depuis ma boite de reception hotmail.fr
merci d bien vouloir m'aider
Auteur : pmar5720@alice.hautdabit • 01/12/2007 @ 16:08 • #21890
proposition de orange pour garder la ligne mais non quand a ma ligne alice le plus rapidement merci monsieur martin philippe
Auteur : • 11/12/2007 @ 11:21 • #23394
je ne peu pas envoyerde message par hotmail merci de me repondre.pour temps je fait la bnne adresse
Auteur : ben64 • 17/12/2007 @ 16:26 • #24893
je ne retrouve pa la fin de mon pseudo c kelbelvi?merci de me retrouvé le bon;lamigou.benoit@neuf.fr
Auteur : lanner • 20/01/2008 @ 18:31 • #35036
le script fonctionne à priori cependant le gros problème que l'on retrouve partout , l'email envoyé est directement reçu en spam sous hotmail (courrier indésirable) et surement d'autres, est ce que l'on peu le modifier pour éviter cela ?
merci
Auteur : • 21/01/2008 @ 16:42 • #35347
J'essaie d'envoyer une photo en pièce jointe à une amie mais je n'y arrive pas à partir d'hotmail, je clique sur le nom de la personne, dans objet, je clique sur joindre fichiers, je sélectionne ma photo mais au lieu que sa s'affiche joindre, il met ouvrir, si je clique sur ouvrir, par défaut la photo est insérer dans objet avec à côté préciser à supprimer, pouvez-vous me venir en aide car je ne sais pas résoudre le problème
Auteur : hujofr • 31/01/2008 @ 11:38 • #38756
Bonjour,
j'aimerai savoir comment faire pour faire un mixte de votre code : je souhaite donner la possibilité d'envoyer un fichier joint et créer le mail en texte et HTML.
Que dois-je mettre :
** headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\""; **
Merci pour votre réponse et merci pour ce tuto. Bonne journée
Auteur : cbleuman • 06/03/2008 @ 22:00 • #47558
salut bébé ca va putain je n'arrive pas a retrouver comment tu ma dit de faire alors la c'est la bordelle si tu recoit le mess appel moi sur mon fixe si je suis la si je ne suis pas la appel sur le portable je te dirait a kel heure que je rentre
Auteur : Rachelle • 14/03/2008 @ 10:45 • #49150
J'arrive pas à utiliser ce script.
Je ne sais pas, où est le pproblème !
Auteur : • 19/03/2008 @ 21:01 • #49565
cc mn coeur ca va tu peu maplé si tu veu rep mwa si ta lmsg en maplan stp bsx jtm
Auteur : TITUS • 21/03/2008 @ 14:29 • #49618
je ne trouve pas comment envoyer un email
Auteur : • 01/05/2008 @ 22:43 • #53151
Je n'arrive pas à rappeler un message que j'ai envoyé par erreur par hotmail. Comment faire pour que le destinataire ne le reçoive pas ?