J'ai plus l'habitude de travailler sous Linux avec l'utilisation de CRON pour automatiser des tâches planifiées. Là j'essaye de le faire sous une environnement Window Server 2018

Planifier l'éxécution d'un script php pour un envoi de mail automatisé sous Windows Server 2019

Pour un client, j'aimerais grâce à des informations en BDD et l'utilisation de la librairie phpmailer, envoyer un mail à des destinataires qui n'ont pas répondu à un questionnaire hebdomadaire.

  • Mon script php fonctionne bien en direct sur ma plateforme web, les mails sont bien envoyés.
  • Mon script fonctionne également bien directement via la console.
  • par contre lorsque je le planifie avec le gestionnaire de tâche de Windiws server 209, il ne se passe rien.

La tâche à l'air de fonctionner correctement mais pas d'nevoi de mail

Je ne vois pas de souci de droits ou d'autorisation. L'historique de tâche me dit que tout s'est bien déroulé.

Merci d'avance.
JediDev

6 réponses


JediDev
Auteur
Réponse acceptée

J'avais mes path d'accès à mes fonctions en relatifs alors qu'ils fallaient les mettre en absolu pour le CRON puisse fonctionner.
Merci de votre aide.
JediDev

Hello,

  • est-ce que tu a des infos dans l'observateur d'évenements ?
  • est-ce que ça fonctionne si tu execute la tâche manuellement ?
  • est-ce que tu execute le script directement via la tâche ou ça passe par un batch ou un powershell ?
JediDev
Auteur

Bonsoir Soundboy39,

1) Ci-dessous les informations que j'ai dans l'historique. Pas de message d'erreur.
Le Planificateur de tâches a démarré l’instance
Le Planificateur de tâches a lancé l’action « C:\wamp64\bin\php\php8.0.26\php.exe » dans l’instance
Le Planificateur de tâches a terminé la tâche
Le Planificateur de tâches a terminé l’instance

2) Oui en 'manuel cela fonctionne très bien, en web ou via le powershell

3) Script php en direct.

Merci
JediDev

Hello :)

Alors si tu as access au serveur Windows tu peux tenter ça https://docs.active-directory-wp.com/Usage/How_to_add_a_cron_job_on_Windows/Scheduled_tasks_and_cron_jobs_on_Windows/index.html#using-powershell

En gros tu enregistres la Task depuis powershell de Windows Server, eeet c'est tout, c'est enregistré (dans l'article remplaces cmd.exe par php ton_script_a_cronter.php et le daily at par la période que tu veux)

JediDev
Auteur

Merci popotte,
je vais tenter ta méthode ;-)

Avec plaisir :)