Problème avec Cron et Paheko

Avec une freebox il faut ouvrir le port 25 (fermer par défaut).

Et si l’envoi des mails est compliqué, via la webadmin on peut changer le serveur SMTP d’envoi des mails…

Ok un petit récapitulatif : dans paheko j’ai testé la messagerie en envoyant plusieurs messages => des centaines de mails Cron dans la boite mail de mon PC

Cron paheko@cbhome [ -f //home/yunohost.app/paheko/data/association.sqlite] && /var/www/paheko/bin/paheko queue run --quiet
/bin/sh: 1: [: missing ]

Puis j’ai changé le smtp dans les paramètres de paheko.domain.tld avec le smpt free
c’était toujours la même erreur
@orhtej2 m’a donné une solution première upgrade => le message Cron a changé avec toujours des centaines de mails.

Cron <paheko@cbhome> [ -f /home/yunohost.app/paheko/data/association.sqlite ] && /var/www/paheko/bin/paheko queue run --quiet
Le module de base de données SQLite3 n'est pas disponible.

@orhtej2 a trouvé le problème, j’ai à nouveau upgradé paheko => arrêt des mails dans ma boite mail du PC, mais j’ai toujours plus de (3897 emails) dans la file d’attente Yunohost.

j’ai tenté de paramétrer un autre smtp externe avec smtp2go dans les paramètres paheko.domain.tld => c’est pareil les mails de paheko ne sortent pas

Je n’ai pas remis les paramètres smtp d’origine de paheko => perdu

Le port 25 de free est activé

Retour les commandes demandé

cat /var/www/paheko/config.local.php |grep smtp
const SMTP_HOST = 'mail.smtp2go.com';

cat /var/www/paheko/config.local.php |grep mail
 * Envoi des erreurs par e-mail
 * Si renseigné, un email sera envoyé à l'adresse indiquée à chaque fois qu'une erreur
 * Si "false" alors aucun email ne sera envoyé.
 * Loguer / envoyer par mail les erreurs utilisateur ?
 * formulaire dont le token CSRF a expiré, etc.) seront loguées et/ou envoyées par mail
 * - scripts/emails.php toutes les 5 minutes environ (envoi des emails en attente)
 * se connecte. Et les emails seront envoyés instantanément (ce qui peut ralentir ou
 * Désactiver l'envoi d'e-mails
 * Si positionné à TRUE, l'envoi d'e-mail ne sera pas proposé, et il ne sera
 * Les parties de l'interface relatives à l'envoi d'e-mail seront cachées.
 * ne permet pas l'envoi d'e-mails.
 * mail() de PHP
const SMTP_HOST = 'mail.smtp2go.com';
 * 25 = port standard pour connexion non chiffrée (465 pour Gmail)
 * Adresse e-mail destinée à recevoir les erreurs de mail
 * Si laissé NULL, alors l'adresse e-mail de l'association sera utilisée.
 * permettant de traiter les mails reçus à cette adresse.
 * Adresse e-mail expéditrice des messages (Sender)
 * Si vous envoyez des mails pour plusieurs associations, il est souhaitable
 * Mot de passe pour l'accès à l'API permettant de gérer les mails d'erreur
 * Cette adresse HTTP permet de gérer un bounce email reçu en POST.
 * C'est utile si votre serveur de mail est capable de faire une requête HTTP
 * de l'email avec les entêtes.
 * En alternative le serveur de mail peut aussi appeler le script
 * sera joint aux e-mails utilisant des fichiers PDF, conformément à la licence :

cat /home/yunohost.app/paheko/config.local.user.php |grep smtp
cat: /home/yunohost.app/paheko/config.local.user.php: No such file or directory

 cat /home/yunohost.app/paheko/config.local.user.php | grep smtp
cat: /home/yunohost.app/paheko/config.local.user.php: No such file or directory

cat /etc/yunohost/app/paheko/settings.yml | grep smtp
cat: /etc/yunohost/app/paheko/settings.yml: No such file or directory

cat /etc/yunohost/app/paheko/settings.yml | grep mail
cat: /etc/yunohost/app/paheko/settings.yml: No such file or directory

Alors quels paramètres ont été choisi pour configurer le smtp2go ? je veux dire par la le protocole et port… Est-ce que le port est bien ouvert ?

Peut-être qu’il faut juste du temps à paheko pour envoyer tous les mails, ça peut-être long…

Pour les paramètres d’origine (mais avec autant de mails ça semble compliqué) par défaut ce serait:

smtp_host=paheko.domain.tld
smtp_port=25
smtp_user=paheko
smtp_password=(à retrouver dans le fichier /etc/yunohost/app/paheko/settings.yml ?)
smtp_security=STARTTLS
mail_return_path=paheko@paheko.domain.tld
mail_sender=paheko@paheko.domain.tld

Ça fonctionne ce truc smtp2go ?? je vois une discussion mais qui parle de de spambot à ce sujet…

Du coup je viens de refaire un essai avec une adresse perso en .sfr de changement d’adresse d’envoi… j’ai du coup ouvert un port 465 pour utiliser le port 465 sur Yunohost (aussi sur la box du coup), mais dans mon cas j’utilise un vpn et ça a fonctionné…

Surtout, je voulais vérifier, les paramètres par défaut restent dans le fichier /etc/yunohost/apps/paheko/settings.yml au cas où…

j’ai essayé les commandes sqlite voici le résultat

sudo -u paheko sqlite3
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open association.sqlite
Error: unable to open database "association.sqlite": unable to open database file
sqlite> .tables
sqlite>

Au sujet de smtp2go je ne sais pas top c’était juste pour test un autre smtp,
oui j’ai le port 25 qui est ouvert
Merci pour les paramètre smtp paheko je vais les remplacer

Je pense qu’il faut être dans le dossier où se trouve la database, c’est à dire

cd /home/yunohost.app/paheko/data/
sudo -u paheko sqlite3
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open association.sqlite
sqlite> .tables
acc_accounts                        files_search_segments             
acc_accounts_balances               files_search_stat                 
acc_charts                          files_shares                      
acc_projects                        logs                              
acc_transactions                    mailings                          
acc_transactions_files              mailings_recipients               
acc_transactions_lines              modules                           
acc_transactions_links              modules_templates                 
acc_transactions_users              plugins                           
acc_years                           plugins_signals                   
api_credentials                     searches                          
compromised_passwords_cache         services                          
compromised_passwords_cache_ranges  services_fees                     
config                              services_reminders                
config_users_fields                 services_reminders_sent           
emails                              services_users                    
emails_queue                        users                             
emails_queue_attachments            users_categories                  
files                               users_files                       
files_contents                      users_search                      
files_search                        users_sessions                    
files_search_content                users_view                        
files_search_docsize                web_pages                         
files_search_segdir                 web_pages_versions                
sqlite> 

Dans l’interface de Paheko en admin, tu peux voir les erreurs, les mails qui sont dans les queue, les bases de données, etc…

A quel endroit exactement dans paheko, je trouve ces mails
j’ai juste trouvé ceci

Adresses rejetées

    Messages collectifs   Adresses rejetées

Il y a 18 messages dans la file d'attente, ils seront envoyés dans quelques instants.

Note : seules les adresses e-mail actuellement présentes dans une fiche de membre sont affichées ici.

Aucune adresse e-mail n'a été rejetée pour le moment. Cette page présentera les adresses e-mail invalides ou qui ont demandé à se désinscrire.

Ah zut… pour les commandes une coquille ,
c’est le dossier
/etc/yunohost/apps/paheko/settings.yml
où se trouve les données de l’installation

et pour le fichier de config personnel c’est
/home/yunohost.app/paheko/data/config.local.user.php

J’aurai du dire en corrigeant mes bourdes…

cat /var/www/paheko/config.local.php | grep SMTP
cat /var/www/paheko/config.local.php | grep MAIL

cat /home/yunohost.app/paheko/data/config.local.user.php |grep SMTP
cat /home/yunohost.app/paheko/data/config.local.user.php |grep MAIL

cat /etc/yunohost/apps/paheko/settings.yml | grep mail
cat /etc/yunohost/apps/paheko/settings.yml | grep mail

Il ne devrait rien y avoir dans /home/yunohost.app/paheko/data/config.local.user.php ou bien ce devrait être commenté avec devant //.

Apparemment il n’a que 18 mails a traiter, mais pas en erreur si je comprends bien…

Pour ce que j’expliquai sur les bases de données c’est dans Configuration => Fonctions Avancées.

Tu as un onglets erreurs, un onglets sql ou tu peux voir les tables dont la table email_queue…

Mais normalement paheko gère tout cela tout seul maintenant, à l’époque les mails qui ne partaient pas restaient dans la queue, mais ce bug a été réglé, voici le message lors d’un échange ça ce sujet (ça date)

Merci pour le retour, très utile. Nos serveurs SMTP ne renvoient jamais
une erreur 550 en direct, ils stockent et essaient ensuite d’envoyer,
donc je ne rencontrais pas ce genre d’erreur.

C’est corrigé dans le code de Paheko, maintenant s’il y a une telle
erreur l’adresse sera bien marquée comme invalide et aucun autre
message n’y sera envoyé. Ça sera dans la prochaine versio

Ok j’ai trouvé j’ai bien emails_queue id de 1 à 18
Entre temps j’ai remis en place smtp.free.fr dans config paheko
avec la config smtp originale paheko j’avais une erreur smtp
voici le résultat

sudo -u paheko php8.2 /var/www/paheko/bin/paheko  queue run --force
 /!\ PHP error
Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:ssl3_get_record:wrong version number
#0 .../include/lib/KD2/SMTP.php(171)
#1 .../include/lib/KD2/SMTP.php(171): stream_socket_client(string(22) "tls://s…, int(0), string(0) "", int(15))
#2 .../include/lib/KD2/SMTP.php(251)
#3 .../include/lib/KD2/SMTP.php(423): KD2\SMTP->rawSend(string(16) "pilote3…, array(1) {
  [0]=> …, string(576) "From: …)
#4 .../include/lib/Paheko/Email/Emails.php(698): KD2\SMTP->send(object(KD2\Mail_Mes…)
#5 .../include/lib/Paheko/Email/Emails.php(671): Paheko\Email\Emails::sendMessage(int(0), object(KD2\Mail_Mes…, bool(true))
#6 .../include/lib/Paheko/Email/Emails.php(385): Paheko\Email\Emails::send(int(0), string(40) "e3e809f…, array(3) {
  ["From…, string(193) "Pour v…, NULL, NULL, array(0) {
  }, bool(true))
#7 .../include/lib/Paheko/CLI.php(304)
#8 .../include/lib/Paheko/CLI.php(676): Paheko\CLI->queue(array(1) {
  [0]=> …)
#9 .../bin/paheko(15): Paheko\CLI->run(array(2) {
  [0]=> …)

Je pense que tu n’as pas la bonne config du smtp…

Pour free du devrait mettre
smtp.free.fr
nommail@free.fr
port 465
TLS
pour les adresses expéditeurs comme on veut (c’est pas clair là)
c’est l’adresse de retour des messages
et l’adresse de l’envoyeur

Du coup ça exige d’ouvrir le port 465 dans Yunohost en TCP et dans la freebox aussi pour l’IP du serveur…

Si c’est bien pris en compte on devrait voir les valeurs choisies avec ces commandes

cat /home/yunohost.app/paheko/data/config.local.user.php |grep SMTP
cat /home/yunohost.app/paheko/data/config.local.user.php |grep MAIL

et je veux bien que tu me dises si elles changes aussi ici

cat /etc/yunohost/apps/paheko/settings.yml | grep mail
cat /etc/yunohost/apps/paheko/settings.yml | grep mail

Mais peut-être en effet essaye d’abord de supprimer les messages dans la queue… ??

La version originale devrait fonctionner si les settings sont bien remplacés… mais il faut aussi que les DNS soient bien ajoutés dans le registar DKIM SPF et DMARC. par contre le mot de passe pour les valeurs par défaut du mail paheko@paheko.domain.tld sera la valeur de mail_pwd: xxxxxxxxxxxxxxxx

Par contre des la freebox ne donne pas un bon reverse DNS pour l’ IPv6, il vaut mieux n’utiliser que l’IPv4 pour l’envoi des emails…

Hummmm, je vois une erreur dans tout cela !! je viens de refaire un essai dans le config panel, mais ça n’a pas été pris en compte !!

Du moins sur une version Yunohost 12 je change des paramètres dans le panneau de webadmin, mais ça ne les prends pas en compte… C’est peut-être à cause de la version 12…

Car pour toi quand tu as essayé de configuré smpt2go, les paramètres étaient bien présents dans le fichier config.local.php

config smtp paheko dans YNH
Serveur SMTP : smtp.free.fr
port : 465
Nom d’utilisateur : *******@free.fr
Mot de passe : *********
Sécurité de la connexion TLS
Adresse e-mail expéditrice des messages : *****@free.fr (la même que Nom d’utilisateur) ?
Adresse e-mail expéditrice des messages : *****@free.fr (la même que Nom d’utilisateur) ?

Dans config paheko > Adresse e-mail de contact : *****@free.fr (la même que Adresse e-mail expéditrice des messages)

Changer le port 587 => 465 (le port 587 ne doit pas fonctionner bizarre, car free le donne pour configurer le smtp)
Déactiver ipv6 dans le paramètre mail yunohost
Activer port 465 dans parfeu yunohost
Activer port 465 dans freebox

Ok les 18 mails paheko son envoyé ;))
je reçois dans ma boite mail membre de paheto ****@sfr.fr tous les messages d’erreur de Cron plus que 3000 dans la file d’attente et ça diminue.

Voici les commandes

#cat /home/yunohost.app/paheko/data/config.local.user.php |grep SMTP
 * Hôte du serveur SMTP, mettre à false (défaut) pour utiliser la fonction
//const SMTP_HOST = '*************.free.fr';
 * Port du serveur SMTP
//const SMTP_PORT = 25;
 * Login utilisateur pour le server SMTP
//const SMTP_USER = 'paheko';
 * Mot de passe pour le serveur SMTP
//const SMTP_PASSWORD = '*******************************';
 * Sécurité du serveur SMTP
//const SMTP_SECURITY = 'STARTTLS';
 * Nom du serveur utilisé dans le HELO SMTP
//const SMTP_HELO_HOSTNAME = '**********.free.fr';
#cat /home/yunohost.app/paheko/data/config.local.user.php |grep MAIL
//const MAIL_RETURN_PATH = 'paheko@**********.free.fr';
 * l'adresse contenue dans MAIL_SENDER sera dans le From.
//const MAIL_SENDER = 'paheko@***********.free.fr';
#cat /etc/yunohost/apps/paheko/settings.yml | grep mail
mail_pwd: **************************
mail_return_path: *******@free.fr
mail_sender: ********@free.fr

Attention, pour Yunohost tu as toujours besoin du port 587 pour les mails :slight_smile: gardes ce port ouvert !

Je pense que du coup tu as compris la différence dans le fichier /etc/yunohost/apps/paheko/settings.yml qu’il y a entre

  • la valeur mail_pwd qui est le mot de passe de l’utilisateur de l’app paheko si c’est lui qui envoi les mails (même valeurs que celles commentées volontairement dans le le fichier /home/yunohost.app/paheko/data/config.local.user.php)
  • et la valeur smtp_password qui lui est le mot de passe de l’utilisateur mail @free.fr que tu as configuré.
  • Les valeurs qui seront prises en compte sont celles du fichier /var/www/paheko/config.local.php

Vu la quantité de mails, oui il faut certainement attendre, il doit y avoir des limites. Attention envoyer trop de mail est un risque d’être considéré comme spam, je pense que paheko gère du mieux qui le peux l’envoi petit à petit, là c’est comme si tu les envoyaient depuis ton adresse free…

Enfin si je comprends bien les mails ont fini par être envoyés (18 en fait) et le cron bloque des erreurs qui petit à petit diminue… En fait c’est 18 mails à des groupes de plusieurs utilisateurs d’où la quantité, c’est ça ?

À essayer peut-être ?? je ne sais pas dans quelle mesure ça peut avoir un impact avec celui du serveur smtp de Yunohost ?? Je sais que chez moi j’utilise un port 465 pour une adresse free… Si ça fonctionne comme ça autant laisser pour l’instant…

La file d’attente YNH est vide.
Je testerai plus tard le port 587, j’ai un peu boulot sur paheko, je suis trésorier de l’assoc.

Une autre question : peut-on utiliser la config smtp de paheko pour configurer le relai smtp dans Paramètres de YunoHost > Email > Activer le relais SMTP
J’ai aussi des problèmes de smtp avec yunohost et free (je n’ai pas de VPN)

Un grand merci à toi @rodinux pour ta patience et pour ces commandes que je ne connaissais pas et qui me serviront, et un merci à @orhtej2.

J’attends un peu pour activer Solution ?