Impossible d'envoyer des mails avec cron et phpmailer

Accessvision -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai fait un scripte php qui envoie des mails, quand je l'exécute dans le navigateur il fonctionne, mais quand je l'exécute avec une tâche cron je ne reçois pas de mails, et l'e-mail de cron ne m'indique pas d'erreur.
Quelqu'un a-t-il déjà eu ce problème?

Configuration: Windows / Chrome 98.0.4758.102

6 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Comment le lances-tu via cron ?
    0
  2. accessvision
     
    Bonjour,
    Voici mon code cron
    30 13 * * sun /usr/local/bin/php /home/monutilisateur/agenda/envoi.php
    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Je ne connais pas la commande "sun", tu as installé un paquet spécifique ?
      Ou tu veux dire "Sunday", auquel cas il faut utiliser la valeur numérique,
      0 - Sun Sunday
      1 - Mon Monday
      2 - Tue Tuesday
      3 - Wed Wednesday
      4 - Thu Thursday
      5 - Fri Friday
      6 - Sat Saturday
      7 - Sun Sunday
      0
  3. accessvision
     
    J'ai mis sun pour dimanche, j'ai aussi essayé avec 0 et 7, à chaque fois la tâche s'exécute correctement, mais le mail n'arrive jamais
    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Pour voir la cause, tu peux faire un truc du genre :
      .. /usr/local/bin/php /home/monutilisateur/agenda/envoi.php 1>/tmp/out.txt 2>/tmp/err.txt

      Dans /tmp/out.txt tu as la sortie du script
      Dans /tmp/err..txt tu as la sortie d'erreur (variable non déclarées, erreur d'import, ...)
      0
  4. Accessvision
     
    Bonjour,
    J'ai suivi vos indiquations, et lors de l'exécution de la tâche, il n'est rien inscrit dans les fichiers.
    J'en suppose donc qu'il n'y a pas de réel erreur de la part de cron
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    A la place du nom du jour essayer le numéro.
    Sinon, mettre un
    echo "test" > /tmp/test.txt
    en début de script pour voir si le fichier se créé (si oui, c'est que le script s'execute, sinon c'est qu'il ne se lance pas)
    0
  7. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Il faudrait activer le mode debug de phpmailer et bien penser aussi à activer l'affichage des erreurs php
    => Pour les erreurs php.. voir ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    => Pour le debug de phpmailer
    commence par ça :
    $mail->SMTPDebug  = 2; // enables SMTP debug information (for testing)
                           // 1 = errors and messages
                           // 2 = messages only
    


    Il faudrait aussi que tu testes l'exécution du script via la ligne de commande directement ( sans attendre le passage de la cron..)
    pour ça, il te suffit de lancer ta commande dans le terminal :
    /usr/local/bin/php /home/monutilisateur/agenda/envoi.php
    

    et regarder ce que ça t'affiche.

    Bien entendu, si tu pouvais ajouter, dans ton script envoi.php quelques echo / var_dump histoire d'afficher un peu d'infos sur le déroulement de ton script ça serait un plus non négligeable...
    Nous montrer ton code php également .. car après tout .. ici tu es dans le forum PHP .. et on y traite d'avantage les questions/soucis de code plutôt que le fonctionnement ou non d'une tâche cron ( qui relève du système d'exploitation et non du langage.. )

    0