Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment configurer Debian pour envois mail

Et pour faire marcher la fonction mail()

Sujet résolu
    9 mars 2011 à 18:51:17

    Bonjour,

    J'imagine que certains vont trouver ce titre peu évocateur, cependant j'essayerais d'être clair dans ma demande.

    J'ai un serveur cloud chez Gandi, j'ai installé php, mysql et tout les autres mais cependant je me suis rendu compte que la fonction mail() ne marchait pas (non pas du a un de mes script php car sur un autre serveur ça marche !)
    J'aimerais donc savoir si vous avez des idées à ce que je devrais faire =/
    Quand je dis ça, je tiens à dire que je suis néophyte dans l'installation d'un serveur web sous Debian (mais j'ai réussi, en me documentant, a installé à peu près tout) et donc j'aimerais savoir s'il faut installer quelque chose ? Si vous avez un tutoriel ou des indications ?
    J'ai accès au php.ini (enfin a tout ! :p)

    Merci d'avance de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2011 à 19:00:36

      Salut !

      Es-tu sûr d'avoir le bon code pour envoyer un mail... montre le nous et on pourra t'en dire plus
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2011 à 19:04:45

        Bonjour,

        J'ai dis que le code était bon.
        Il fonctionnais sur mon précédant serveur mutualisé.

        Merci de ton aide mais le problème ne vient pas de la.
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2011 à 20:17:39

          Bonsoir,
          Si, c'est peut-être du à tes codes... Ou plutôt à la version de PHP sur ton nouveau serveur?
          Si ç'est bon, contact ton nouveau serveur.
          @+
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2011 à 20:33:03

            J'ai pas tout compris ...

            Bon je le redis une dernière fois : mon code est correct, ce n'est pas ça le problème mais bien la configuration de mon serveur.

            J'aimerais donc savoir ce qu'il faudrait installer pour pouvoir envoyé des mails (installer un truc si possible simple)

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2011 à 20:41:30

              Ah! Bah la chuis pas dans le coup moi... JE SORT :p
              • Partager sur Facebook
              • Partager sur Twitter
                9 mars 2011 à 22:16:25

                Je vais paraitre mechant mais tu as au moins lu ce que j'ai mis ?

                Parce que j'ai pas l'impression.
                Désolé mais la tu passe pour un boulet.

                Certain diront qu'il voulait m'aider mais qu'il lise au moins les post précédant quoi ...

                3 fois d'affilé qu'on me sort le MÊME truc !
                • Partager sur Facebook
                • Partager sur Twitter
                  9 mars 2011 à 22:19:36

                  C'est toi le boulet qui va pas voir dans la FAQ.

                  ++
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 mars 2011 à 22:23:12

                    Q : J'utilise Wampserver / EasyPhp et j'ai une erreur de ce type :

                    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\XXXXXX.php on line XX

                    R : Il vous faut configurer un serveur smtp pour envoyer votre e-mail depuis votre PC en local ; pour ce faire, il faut éditer le fichier php.ini.


                    Ca ne m'aide en rien (même si j'avoue ne pas avoir vu directement que tu me disais d'aller dans le faq) vu que la on bosse pas en local, de plus il ne m'affiche aucunes erreurs :/ ...

                    Fin bref déso de m'être emporter mais à la vue du tutoriel je pensais que tu voulais juste m'envoyer vers un tutoriel pour envoyer simplement des mails
                    Excuse moi
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 mars 2011 à 22:30:55

                      Mouais...moyen moyen.

                      Après c'est moi qui sait pas lire hein.

                      Sinon je connais un truc marrant, ça s'appelle google.

                      Voici une recherche on ne peut plus basique : http://www.google.fr/search?hl=fr&sour [...] urer+php.ini+

                      Et le premier lien sur lequel je tombe c'est : http://www.developpez.net/forums/d2766 [...] php-ini-mail/

                      Et oh, c'est marrant il semblerait que ça soit le même problème que toi, et que hô! ben il y a des choses dont ils parlent qui sont évoquées dans le tuto.

                      Mais comme je suis d'un bonté infinie, je te donne un lien : http://php.developpez.com/faq/?page=mail#envoi-mail
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 mars 2011 à 12:50:30

                        J'ai essayé ta solution et ça ne marche pas =/
                        J'ai un peu plus cherché et apparemment il faut installer PostFix (ce que j'ai fais) mais ça ne marche pas, je vais encore attendre 3 heures pour que le changement DNS se fasse mais sinon j'aurais besoin d'aide ^^

                        Si quelqu'un a une façon plus simple de faire qu'il me le dise (ou qu'il me dirige vers des tutoriel spécifiques) donc je le redis, je veux "juste" envoyé des mails depuis mon site avec la fonction mail() ^^ (ou du moins qu'elle marche :p)

                        Merci d'avance
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 mars 2011 à 19:21:50

                          @Cryde: CONTACT TON HEBERGEUR
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 mars 2011 à 19:56:04

                            Si tu dois seulement envoyer des mails installe seulement sendmail:

                            apt-get install sendmail dans le cas d'une debian.

                            Il faut peut-être aller décommenter une ligne dans le php.ini aussi si jamais
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 mars 2011 à 21:30:41

                              Quel ligne ? ^^

                              Merci de ton aide =)

                              Edit : Tu pense qu'avec sendmail ça sera suffisant ?
                              Une fois sendmail installer je ne dois rien faire de plus ?
                              Faut-il changer quelque chose au niveau du DNS ?

                              Le voici :
                              * 10800 IN A ip_de_mon_site
                              @ 10800 IN A ip_de_mon_site
                              @ 10800 IN MX 50 mon-site.com.
                              @ 10800 IN MX 10 mon-site.com.
                              www 10800 IN A ip_de_mon_site
                              smtp 10800 IN CNAME relay.mail.gandi.net.
                              webmail 10800 IN CNAME agent.mail.gandi.net.
                              pop 10800 IN CNAME access.mail.gandi.net.
                              imap 10800 IN CNAME access.mail.gandi.net.


                              Faut-il changer quelque chose ? Ou retirer quelque chose ? :)

                              Merci d'avance encore !
                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 mars 2011 à 23:36:46

                                Oui sendmail est suffisant si tu ne dois pas recevoir de mails.

                                Il n'y a rien à configurer pour le DNS car tu ne fais qu'envoyer des mails. A part peut-être une règle spf (en gros, tu spécifie qu'une IP (ton serveur en l'occurrence est une source légitime d'emails pour ton ndd)).

                                Ouvre ton php.ini avec nano et fais CTRL+W et recherche mail, il y a une ligne pour Windows et une pour Linux normalement...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  11 mars 2011 à 0:20:04

                                  Le php.ini j'ai mis ceci
                                  sendmail_path = /usr/sbin/sendmail -t -i

                                  (J'ai correctement installer installer sendmail sauf qu'il renvois une erreur quand je le restart ... "451 4.0.0 /etc/mail/sendmail.cf: line 106: fileclass: cannot open '/etc/mail/local-host-names': World writable directory")


                                  Mais ça ne marche pas =)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    11 mars 2011 à 20:24:42

                                    Tu dois mettre:

                                    sendmail_path = "/usr/sbin/sendmail -t -i"

                                    Si ça ne fonctionne toujours pas, regarde dans les logs d'erreur d'apache
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      12 mars 2011 à 2:21:06

                                      Encore merci de ton aide, j'ai modifié la ligne mais ça ne change rien, aucun mail envoyé, aucunes erreur sur la page d'envoi
                                      <?php
                                      if(mail('mon_mail@mail.com', 'sujet', 'message')) echo 'ok';
                                      

                                      Simple mais pratique pour tester :)

                                      A noter que la fonction me retourne "ok" ^^

                                      Je dois voir ou ça les logs d'erreurs apache ? (je suis vraiment nul sorry)
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        12 mars 2011 à 12:18:23

                                        Les logs sont dans
                                        /var/log
                                        Et pour apache, c'est dans le sous-répertoire apache...

                                        Mais s'il te renvoie ok, il est peu probable qu'il y ait une erreur dedans.

                                        Faut peut-être régler l'erreur que sendmail t'affiche...quel est le contenu de /etc/mail/local-host-names ?

                                        ls -la /etc/mail | grep local

                                        cat /etc/mail/local-host-names
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          12 mars 2011 à 14:15:05

                                          Encore un grand merci de ton aide !!!
                                          Voici les log (/var/log/mail.log) :
                                          Mar 12 13:00:13 (none) sendmail[6687]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:01:04 (none) sendmail[6692]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:01:13 (none) sendmail[6687]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:01:13 (none) sendmail[6687]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 106: fileclass: cannot open '/etc/mail/local-host-names': Group writable directory
                                          Mar 12 13:01:13 (none) sendmail[6739]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:02:04 (none) sendmail[6692]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:02:04 (none) sendmail[6692]: p2CD24NF006692: from=www-data, size=81, class=0, nrcpts=1, msgid=<201103121302.p2CD24NF006692@cryde>, relay=www-data@localhost
                                          Mar 12 13:02:04 (none) sendmail[6692]: p2CD24NF006692: to=xxx@gmail.com, ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30081, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]
                                          Mar 12 13:02:14 (none) sendmail[6739]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:02:14 (none) sendmail[6739]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 106: fileclass: cannot open '/etc/mail/local-host-names': Group writable directory
                                          Mar 12 13:02:14 (none) sm-mta[6749]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:02:17 (none) sm-msp-queue[6756]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:03:14 (none) sm-mta[6749]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:03:14 (none) sm-mta[6749]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 106: fileclass: cannot open '/etc/mail/local-host-names': Group writable directory
                                          Mar 12 13:03:17 (none) sm-msp-queue[6756]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:03:17 (none) sm-msp-queue[6759]: p2CD24NF006692: to=xxx@gmail.com, ctladdr=www-data (33/33), delay=00:01:13, xdelay=00:00:00, mailer=relay, pri=120081, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]
                                          Mar 12 13:05:33 (none) sendmail[6771]: My unqualified host name (cryde) unknown; sleeping for retry
                                          Mar 12 13:06:33 (none) sendmail[6771]: unable to qualify my own domain name (cryde) -- using short name
                                          Mar 12 13:06:33 (none) sendmail[6771]: p2CD6XEq006771: from=www-data, size=81, class=0, nrcpts=1, msgid=<201103121306.p2CD6XEq006771@cryde>, relay=www-data@localhost
                                          Mar 12 13:06:33 (none) sendmail[6771]: p2CD6XEq006771: to=xxx@gmail.com, ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30081, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]

                                          xxx@gmail.com étant mon adresse (masquée :) )


                                          "Faut peut-être régler l'erreur que sendmail t'affiche...quel est le contenu de /etc/mail/local-host-names ?"

                                          localhost
                                          cryde


                                          ls -la /etc/mail | grep local
                                          -rw-r--r--  1 root  smmsp    16 Mar 12 14:00 local-host-names



                                          Encore (je me répète) merci de ton aide =)

                                          EDIT : J'ai trouvé ça dans les logs Apache : sh: sendmail: not found !
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            12 mars 2011 à 16:54:34

                                            Ok bon, il faut modifier ton fichier /etc/hosts

                                            Il doit y avoir une ligne avec 127.0.0.1 localhost.localdomain localhost
                                            Il en faudrait une autre avec:
                                            IP cryde mon_nom_de_domaine

                                            Ou IP est l'ip de ton serveur et mon_nom_de_domaine, un nom de domaine valide cryde.be par ex si tu le possèdes. En gros, il faut qu'au nom de ta machine soit associé un nom de domaine.

                                            Redémarre sendmail et essaye à nouveau d'envoyer un mail
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              12 mars 2011 à 17:30:47

                                              Une fois redémarrer il m'affiche ceci : Restarting Mail Transport Agent (MTA): sendmail451 4.0.0 /etc/mail/sendmail.cf: line 106: fileclass: cannot open '/etc/mail/local-host-names': Group writable directory
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                12 mars 2011 à 19:09:09

                                                Bon après une petite recherche, il s'avère qu'il y a une option pour que sendmail arrête de se plaindre à ce propos mais il se plaint car il considère les permissions soit sur /etc/ soit sur /etc/mail comme dangereuses (en gros, n'importe qui semble pouvoir écrire).

                                                Peux-tu faire un :
                                                ls -l / | grep etc
                                                et:
                                                ls -l /etc/ | grep mail
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  12 mars 2011 à 19:46:15

                                                  "ls -l / | grep etc" : drwxr-xr-x 68 root root 4096 Mar 12 17:20 etc

                                                  et

                                                  "ls -l /etc/ | grep mail" :
                                                  drwxr-sr-x 7 smmta smmsp   4096 Mar 12 14:12 mail
                                                  -rw-r--r-- 1 root  root    1830 Feb  4 15:45 mailcap
                                                  -rw-r--r-- 1 root  root     449 Dec  8  2009 mailcap.order
                                                  -rw-r--r-- 1 root  root       6 Mar 12 12:25 mailname


                                                  Juste pour info au cas ou j'ai ça comme DNS :

                                                  ; TTL (Time To Live)
                                                  $TTL        604800
                                                  
                                                  ; Informations générales
                                                  @        IN        SOA        monsite.be. root.monsite.be. (
                                                                                3                ; Serial
                                                                           604800                ; Refresh
                                                                            86400                ; Retry
                                                                          2419200                ; Expire
                                                                           604800 )              ; Negative Cache TTL
                                                  ;
                                                  
                                                  ; Enregistrements du domaine, des sous-domaines et correspondances IP
                                                  @       10800 IN      A         92.000.00.000
                                                  www     10800 IN      A         92.000.00.000
                                                  @ 10800 IN MX 10 spool.mail.gandi.net.
                                                  @ 10800 IN MX 50 fb.mail.gandi.net.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    12 mars 2011 à 23:40:48

                                                    Dernière petite commande:
                                                    ls -ld /

                                                    Tu devrais avoir les permissions suivantes:
                                                    drwxr-xr-x 21 root root 4096 déc 25 12:46 /

                                                    Si le groupe est autorisé en écrite, retire la permission:
                                                    chmod g-w /
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      13 mars 2011 à 0:13:12

                                                      Ca marche !

                                                      Cependant, l'envois est très très lent (15secondes pour envoyer un mail)
                                                      Et je le reçois de www-data@cryde
                                                      Ce qui est assez rigolo ...

                                                      Un grand merci !! Tu as une idée pour la rapiditée ? :)
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        13 mars 2011 à 0:32:48

                                                        Regarde les logs apache.

                                                        As-tu modifié ton fichier /etc/hosts comme dit plus haut ? (poste le contenu ici éventuellement :) )
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          13 mars 2011 à 0:38:13

                                                          Dans les log (/var/log/mail.err) il me dis ça : Mar 12 23:37:14 (none) sendmail[9335]: My unqualified host name (cryde) unknown; sleeping for retry

                                                          Mais le mail est pourtant envoyé (mais lentement ^^^)

                                                          Le fichier host :

                                                          92.243.8.252 cryde music-all.be
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Comment configurer Debian pour envois mail

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown