YunoHost-Apps / paheko_ynh

Paheko package for YunoHost
https://paheko.cloud
GNU Affero General Public License v3.0
3 stars 5 forks source link

Comment smtp server constants from default config file #55

Open 16arpi opened 6 months ago

16arpi commented 6 months ago

Problem

Le fichier config.local.php a des constantes non commentées, ce qui empêche de les modifier dans config.local.user.php. N'étant pas vraiment familier du PHP, peut-être je suis passé à côté d'une manière de les modifier...

Solution

La PR propose de commenter toutes les constantes liées à l'envoi de mails dans le fichier config.local.php

rodinux commented 6 months ago

La configuration ne vous a pas convenu ? Quelle configuration a mieux fonctionné pour vous ?

Peut-être aussi qu'il est possible d'ajouter celle par défaut dans le fichier config.local.user.php avec des explications...

rodinux commented 6 months ago

Par contre, ce n'est pas une bonne pratique de vouloir proposer un changement sur la branche master... Il faudrait pour commencer par le proposer sur la branche testing et changer son tag de version https://github.com/YunoHost-Apps/paheko_ynh/blob/13a886f0654a29e0e9163a4ff7777f1c1ecc6d41/manifest.toml#L8 avec version en "1.3.6~ynh3"

rodinux commented 6 months ago

Tu veux que j'ouvre un autre PR avec cette proposition qu'il faudra tester avant ? Je serais plutôt d'accord pour déplacer les configurations mail dans le fichier config..local.user.php sans les commenter par défaut.

rodinux commented 6 months ago

Autre gros soucis dans ce genre de bouleversement, les changements vont faire perdre la configuration mail a certains utilisateurs sans qu'ils ne comprennent pourquoi...

16arpi commented 6 months ago

Dsl pour la PR mal ficelée et orientée, je note la procédure pour la prochaine fois! Oui carrément pour migrer les constantes vers config.local.user.php, l'important est que l'utilisateur puisse les modifier donc ça serait le plus approprié.

Et pour répondre à ta question, on utilise un serveur d'envoi externe (smtp gmail) pour nos mails. Pour plein de raisons on souhaite pas passer par Yunohost pour nos mails.

Du coup je te laisse faire ? Ou je fais une nouvelle PR vers la branche testing ?

Merci!

3fla1416 commented 6 months ago

Bonjour, J'approuve entièrement d'avoir l'ensemble de la configuration dans le fichier config.local.user.php. Je suis aussi en train de modifier les valeurs SMTP en raison de problème de note très basse sur les spam test et empêche la bonne réception des messages sur gmail par exemple. (Je n'ai pas encore réussi ...) Et je suis donc obligé de modifier le fichier de config.local.php qui sera écrasé à la prochaine update. Pierre

rodinux commented 6 months ago

Je suis en train de travailler sur la branche testing... Plusieurs choses à prendre en compte.

C'est difficile de penser à tous les cas de figures des anciennes versions suivant les utilisateurs et des impacts de leur changements. Comme beaucoup d'utilisateurs un peu avancés, j'édite des fichiers à chaque mise à jour pour des configs persos sur certaines apps ou bien utilise des hooks (https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235). Mais force est de constater que pour cette application c'est mieux de pouvoir éditer la config des mails.

Pout on cas spécifique tu devrais désactiver radicalement les mails avec const DISABLE_EMAIL = true;

/**
 * Désactiver l'envoi d'e-mails
 *
 * Si positionné à TRUE, l'envoi d'e-mail ne sera pas proposé, et il ne sera
 * pas non plus possible de récupérer un mot de passe perdu.
 * Les parties de l'interface relatives à l'envoi d'e-mail seront cachées.
 *
 * Ce réglage est utilisé pour la version autonome sous Windows, car Windows
 * ne permet pas l'envoi d'e-mails.
 *
 * Défaut : false
 * @var bool
 */

//const DISABLE_EMAIL = false;
rodinux commented 6 months ago

Dsl pour la PR mal ficelée et orientée, je note la procédure pour la prochaine fois! Oui carrément pour migrer les constantes vers config.local.user.php, l'important est que l'utilisateur puisse les modifier donc ça serait le plus approprié.

Et pour répondre à ta question, on utilise un serveur d'envoi externe (smtp gmail) pour nos mails. Pour plein de raisons on souhaite pas passer par Yunohost pour nos mails.

Du coup je te laisse faire ? Ou je fais une nouvelle PR vers la branche testing ?

Merci!

Par contre là il s'agit encore d'une autre configuration, vous voulez configurer un relai avec le smtp de gmail ? Là je ne sais pas comment sont gérer dans le core de Yunohost les envois des apps quand est configurés avec en plus un relai smtp.

Vous me direz...

16arpi commented 6 months ago

Dsl pour la PR mal ficelée et orientée, je note la procédure pour la prochaine fois! Oui carrément pour migrer les constantes vers config.local.user.php, l'important est que l'utilisateur puisse les modifier donc ça serait le plus approprié.

Et pour répondre à ta question, on utilise un serveur d'envoi externe (smtp gmail) pour nos mails. Pour plein de raisons on souhaite pas passer par Yunohost pour nos mails.

Du coup je te laisse faire ? Ou je fais une nouvelle PR vers la branche testing ?

Merci!

Par contre là il s'agit encore d'une autre configuration, vous voulez configurer un relai avec le smtp de gmail ? Là je ne sais pas comment sont gérer dans le core de Yunohost les envois des apps quand est configurés avec en plus un relai smtp.

Vous me direz...

Il n'est pas question chez nous d'utiliser le relai smtp, on a une adresse gmail et on l'utilise pour nos envois automatiques de mails dans Paheko. On utilise littéralement le serveur smtp.gmail.com. Ça nous évite de configurer de serveur smtp sur yunohost.

De manière plus générale, il faudrait à terme pouvoir modifier toutes les constantes de configuration de paheko depuis config.local.user.php (dans l'idéal). Après tu nous diras si c'est compatible avec de vieilles implémentations de Paheko dans yunohost.

rodinux commented 6 months ago

Ok, j'ai validé mon travail. Par contre je tiens à préciser que après plusieurs tests sur une de mes instances, en changeant les valeurs des constantes avec plusieurs configs et en regardant les logs mails, les erreurs de paheko et la source des messages reçus, la config par défaut me semble la plus saine pour l'instant...

Exemple de source message reçu

Return-Path: <paheko@mypaheko.domain.tld>
Delivered-To: user@anymaildomain.tld
Received: from mypaheko.domain.tld (localhost [IPv6:::1])
    by domain.tld (Postfix) with ESMTPSA id 7E89C295A6A
    for <user@anymaildomain.tld>; Sat,  6 Apr 2024 20:50:01 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mypaheko.domain.tld;
    s=mail; t=1712429401; h=from:from:reply-to:reply-to:subject:subject:date:date:
     message-id:message-id:to:to:cc:mime-version:mime-version:
     content-type:content-type:
     content-transfer-encoding:content-transfer-encoding:list-unsubscribe:
     list-unsubscribe-post; bh=woCwZOVZSBun+IVhYkeuZKVqerBVLyw/Rtl7YTFlKo8=;
    b=jARlVhttplSMvP4R8JB3mvQXs+LJoq+Iy5tltHYvr3rL6fsH9jgzI2xGxPge36jGegKbOW
    10VS74CTkrQnzAhx17wIpUcH48wKK9ETWuGPrGSH4jz4mEvZUX5HD6eRpfX7Z0Ybg4JmUM
    JCACnuVcj0yGO2if7mC0KS4PdiKnPMQ=
From: "Admin Paheko" <paheko@mypaheko.domain.tld>
To: user@anymaildomain.tld
Subject: Essai Sat 06 Apr 2024 08:46:21 PM CEST
Reply-To: useradmin@anydomain.tld
Message-Id: <661199596f620.tab4h2kpju@wscgkoc.gkc>
List-Unsubscribe: <https://mypaheko.domain.tld/?un=eJEHFwsd9mkd9gcnrYK5G0Yglrw>
List-Unsubscribe-Post: Unsubscribe=Yes
X-Auto-Response-Suppress: All
16arpi commented 6 months ago

Merci beaucoup pour la PR! Dernière petite question : la constante USE_CRON ne devrait elle pas elle aussi être mise dans config.local.user.php ? À moins qu'elle soit nécessaire pour être en harmonie avec Yunohost ?

rodinux commented 6 months ago

Merci beaucoup pour la PR! Dernière petite question : la constante USE_CRON ne devrait elle pas elle aussi être mise dans config.local.user.php ? À moins qu'elle soit nécessaire pour être en harmonie avec Yunohost ?

C'est une recommendation de la documentation officielle https://fossil.kd2.org/paheko/wiki?name=Configuration Je pense que c'est mieux de le laisser...

16arpi commented 6 months ago

Merci beaucoup pour la PR! Dernière petite question : la constante USE_CRON ne devrait elle pas elle aussi être mise dans config.local.user.php ? À moins qu'elle soit nécessaire pour être en harmonie avec Yunohost ?

C'est une recommendation de la documentation officielle https://fossil.kd2.org/paheko/wiki?name=Configuration Je pense que c'est mieux de le laisser...

Je comprends mais si ça reste dans config.local.php personne ne pourra jamais modifier la constante. Ce serait possible de bouger ça dans config.local.user.php ? Comme ça elle reste par défaut mais modifiable.

rodinux commented 5 months ago

Merci beaucoup pour la PR! Dernière petite question : la constante USE_CRON ne devrait elle pas elle aussi être mise dans config.local.user.php ? À moins qu'elle soit nécessaire pour être en harmonie avec Yunohost ?

C'est une recommendation de la documentation officielle https://fossil.kd2.org/paheko/wiki?name=Configuration Je pense que c'est mieux de le laisser...

Je comprends mais si ça reste dans config.local.php personne ne pourra jamais modifier la constante. Ce serait possible de bouger ça dans config.local.user.php ? Comme ça elle reste par défaut mais modifiable.

Bonjour, ce n'est pas que la constante qui execute le cron, le cron est installer dans le script install

https://github.com/YunoHost-Apps/paheko_ynh/blob/a53d0a2e573df73c1d97de848ca6b6d73ee0cc25/scripts/install#L34-L39

Donc le passer à false va créer peut-être des erreurs...

rodinux commented 5 months ago

!testme

yunohost-bot commented 5 months ago

:sunflower: Test Badge

yunohost-bot commented 5 months ago

:bug: Test Badge

zamentur commented 1 month ago

A propos de la cron

Merci beaucoup pour la PR! Dernière petite question : la constante USE_CRON ne devrait elle pas elle aussi être mise dans config.local.user.php ? À moins qu'elle soit nécessaire pour être en harmonie avec Yunohost ?

Si la cron est désactivée, les actions de la cron seront lancées lorsqu'une page sera ouverte... Cette option semble là pour des paheko qui serait hébergés sur des mutualisé web, ce qui n'est pas le contexte de yunohost.

En conclusion, désactiver cette cron est fortement déconseillé et semble non pertinent dans le contexte de yunohost.

A propos de personnaliser la config

Le fait que paheko utilise des constantes dans son fichier de config, fait que la mécanique d'inclure un autre fichier de config ne peut pas permettre d'écraser une constante déjà définie.

Si on commente toutes les constantes dans le premier fichier de config et qu'on les déplace dans config.local.user.php on retombe sur le même soucis pour les mises à jour lorsque le fichier de configuration évolue.

Du coup, une solution est de définir les paramètres smtp via un panneau de configuration. Mais ce panneau ne va pas proposer toutes les constantes, seulement celles qui peuvent être vraiment pertinentes (à ce jour, seuls les paramètres smtp et l'optimisation php sont identifié).

rodinux commented 1 month ago

Du coup, une solution est de définir les paramètres smtp via un panneau de configuration. Mais ce panneau ne va pas proposer toutes les constantes, seulement celles qui peuvent être vraiment pertinentes (à ce jour, seuls les paramètres smtp et l'optimisation php sont identifié).

Release is comming soon !