IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Php, Mail et Https sous linux


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut Php, Mail et Https sous linux
    Bonjour à tous,

    Existe-t-il une option ou un truc que je n'ai pas vu pour envoyer un mail depuis une page PHP sous Https (Apache Ubuntu) ?

    Mon page page fonctionne bien lorsque je fais directement en ligne de commande (le mail part bien et je le reçois bien):

    > php -f test.php

    mais si j'utilise la page test.php depuis mon serveur web https là je n'ai aucune erreur php (j'ai qd même un retour False, je ne sais pas comment voir quelle est l'erreur),
    rien dans le mail.log (même pas une erreur) et je ne reçois rien.
    J'utilise ssmtp sous ubuntu.

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
     
    /**
     * send an email with params
     */
    function sendmymail($aTo, $aSubject, $aMessage) {
        $headers   = array();
        $headers[] = "MIME-Version: 1.0";
        $headers[] = "Content-type: text/html; charset=UTF-8";
        $headers[] = "From: PP <noreply@mon_domaine.com>";
        $headers[] = "Reply-To: Patent Pulse <noreply@mon_domaine.com>";
        $headers[] = "Subject: {$aSubject}";
        $headers[] = "X-Mailer: PHP/" . phpversion();
     
        return mail($aTo, $aSubject, $aMessage, implode("\r\n", $headers));
    }
     
    if (sendmymail('xxxx@mon_domaine.com', 'yeah', 'Message')) {
        print_r('ok');
    } else {
        print_r('ko');
    }
    Une idée ?

    D'avance merci,
    BM

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?php
     
    /**
     * send an email with params
     */
    function sendmymail($aTo, $aSubject, $aMessage)
    {
        $headers = array();
        $headers[] = "MIME-Version: 1.0";
        $headers[] = "Content-type: text/html; charset=UTF-8";
        $headers[] = "From: PP <noreply@mon_domaine.com>";
        $headers[] = "Reply-To: Patent Pulse <noreply@mon_domaine.com>";
        $headers[] = "Subject: {$aSubject}";
        $headers[] = "X-Mailer: PHP/" . phpversion();
     
        try {
     
            mail($aTo, $aSubject, $aMessage, implode("\r\n", $headers));
     
        } catch (Exception $e) {
            echo $e->getMessage();
        }
     
    }
     
    sendmymail('xxxx@mon_domaine.com', 'yeah', 'Message');

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Salut,

    Hélas aucune erreur n'apparaît, mon retour est "ko" et pourtant pas d'erreur.
    Toujours pas reçu de mail....

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    mail() est censé fournir un WARNING.
    Vérifie que tu as bien tous les types d'erreur PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Alors je viens de faire plusieurs essais:

    la première j'ai ajouté au début de mon script:

    // Reporte toutes les erreurs PHP
    error_reporting(-1);

    Résultats: toujours aucun message d'erreur....

    La seconde chose (pas utile mais bon), j'ai enlevé le fait que j'appelle la fonction sendmymail(), histoire d'avoir le moins de chose possible.
    et d'appeler directement mail dans mon catch.

    J'ai aussi testé sans le From: pour avoir celui par défaut de mail.

    J'ai défini une variable $foo = mail(....);
    puis un echo 'FOO vaut: ' . $foo;

    Le texte obtenu (donc je passe pas dans le catch !!!)
    FOO vaut:

    il n'y a rien dans $foo

    Hélas ces modifs n'ont pas résolu le problème.

    Est-ce que cela peut provenir d'une config dans php.ini ou ssmtp.conf

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Quelques infos supplémentaires. On sait jamais cela peut aider quelqu'un à trouver une réponse à mon problème....

    Quand j'envoie un mail en passant par
    >php -f test.php

    dans les logs j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Aug 26 12:32:18 ns376715 sSMTP[30778]: Creating SSL connection to host
    Aug 26 12:32:18 ns376715 sSMTP[30778]: SSL connection using RSA_AES_128_CBC_SHA1
    Aug 26 12:32:19 ns376715 sSMTP[30778]: Sent mail for xxx@mondomaine.com (221 2.0.0 Bye) uid=1001 username=xxx outbytes=692
    Je n'ai pas ces infos, j'ai aucune info lorsque je passe par le web....

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il est possible qu'en ligne de commande, tu utilises un autre php.ini et que celui utilisé par le serveur web soit mal configuré.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Y-a-til un moyen de connaître le contenu du php.ini que j'utilise depuis la ligne de commande et depuis le web ?

    un phpinfo pourrait me donner ces infos ? (désolé, je ne serai devant mon ordi possédant le source que dans quelques heures....)

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu peux afficher un phpinfo()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Me voilà de retour sur mon ordi !

    Alors voici un truc que je viens de voir avec un phpinfo()

    Depuis une ligne de commande j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Configuration File (php.ini) Path => /etc/php5/cli
    Loaded Configuration File => /etc/php5/cli/php.ini
    Depuis mon navigateur web:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Configuration File (php.ini) Path 	/etc/php5/apache2
    Loaded Configuration File 	/etc/php5/apache2/php.ini
    me reste plus qu'à trouver la différence entre celui de cli et celui de apache2 !!!

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le serveur SMTP surement
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    ok ça fonctionne !!!!

    j'ai mis en commentaire la ligne:

    sendmail_path=

    Merci à tous pour vos conseils qui m'ont aidé à trouver la solution !!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi du mail par crontab sous linux
    Par jamel_dhahri dans le forum Administration système
    Réponses: 1
    Dernier message: 19/06/2015, 16h05
  2. fonction mail en local sous linux
    Par javagirl08 dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2010, 14h07
  3. Envoyer un mail avec Xampp sous linux en local
    Par Umlist dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/06/2010, 19h24
  4. envoie de mail en c++ sous linux (serveur smtp)
    Par modafine dans le forum C++
    Réponses: 6
    Dernier message: 10/06/2008, 18h27
  5. Réponses: 1
    Dernier message: 16/05/2008, 08h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo