top of page

Monica PRM n'envoie pas les rappels par e-mail - Comment résoudre ce problème

Dernière mise à jour : 10 mars

Dans une mise à jour récente de mon guide sur l'installation de Monica en utilisant Docker sur Unraid, quelques utilisateurs ont signalé avoir rencontré un problème où les rappels par e-mail n'étaient pas envoyés et j'ai également eu le même problème. Ce problème, suivi sur le GitHub de Monica sous le numéro #4178, a une solution simple que je vais partager avec vous aujourd'hui.


Monica
Monica

L'essentiel de la solution implique d'exécuter la tâche cron dans un conteneur Docker dédié. Ci-dessous, j'ai partagé les configurations des fichiers Docker-compose et .env que j'utilise sur mon serveur Unraid. Cette architecture résout le problème, assurant que vMonica envoie les rappels par e-mail comme prévu.


Docker-compose File


🆕 Afin de copier/coller/télécharger plus facilement ce code, j'ai créé un repository dédié aux ressources de mon blog sur github. Voici le lien des fichiers docker-compose.yml et .env de cet article :


Voici le fichier docker-compose.yml :


version: "3.9"

services:
  app:
    image: monica
    env_file: .env
    depends_on:
      - db
    ports:
      - 8181:80
    volumes:
      - /mnt/user/appdata/monica-webapp:/var/www/html/storage
    restart: always

  cron:
    image: monica
    env_file: .env
    restart: always
    volumes:
      - /mnt/user/appdata/monica-webapp:/var/www/html/storage
    command: cron.sh
    depends_on:
      - db

  db:
    image: mariadb:11
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=true
      - MYSQL_DATABASE=monica
      - MYSQL_USER=XXXXXXXXXXXXXXXXX
      - MYSQL_PASSWORD=XXXXXXXXXXXXXXXXXXX
    volumes:
      - /mnt/user/appdata/monica-db:/var/lib/mysql
    restart: always

  adminer:
    image: adminer
    restart: always
    ports:
      - 8282:8080

Environment File (.env)

Et voici le fichier de configuration .env :


APP_ENV=local
APP_DEBUG=false

# The encryption key. Must be 32 characters long exactly.
# Use `echo -n 'base64:'; openssl rand -base64 32` to generate a random key.
APP_KEY=XXXXXXXXXXXXXXX

# The URL of your application.
# APP_URL=http://localhost

# Set trusted proxy IP addresses.
# To trust all proxies that connect directly to your server, use a "*".
# APP_TRUSTED_PROXIES=

# Database information
# DB_CONNECTION=mysql
DB_HOST=db
DB_DATABASE=monica
DB_USERNAME=XXXXXXXXXXXX
DB_PASSWORD=XXXXXXXXXXXXXXXXXXXXX

# Mail credentials used to send emails from the application.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.yourmailservice.com
MAIL_PORT=587
MAIL_USERNAME=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MAIL_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MAIL_ENCRYPTION=tls
# Outgoing emails will be sent with these identity
MAIL_FROM_ADDRESS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MAIL_FROM_NAME=Monica

LOG_CHANNEL=stderr

CACHE_DRIVER=database
SESSION_DRIVER=database
QUEUE_DRIVER=sync

Note importante: Assurez-vous de remplacer les espaces réservés XXXXXXXXXXXXXXX par vos véritables informations pour les identifiants de la base de données, la clé de l'application, la configuration du service de messagerie, etc. Sans cela, l'appli ne fonctionnera pas correctement ou les emails de rappel ne fonctionneront pas...


En configurant le service cron dans un conteneur séparé, nous assurons que les tâches cron nécessaires pour envoyer les rappels par e-mail sont exécutées de manière fiable.


Si vous avez suivi mon guide précédent sur la configuration de Monica sur Unraid et rencontré ce problème, la mise en œuvre de la solution ci-dessus devrait permettre à vos rappels par e-mail de fonctionner sans problème. Pour une discussion plus approfondie ou si vous rencontrez d'autres problèmes, n'hésitez pas à visiter la page du problème GitHub de Monica ou à me contacter via le formulaire "Contactez-moi".


Enjoy 😎


AlexIn Tech

36 vues
bottom of page