Envoi d'e-mail via la fonction mail() de php


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Envoi d'e-mail via la fonction mail() de php

Message le Ven Oct 24, 2008 19:31

Bonjour,

Le sujet à été abordé surement pas mal de fois, mais je n'ai rien trouvé qui corresponde à mon problème.

J'essaye d'envoyer un e-mail via la fonction mail() de php.
Je suis hébergé chez OVH, je pense avoir tout bien paramétré, mais cela ne fonctionne pas...

voici mon code d'envoi d'e-mail:
Code: Tout sélectionner
function EnvoiMailInfo($Destinataire, $Sujet, $Message){

                 
$entete .= "X-Sender: <www.monsite.fr>"."\n";
$entete .= "X-Mailer: PHP"."\n";
$entete .= "X-auth-smtp-user: info@monsite.fr"."\n";
$entete .= "X-abuse-contact: abuse@monsite.fr"."\n";
$entete .= "From: \"Nom De Mon Site\" <info@monsite.fr>"."\n";
$entete .= "Reply-to: contact@monsite.fr"."\n";;
$entete .= "Content-type: text/html"."\n";

$message_html = "
<html>
        <head>
                <title>$Sujet</title>       
        </head>

        <body>
          $Message
        </body>                       
</html>";

    mail($Destinataire, $Sujet, $message_html, $entete) ;//on envoi le mail
 
}


Je pense que toutes les entêtes son bonnes, y en a t-il d'autres à ajouter??
les adresses info, abuse et contact existent bien...

Je ne sait pas ce que je doit faire de plus...

quelqu'un peut m'éclairer?

Merci


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Oct 24, 2008 19:35

Te fais pas chier, utilise une classe :mrgreen:

http://phpmailer.codeworxtech.com/index.php?pg=sf&p=dl
Dernière édition par YoyoS le Ven Oct 24, 2008 20:33, édité 1 fois.


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Ven Oct 24, 2008 19:37

Merci de ta réponse rapide, mais c'est quoi la différence?? 8O


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Oct 24, 2008 20:35

En programmation orientée objet, une classe déclare des propriétés communes à un ensemble d'objets. La classe déclare des attributs représentant l'état des objets et des méthodes représentant leur comportement. fr.wikipedia.org/wiki/Classe (informatique)


Moué, pas très clair wikipedia quand on y connait rien.
Lis plutôt ça, un article très bien fait, je viens d'y jeter un oeil: http://www.journaldunet.com/developpeur ... t-1a.shtml

Sinon pour phpmailer, il y a des exemples d'utilisation dans l'archive avec la classe. Tu comprendras surement mieux après avoir lu l'article ci-dessus.

Et si tu as envie d'approfondir : http://fr.wikipedia.org/wiki/Programmat ... %A9e_objet
Dernière édition par YoyoS le Ven Oct 24, 2008 20:39, édité 3 fois.

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Ven Oct 24, 2008 20:35

Il nous faudrait plus que "cela ne fonctionne pas".
Erreur(s) PHP, logs Apache, logs MTA...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Ven Oct 24, 2008 21:03

l'entete est fausse
si tu fais un mail en html tu dois faire une copie en texte plein
je te file le mien, il est compatible OVH


Code: Tout sélectionner
<?php

    $texte_plain = "hello Dude \n";
    $texte_html = "hello Dude <br />";

    $mime_boundary = "----nomdusite----".md5(time());
    $entetes = "From: phpSources <services@ndd.com>\n";
    $entetes .= "Mime-Version: 1.0\n";
    $entetes .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n";
    $entetes .= "X-Sender: <www.ndd.com>\n";
    $entetes .= "X-Mailer: PHP/" . phpversion() . " \n" ;
    $entetes .= "X-Priority: 3 (normal) \n";
    $entetes .= "X-auth-smtp-user: services@ndd.com\n";
    $entetes .= "X-abuse-contact: abuse@ndd.com\n";
    $entetes .= "Importance: Normal\n";
    $entetes .= "Reply-to: services@ndd.com\n";


    # TEXT EMAIL
    $mess = "--$mime_boundary\n";
    $mess .= "Content-Type: text/plain; charset=ISO-8859-1\n";
    $mess .= "Content-Transfer-Encoding: 8bit\n\n";
    $mess .= $texte_plain;



    # HTML EMAIL

    $mess .= "--$mime_boundary\n";
    $mess .= "Content-Type: text/html; charset=ISO-8859-1\n";
    $mess .= "Content-Transfer-Encoding: 8bit\n\n";
    $mess .= $texte_html;


    mail("email","titre",$mess,$entetes);

    ?>


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Ven Oct 24, 2008 21:06

Oue mais il apprend rien là Koogar, cay nul :/
Il va se torcher le cul avec les articles que je lui ai conseillé de lire now, c'est malin :mrgreen:


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Ven Oct 24, 2008 22:13

KOogar: merci, je teste et te redis si cela marche...

YoyoS: Je n'oserais pas tout de même! 8O
En attendant, merci pour les articles que j'ai quant même lu NA! :wink:


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Ven Oct 24, 2008 22:26

Bon, j'ai testé et ca ne marche toujours pas...

J'ai copié collé (en changeant les données bien sur) dans un fichier php le code de Koogar, juste pour tester si je recevais bien un e-mail.

Je n'ai aucune erreur php, je ne comprends pas trop d'où cela peut venir...

Une idée?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Oct 25, 2008 8:29

prend ce code simple et classique pour envoyer tes mails html si tu as des problemes:

Code: Tout sélectionner
mail("ton@email","sujet","hello","From:test@test.net\nMime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\n");


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Sam Oct 25, 2008 13:27

Rooo!

Les e-mail que j'ai envoyé hier sont arrivés ce matin, ma fonction étais donc bonne (peut être pas complète mais elle fonctionnait) :x

Je trouve le délai un peut long pour un e-mail d'activation de compte, faut-il que je change la priorité?
Est-ce que cela risque d'être considéré comme du spam si ma priorité est élevée?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Oct 25, 2008 13:34

ben voila, ca fait 3 codes qui fonctionne sur le meme post
Pas normal un tel delai de livraison, le serveur doit etre en rodage :mrgreen:


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Sam Oct 25, 2008 13:49

KOogar a écrit:ben voila, ca fait 3 codes qui fonctionne sur le meme post
Pas normal un tel delai de livraison, le serveur doit etre en rodage :mrgreen:


Le serveur en rodage? CAD??

J'envoie les mail à partir D'OVH et mes e-mail de réceptions sont sur hotmail.fr et free...
C'est mon serveur OVH qui est en rodage?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Oct 25, 2008 15:49

"rodage" est une boutade

avec la commande mail si tu t'envoie un mail sur ton propre serveur (genre alerte et co) ca prend le temps d'ouvrir ta messagerie pour le receptionner.
10 secondes max :mrgreen:


ygalr22
WRInaute discret
WRInaute discret
 
Messages: 140
Inscription: 9 Jan 2008

Message le Sam Oct 25, 2008 18:32

Ok! ;)

Donc d'ou peut bien venir ce temps de réception trop long??

Je doit changer la priorité des e-mail?

Envoi d'e-mail via la fonction mail() de php

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité