Fonction Mail -> Definir SMTP

Résolu
Bonjour,
Mon site PHP effectue l'envoi de mails automatiques qui partent presque systématiquement dans les spams.

Après m'être balladé sur le net, j'ai remarqué qu'il fallait définir le SMTP de mon FAI pour éviter ce problème.

Je veux bien le rentrer dans ma fonction mail mais je ne vois pas du tout ou.

Certains parle du fichier php.ini mais je ne vois absolument pas le lien entre un fichier sur mon PC et l'envoi automatique de mails.

Y'a t'il une fonction php pour définir le SMTP avant l'envoi de mails ? J'ai entendu parler d'ini_set et autres mais je vous avoue que je nage.
Configuration: Windows Vista
Firefox 3.0.4

16 réponses

  1. Je n'ai défini aucun SMTP Bien sûr, ce travail revient à ton hébergeur et il l'a fait correctement. Il me semble d'ailleurs l'avoir dit dès le message n°2

    Il y a une anomalie dans ton code, mais je ne sais pas si elle suffit pour expliquer que ton mail soit pris pour du spam. Le format de $entete n'est pas correct : les diverses parties de l'en-tête doivent être séparées par "\r\n", pas seulement "\n". Et il n'y en a pas besoin à la fin de $entete.
    1
    1. Je viens de lire la doc, elle ne parle de ce problème que pour le champ "to" sur les plates-formes windows. Donc l'explication que je t'ai donnée n'est sans doute pas la bonne.
      Je viens de remarquer que tu as mis From 2 fois : une fois dans $entete et une autre fois dans la fonction mail. C'est plutôt ça la raison !
      1
      1. Contributeur
        hello
        définir
        SMTP = <smtp.fai.com>
        dans le fichier php.ini
        0
        1. Bonjour

          Si tes mails partent dans le spam, c'est que le serveur SMTP de ton hébergeur est correctement configuré. Et ceux qui te donnent des conseils sur la modification de php.ini ont mal lu ton message.
          Le paramétrage du serveur SMTP n'a absolument aucun rapport avec le fait que tes envois soient pris pour du spam.
          J'ai bien peur que ton hébergeur n'héberge des vrais spammeurs. Résultat : son IP apparaît sur des listes noires, et les logiciels de filtrage qui se basent sur l'IP écartent aussi les tiens, car ils viennent de la même adresse. Note que ce n'est qu'une supposition de ma part.
          0
          1. @dubcek ou se trouve le fichier php.ini ? sur mon ordinateur ? si c'est le cas, comment mon site internet peut envoyer des mails automatiques si mon pc est éteint ? Sinon expliques un peu, parce que je ne comprend pas.

            @toto Merci de ta réponse, mais je doute que le problème vient de là. Apparemment, toute utilisation de la fonction mail() sans configuration; envoie des mails considérés comme spam chez certains hébergeurs (comme hotmail par exemple).
            0
            1. Contributeur
              si je comprends le post 1 c'est le serveur PHP qui envoie le mail pas le pc, le php.ini est dans
              1. The directory from which the PHP script was called
              2. The root of your Web directory (typically public_html)
              3. The Web server's default php.ini
              0
              1. toute utilisation de la fonction mail() sans configuration; envoie des mails considérés comme spam
                Tu te trompes. Toute utilisation de la fonction mail sans définition du serveur SMTP fait que les mails ne peuvent pas partir. Ils ne risquent donc pas d'être pris pour du spam à l'arrivée. Comment peux-tu concevoir d'envoyer un mail sans serveur SMTP ? Tu vas me dire, quand on ne sait pas ce que signifie ce paramètre, on peut toujours lui prêter des pouvoirs magiques...
                0
                1. complément : ce paramètre est défini chez ton hébergeur, c'est lui qui envoie tes mails, pas ton PC. Dubceck semble croire que tu travailles en local
                  0
                  1. Contributeur
                    non
                    0
                2. Tu ne crois pas qu'il travaille en local, et tu lui demandes de modifier son php.ini ? Ou tu crois qu'il a accès au php.ini de son hébergeur ? On aura vraiment tout vu !!!
                  0
                  1. Depuis ta réponse 7, j'aii bien compris que tu avais compris qu'il ne travaillait pas en local. Sachant cela, c'est encore plus absurde de lui demander de modifier le php.ini, justement !
                    0
                    1. linux21 -> Apparemment, toute utilisation de la fonction mail() sans configuration; envoie des mails considérés comme spam chez certains hébergeurs (comme hotmail par exemple)
                      Ah bon ? Et qu'entends-tu pas 'sans configuration' ? Parce que sans aucune configuration de la fonction mail, les mails ne partent pas du tout. Alors, quels éléments de la configuration peuvent manquer pour conduire à ce que des mails partent quand même mais soient pris pour du spam ?
                      0
                      1. Toutes mes excuses pour ce retard. Pour l'exemple, je vous fait part d'un de mes petits bouts de code.

                        Voilà un de mes mails automatiques:

                        ____________________
                        //Fonction mail
                        $entete.= "From: xxxxxxx <xxxxxxx@xxxxxxxx.com>\n"; // Adresse de l'expéditeur.
                        $entete.= "Reply-To: xxxxxxx<xxxxxxx@xxxxxxxx.com>\n";
                        $entete.= "Content-type:text/html; charset= iso-8859-15\n";
                        $dest= $email; // Adresse du destinataire.
                        $sujet="Xxxxxxxx XxxxxxxxxxX XX"; // Le sujet du Mail.
                        $message="Bonjour xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x";
                        mail($dest,$sujet,$message, "From : $entete");
                        ___________________

                        L'email s'envoie sans problèmes mais tombe régulièrement dans les spams. Je n'ai défini aucun SMTP !
                        0
                    2. Tu résout mon problème toto ! Tu m'enlève une grosse épine du pied, merci à toi.

                      Par contre, le nom de l'expéditeur, dans ce code "From: xxxxxxx..." résulte (inconnu) à l'envoi du mail. Un pansement contre ça ?
                      0
                      1. Il me semble que php gère mal les adresses au format nom <adresse@xx.fr>. Je n'ai pas le temps de relire la doc, je pars, mais essaye avec adresse@xx.fr tout court
                        0
                        1. c'est dommage j'aurai preferé un nom plutot que l'email.
                          0