Closed Albatros78 closed 3 years ago
D'expérience, je puis dire que ce n'est pas souhaitable. Avec la multiplication des billets se multiplient aussi les courriels. Ça crée donc une avalanches de courriels. Les messages deviennent si nombreux que l'usager n'en tient plus compte. Comme nous disons ici « Trop c'est comme pas assez.» C'est de là que vient le choix de n'aviser que la personne responsable du billet.
Pour arriver à accomplir ce que vous suggérez, il faudrait ajouter une case à cocher "me tenir au courant". Cela impliquerait la création d'un champ, voire d'une table dans le système. Ce n'est plus l'affaire de quelques minutes. Tout cela pour créer une avalanche de courriels que les usagers n'aimeront problablement pas .... pas sûr que ce soit génial!
Ok tu as raison !
Mais ajouter l'option pour que l'utilisateur puisse recevoir les emails serait intéressante !
Bonjour Albatros78,
je progressai de façon importante ces derniers jours, comme tu peux voir dans la section "Projects" ci-haut ( https://github.com/pixeline/bugs/projects/13 )
Pourrai-je compter sur toi pour tester ?
Hello Patrick,
Super...
Oui bien sûr... je regarderai les nouveautés et fonctionnement..
Axel
Merci. Je te ferai signe lorsque la première version sera disponible. Ce pourrait être dès la semaine courante.
no problem... :-)
Merci pour ces avancements... je crois que cela enrichit bien l'outil.
C'est bon. Il me reste une petite chose à faire dans ce projet.
La mise à jour de BUGS doit cette fois être faite via le système intégré ( cliquez sur Administration et suivez les instructions )
En fait ... deux chose me restent à compléter; voir les détails dans le projet.
On peut cliquer sur la bulle pour inverser notre choix de suivi. Vert est à côté d'un billet suivi, gris un non-suivi. You can click on the icon to toggle between "follow" and "no follow". Green when you follow, grey when not.
C'est peut être mieux que j'attende que tu es terminé ce qu'il reste pour avoir tout d'un coup .
Avec la mise à jour automatique depuis le menu administration, la base est aussi automatiquement mise à jour ?
Oui, la base est automatiquement mise à jour. Rien ne sera perdu, une nouvelle table sera créée - vide - pour les nouvelles fonctions.
Et puis non, ce n'est pas la peine d'attendre. S'il y a des bogues à corriger dans ce qui est déjà fait, ça servira à la suite en évitant de répéter les mêmes erreurs.
Pouvons-nous fermer ce billet ?
Hello Depuis les modifications pour le suivi l'ajout d'un ticket fonctionne mais plus l'envoi de l'email !!!! qui marchait avant.
Message: mail(): Bad Message Return Path Location: E:\xampp\htdocs\bugtracker\app\application\controllers\project\issue.php on line 67 Stack Trace:
Nous unissions ici les propos du présent billet à ceux du https://github.com/pixeline/bugs/issues/348 qui se rejoignent quant au contenu suite à l'évolution de chacun.
Ce qui m'étonne ici c'est de lire qui marchait avant
, car le message d'erreur pointe vers un problème de configuration du serveur dans le fichier config.app.php
Si rien n'a été changé dans ce dernier, comment comprendre qui marchait avant
?
Ceci vient du billet 384: `Concernant le souci de courriel, voici ce que j'ai trouvé: problème de configuration du serveur de sortie ( https://stackoverflow.com/questions/51404390/warning-bad-message-return-path-php#51408308 -en anglais. Il s'agit donc de la configuration que vous avez inscrite dans ./bugs/config.app.php aux lignes 94 à 119.
Concernant Unhandled Exception Message: Trying to access array offset on value of type null Location: E:\xampp\htdocs\bugtracker\app\application\models\user.php on line 173 C'est le fait d'une base vide. Je viens d'apporter un correctif dans mon code. Il sera disponible prochainement. En attendant, vous pouvez ajouter la ligne suivante au fichier, entre les actuelles lignes 167 et 168 if ($tag_diff === NULL) { $tag_diff['added_tags'] = array(); $tag_diff['removed_tags'] = array(); } si besoin.`
Hello Patrick
Le nouveau fichier app/application/controllers/project/issue.php est comem cela à la ligne 57
//Email process for assignee
$header = "";
$subject = sprintf(__('email.assignment'),$Issue_title,$project_nm);
$text = sprintf(__('email.assignment'),$Issue_title,$project_nm);
$text .= "\n\n";
$text .= sprintf(__('email.assigned_by'),\Auth::user()->firstname." ".\Auth::user()->lastname);
$text .= "\n\n";
$text .= sprintf(__('tinyissue.priority')." : ".__('tinyissue.priority_desc_'.$thisIssue[0]->attributes["status"]));
$text .= "\n\n";
$text .= __('email.more_url').Project::current()->to('issue')."/".$issue_num."";
mail($WhoAddr, $subject,$text,$header);
//End of email process for assignee
J'avais modifié le fichier comme ci dessous précédemment pou rrecevoir les emails correctement... Cel ane vient pas de la configuration du fichier config.app.php mail de la variable $header je pense qui est pas bien renseignée.
$text .= __('email.more_url').Project::current()->to('issue')."/".$issue_num."";
/* Debut AFS */
$text .= "<br><br>";
$text .= "Thank you for your attention";
$text .= "<br><br><br><br>";
$text .= "AF Software Team";
$text .= "<br><br>";
$text .= "<img src='https://www.afsoftware.fr/images/af-software.jpg' height=100px width=100px>";
/ $header = "From: [AFS BugTracker] no_reply@afsoftware.fr"; /
$header = 'From: [AFS BugTracker] no_reply@afsoftware.fr';
$header .= "Reply-To: [AFS BugTracker] no_reply@afsoftware.fr\n";
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"";
mail($WhoAddr, $subject,$text,$header);
/* Fin AFS */
// mail($WhoAddr, $subject,$text,$header);
//End of email process
En ajoutant cela dans la version actuelle et en créant un nouveau ticket j'ai désormais l'erreur suivante: !!
Unhandled Exception Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'PRO.title' in 'field list'
SQL: SELECT USR.email, CONCAT(USR.firstname, ' ', USR.lastname) AS user, USR.language, PRO.title FROM following AS FAL LEFT JOIN users AS USR ON USR.id = FAL.user_id LEFT JOIN projects PRO ON PRO.id = FAL.project_id WHERE FAL.project_id = 1 AND FAL.project = 1 AND FAL.user_id NOT IN (1,1)
Bindings: array ( ) Location: E:\xampp\htdocs\bugtracker\app\laravel\database\connection.php on line 263 Stack Trace:
Avec l'erreur précédente le ticket est crée et l'email arrive mais erreur ci dessus SQLSTATE[42S22]:
Merci Albatros78. J'y vois.
C'est fait. Nouvelle mise à jour incluant plusieurs correctifs liés à l'envoi de courriel et autres détails discutés ici et dans les billets 384 etc.
Je peux télécharger et tester ?
Oui, vous pouvez tester.
Il ne faut pas investir d'effort dans la définition des $header. Le mode d'émission de courriel actuel - dans cette section - ne respecte pas la norme laravel. Il faudra confier l'expédition du courriel à la fonction send_email de ./app/application/librairies/mail.php lorsque le contenu et les destinataires seront bien contrôlés.
Bon v1.84b
Même erreur d'envoi d'email (ticket crée) que précédemment. Si je change le code avec le $header comme ci dessous:
$text .= __('email.more_url').Project::current()->to('issue')."/".$issue_num."";
/* Debut AFS */
$text .= "<br><br>";
$text .= "Thank you for your attention";
$text .= "<br><br><br><br>";
$text .= "AF Software Team";
$text .= "<br><br>";
$text .= "<img src='https://www.afsoftware.fr/images/af-software.jpg' height=100px width=100px>";
/ $header = "From: [AFS BugTracker] no_reply@afsoftware.fr"; / $header = 'From: [AFS BugTracker] no_reply@afsoftware.fr'; $header .= "Reply-To: [AFS BugTracker] no_reply@afsoftware.fr\n"; $header .= "Content-Type: text/html; charset="iso-8859-1""; mail($WhoAddr, $subject,$text,$header);
/* Fin AFS */
// mail($WhoAddr, $subject,$text,$header);
//End of email process
Le mail est recu et le ticket est crée.... plus d'erreur SQL ! Mais le mail est envoyé à l'utilisateur assigné au projet... le follower ne recoit rien sur le nouveau ticket !
Super
Attention, ceux qui suivent le billet devraient recevoir un courriel, seulement si ce n'est pas l'auteur de la modification.
Nous y sommes presque. Encore une mise à jour au cours des dernières minutes.
Je prends un pause. Question de me changer les idées et de vous laisser tester. Merci de m'aider ainsi.
Je viens de télécharger la derniere...
Création d'un ticket.
Message: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing Location: E:\xampp\htdocs\bugtracker\app\application\controllers\project\issue.php on line 76
OK. Je crois que sendmail n'est pas installé sur mon serveur sous XAMPP. Je vais regarder cela et reviendrais vers toi plus tard. Il faut que je l'installe mais totu en gardant ma configuration actuelle ... Grrrrr
Je te laisse corriger les autres petites choses pendant ce temps
merci de ton temps.
Pourtant, voici le code actuel :
$boundary = md5(uniqid(microtime(), TRUE));
$optMail = Config::get('application.mail');
$passage_ligne = (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $WhoAddr)) ? "\r\n" : "\n";
$headers = 'From: "'.$optMail['from']['name'].'" <'.$optMail['from']['email'].'>'.$passage_ligne;
$headers = 'Reply-To: "'.$optMail['from']['name'].'" <'.$optMail['from']['email'].'>'.$passage_ligne;
$headers .= 'Content-Type: text/html; charset="iso-8859-1"';
$headers .= 'Mime-Version: 1.0'.$passage_ligne;
$headers .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"';
$headers .= $passage_ligne;
$subject = sprintf(__('email.assignment'),$Issue_title,$project_nm);
$text = sprintf(__('email.assignment'),$Issue_title,$project_nm);
$text .= "\n\n";
$text .= sprintf(__('email.assigned_by'),\Auth::user()->firstname." ".\Auth::user()->lastname);
$text .= "\n\n";
$text .= sprintf(__('tinyissue.priority')." : ".__('tinyissue.priority_desc_'.$thisIssue[0]->attributes["status"]));
$text .= "\n\n";
$text .= __('email.more_url').Project::current()->to('issue')."/".$issue_num."";
//Mail::send_mail($text, $WhoAddr, $subject);
mail($WhoAddr, $subject, $text, $headers.$passage_ligne);
Peut-être suffit-il de remplacer
$headers = 'From: "'.$optMail['from']['name'].'" <'.$optMail['from']['email'].'>'.$passage_ligne;
$headers = 'Reply-To: "'.$optMail['from']['name'].'" <'.$optMail['from']['email'].'>'.$passage_ligne;
Par les informations en dur que tu as fournies ci-haut:
$headers = 'From: MonAdresse@origin.com';
$headers = 'Reply-To: MonAdresse@retour.com';
Je préfère que vous n'ayez pas à jouer dans votre config. Ainsi, ça restera universellement fonctionnel ou dysfonctionnel, car peu d'usagers aiment jouer dans les configs.
Développement important dans ce dossier. Je viens de procéder à la supression de 51 lignes et l'ajout de seulement 11 lignes ( bilan de -40 lignes de code ). Je crois que ça simplifiera le tout et le rendra plus stable. Mais attendez avant de charger. Je dois encore faire 2-3 bricoles.
Ok, allez-y.
Pour ma part, je sors profiter du beau temps.
Hello Patrick,
Bonne nouvelle, voila j'ai configure sendmail dans mon serveur apache XAMPP. Ouffff...et cela fonctionne et mes autres applications envoient bien les emails aussi via mail()... Donc mon serveur web/apache se débrouille bien :-)
Lorsque je crée un ticket je reçois l'email... Cool on avance. :-)
Je n'ai rien changé dans BUGS ni dans config.app.php. Donc l'application reste universelle. Juste ajouter la librairie dans XAMPP et configurer le .INI associé... dans mon serveur en localhost.
Demain je regarde plus en détails ... Je télécharge le dernier package ZIP avant de refaire mes nouveaux tests ?
Bonne fin de journée... moi il est 21h ! Axel
Wow! Bonne nouvelle.
v1.84c installée Aucune email ne part, pas d'erreur, le ticket est crée ! et pas d'erreur de sendmail. pas de fichier log sur le sujet
Cela marchait hier avant 1.84c lorsque j'ai testé sendmail sur mon serveur avec 1.84b... Rien changé sur mon serveur web depuis hier juste recopier la v1.84c
J'ai commenté #389 car cela fonctionne ...merci pour la prise en compte de la remarque
C'est étrange. J'avais testé et ça semblait fonctionner. Je teste ce matin, suite à votre avis. Et - de fait - ça ne fonctionne pas. Je remets donc la version longue et "non-laravel" en attendant de trouver la version conforme à la norme.
Retour du courriel.
Je sais que ce ne sera pas encore au goût voulu ( pas de $headers ), mais je vous demande encore un peu de patience afin que je puisse intégrer la définition des $headers dans le fichier de config et que ceci soit modifiable.
Prêt pour tests.
installation de v1.84d
Le follower ne recoit pas le mail à la création d'un nouveau ticket par l'administrateur. Il recoit un email à l'ajout d'un commentaire dans un ticket par l'administrateur
Vous pourrez avoir accès à une nouvelle version demain. J'y travaillerai aujourd'hui. Plusieurs changements sont en cours:
Merci Patrick pour tous ces efforts :-)
Mise à jour majeure. Toute la gestion du courriel est modifiée.
Ce n'est pas fini, car de petits changements à un billet entraînent une pluie de courriels, mais ça progresse très bien.
Vous verrez aussi la page "Admnistration" comporte de nouveaux éléments. L'enregistrement des modifications n'est pas encore activée dans le processus, je dois vérifier des détails. Le fichier config.app.php comportera dorénavant quatre champs supplémentaires. Il se peut - de ce fait - que l'envoi de courriel se bloque. Si tel est le cas, voyez les ajouts au config.app.php dans celui qui s'appelle ...example Les champs sont: replyTo ->name replyTo -> email intro bye
Lignes 99 est suivantes:
'replyTo' => array(
'name' => 'Autre nom de retour',
'email' => 'adresse@serveur.net',
),
Aux lignes 131 et 132:
'intro' => 'Bonjour {first},',
'bye' => 'Au plaisir.'
Hello,
J'ai ajouté dans mon config.app.php:
'mail' => array(
'from' => array(
'name' => '[AFS BugTracker]',
'email' => '<no_reply@afsoftware.fr>',
),
'replyTo' => array(
'name' => 'Your E-Mail Name',
'email' => 'name@domain.com',
),
et aussi :
'plainHTML' => 'multipart/mixed',
'linelenght' => 80
/*
* Every emails you'll send from here will start by intro and end by bye
* Use those to include the recepient values:
* - {first} for his first name
* - {last} for his last name
* - {full} for his full name ( first name and last name )
*/
'intro' => 'Hello {first},',
'bye' => 'Bye.'
),
Configuré comme cela, je n'ai pas la page de login. J'ai mis en commentaire / 'intro' => 'Hello {first},', 'bye' => 'Bye.' /
et la page de login est OK.
Aucune email pour la création d'un ticket ou ajout d'un commentaire. Aucun message d'erreur dans l'application et pas de log dans sendmail
:-(
En cliquant sur le menu administration j'ai:
Undefined index: intro Location: E:\xampp\htdocs\bugtracker\app\laravel\view.php(353) : eval()'d code on line 116
Bonjour Albatro78,
il manque une virgule au bout de la ligne
'linelenght' => 80
qui devrait se lire :
'linelenght' => 80,
en ajoutant cette virgule, vous devriez pouvoir ôter le commentaire des lignes 'intro' et 'bye'.
OK j'ai remis la virgule. C'est bon maintenant et la page d'administration s'affiche...
Pas d'emails !!!
mais pad d'email ... je n'ai rein mis à jor sur la page juste un affichage ... C'est cool de pouvoir faire cela... Merci
Bon je viens d'essayer une mise à jour... tout est rouge et le bouton ne fait rien :-)
Restons ici concentrés sur l'envoi de courriels
Assurons-nous ici de voir les icônes changer de couleur après un clic activant ou désactivant le suivi d'un billet ou d'un projet.
Il y eut un grand bouleversement du code hier. La seule manière de suivre l'évoluation de tout cela est de charger entièrement le tout dernier ZIP
Il y a trois chantiers en marche actuellement, nous aurons un billet par
État de la situation sur serveur de développement:
Émission d'un courriel, celui-ci reçu à bon port lors de ...
Les fichiers modifiés ce soir seront en ligne dans quelques minutes.
v1.84f installée
1- la création d'un billet ----> not OK 2 - l'ajout d'étiquette ---->etiquette je ne comprends pas . tag...pour tag . ---> OK reçu 3 - le retrait d'étiquette ----> pour tag ---> OK reçu 4 - la rédaction d'un commentaire ----> OK reçu 5 - l'ajour d'un fichier ----> OK reçu 6 - la fermeture d'un billet ----> OK reçu 7 - un changement de projet d'un billet ---> OK reçu 8 - un changement de responsable du billet ----> fonctionnel
Si fonction Assigned to pour changer d'utilisateur, j'ai l'erreur suivante: Message: Undefined variable: text Location: E:\xampp\htdocs\bugtracker\app\application\models\project\issue.php on line 347
9 - la modification d'un projet ---> Not OK (j'ai renommé le projet)
Super travail... cela devient beaucoup mieux... Merci
Hello Patrick,
Lorsque l'administrateur ajoute un ticket ou un commentaire ne serait il pas possible d'envoyer un email à tous les utilisateurs qui suivent le projet, pour prévenir d'une modification (comme Github le fait) dès qu'une personne modifie ou ajoute quelque chose.
Cela fonctionne lorsque l'utilisateur ajoute un commentaire, l'administrateur reçoit un email !
Merci