[3.0.5] Envoie de mail depuis un ticket

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Donc, je me suis attaqué aux variables et j'ai peut-être quelque chose ...

Dans le fichier "message.php", servant pour l'envoie de mail, celui-ci faisait appel à des variables situées dans le fichier "parameters.php". J'ai constaté que le fichier "message.php" fait appel à une variable "[mail_smtp]", variable que je ne retrouve pas dans mon fichier "parameters.php".

Voici comment se présente mon fichier parameters.php pour la partie qui m'intéresse(avec donc "mail_qch" en nom) :

Code : Tout sélectionner

//initialize variables 
if(!isset($extensionFichier)) $extensionFichier = '';
if(!isset($id_)) $id_ = '';
if(!isset($logo)) $logo = '';
if(!isset($filename)) $filename = '';
if(!isset($mail_auto)) $mail_auto = '';
if(!isset($user_advanced)) $user_advanced= '';
if(!isset($mail_auth)) $mail_auth= '';
if(!isset($mail_secure)) $mail_secure= '';
if(!isset($nomorigine)) $nomorigine = '';
if(!isset($action)) $action = '';
if(!isset($_POST['submit_general'])) $_POST['submit_general'] = '';
if(!isset($_POST['submit_connector'])) $_POST['submit_connector'] = '';
if(!isset($_POST['submit_function'])) $_POST['submit_function'] = '';
if(!isset($_POST['mail_username'])) $_POST['mail_username'] = '';
if(!isset($_POST['mail_password'])) $_POST['mail_password'] = '';
if(!isset($_POST['mail_secure'])) $_POST['mail_secure'] = '';
if(!isset($_POST['user_advanced'])) $_POST['user_advanced'] = '';
if(!isset($_POST['mail_auth'])) $_POST['mail_auth']= '';
if(!isset($_POST['mail_auto'])) $_POST['mail_auto']= '';
if(!isset($_POST['mail_newticket'])) $_POST['mail_newticket']= '';
if(!isset($_POST['mail_newticket_address'])) $_POST['mail_newticket_address']= '';
if(!isset($_POST['mail_link'])) $_POST['mail_link']= '';
Dans cette première partie, je ne voie pas de "mail_smtp", mais comme je n'y connais rien et que je suis mauvais en programmation developpement et cie, je ne sais pas si c'est une erreur ou non.

Code : Tout sélectionner

//update general tab
	$requete = "UPDATE tparameters SET 
	company='$_POST[company]',
	server_url='$_POST[server_url]',
	maxline='$_POST[maxline]',
	mail_smtp='$_POST[mail_smtp]',
	mail_secure='$_POST[mail_secure]',
	mail_username='$_POST[mail_username]',
	mail_password='$_POST[mail_password]',
	mail_txt='$_POST[mail_txt]',
	mail_cc='$_POST[mail_cc]',
	mail_from_name='$_POST[mail_from_name]',
	mail_from_adr='$_POST[mail_from_adr]',
	mail_color_title='$_POST[mail_color_title]',
	mail_color_bg='$_POST[mail_color_bg]',
	mail_color_text='$_POST[mail_color_text]',
	mail_link='$_POST[mail_link]',
Dans cette seconde partie, il existe belle et bien une variable "enregistrée" nommée "mail_smtp".
Ainsi, ne sachant pas si cela est normal, je vais rajouter une variable dans la partie du haut, voir ce que ça donne. Partant dans l'inconnu, je ne m'attend pas à du concret.

EDIT : en repprenant ce qui a été fait par Flox, j'ai rajouté ceci dans la première partie du code que je vous ai fourni précédemment : if(!isset($_POST['mail_smtp'])) $_POST['mail_smtp'] = '';
Cela ne change malheureusement rien, j'ai toujours le problème du "Could not connect to SMTP host".

Merci d'avance.
Cdt.
bruno
Gsup LEVEL 4
Messages : 122
Enregistré le : ven. 17 mai 2013 09:29
Localisation : Montpellier

Bonjour,

Il va falloir attendre le chef.
De mon coté, l'envoie d'un mail marche très bien en 3.0.5 mais sous un environnement linux, peut-être un soucis en version windows ! mais je n'ai pas essayé.

Bruno
Serveur: OS: CentOS 6.5 | Apache: 2.2.26 | Mysql: 5.5.39 | PHP: 5.5.15 | GestSup : 2.9 (prod.) et 3.0.9 (test et debug) - Administrateur Système et Réseaux.
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Bonjour,

Ouaip, mais ceci dit, je continue mes recherches, et certaines variables me paraissent bizarre...

Dans le fichier message.php, on trouve la variable :
$mail->Host = "$rparameters[mail_smtp]";

Que j'aurai plutôt écrit comme ça :
$mail->Host = $rparameters['mail_smtp'];

On retrouve la même variable dans admin\mail.php.

De plus, le chemin indiqué dans ces deux fichiers pour PHPMailer est :
require("PHPMailer_v5.1/class.phpmailer.php");

Que j'ai remplacé par ce qui suit :
require("c:\wamp\www\gestsup3\components\PHPMailer_v5.1\class.phpmailer.php");

Tout ce dont je parle ici, a été testé encore et encore mais en vain. Donc j'me plante sans doute quelque part et peut-être que les fichiers de base sont tous bons, ce qui impliquerait que mon problème est ailleurs encore.

Cdt.
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Bonjour,

A tout hasard, Bruno, pourriez vous, étant donné que l'envoie de mail fonctionne chez vous, me fournir les différents fichiers de configuration relatifs au SMTP ? Tous ceux sur lesquels vous avez éffectué des modifications.

Peut-être que cela me permettrait d'avancer dans la résolution de mon problème.

Merci d'avance.

Cdt.
bruno
Gsup LEVEL 4
Messages : 122
Enregistré le : ven. 17 mai 2013 09:29
Localisation : Montpellier

Bonjour,

Le soucis c'est que moi c'est une installation linux. Il faudrait que je prenne le temps de tester chez moi sur une solution wamp, qui sera plus prêt de ce que vous avez.

Cordialement,
Bruno
Serveur: OS: CentOS 6.5 | Apache: 2.2.26 | Mysql: 5.5.39 | PHP: 5.5.15 | GestSup : 2.9 (prod.) et 3.0.9 (test et debug) - Administrateur Système et Réseaux.
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Bonjour,

Que ce soit du Linux ou du Windows, les langages SQL et PHP restent les mêmes, donc au moins pour mettre hors de cause une éventuelle erreur dans mes fichiers de GestSup, les vôtres peuvent mettre utiles.

C'est vous qui voyez, mais ça me permettrait de comparer avec une config qui fonctionne, Linux ou non.

Merci.

Cdt.
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vous re-essayer sur gmail car cela devrai déja fonctionner si le port 465 est ouvert sur votre firewall:

suivez ces paramètres:
http://gestsup.fr/forum/viewtopic.php?f ... +host#p840

cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Bonjour Flox,

Le fait est que le serveur hébergeant GestSup est destiné à l'interne, et uniquement l'interne de l'entreprise. Il ne dispose donc d'aucun accès Internet et même si c'était le cas, il ne dispose pas des habilitation nécessaire pour utiliser Internet.

Même sachant ça, cela ne devrait pas poser de problème pour l'envoie de mail en Interne uniquement, qui fonctionne très bien depuis l'autre appli web hébergée sur ce serveur, ou encore depuis le script php de PHPMailer.

Par ailleurs, en passant les pages php dans un deboggeur, j'ai pu constater qu'une variable était "undefined" (de souvenir, aillant fait ça en fin de journée je n'ai pas tout noté en détail). Peut-être serait-ce une piste? Je vous tiendrai au courant/

Cdt.

EDIT : comme je l'ai dit, j'ai donc analysé via phpDesigner, les pages : index.php, connect.php, preview_mail.php et mail.php. Pour les pages index et preview_mail, aucune erreur de ressort. Cependant, j'obtiens les erreurs suivantes sur les pages preview_mail et connect (sachant que celle obtenue dans la page connect me parait très bizarre vu que la bdd se met bien à jour lorsque j'effectue des modifications). A noter que pour la page mail.php, toutes les fonctions qui suivent sur le screen, présentent la même erreur d'après phpDesigner (juste qu'ici, le logiciel s'est arreté à la première) :
Fichiers joints
Page mail.php
Page mail.php
Capture.JPG (86.44 Kio) Vu 8213 fois
Page connect.php
Page connect.php
Capture1.JPG (46.63 Kio) Vu 8213 fois
mrkr
Gsup LEVEL 1
Messages : 29
Enregistré le : lun. 20 janv. 2014 14:59

Bonjour,

Après de nombreuses recherches dans le code des pages, j'abandonne cette piste qui dépasse mes compétences en la matière.

Seulement, en activant l'option debug de class.phpmailer.php, lorsque que je tente l'envoie d'un mail, j'obtiens l'erreur suivante :

Code : Tout sélectionner

SMTP -> ERROR : Failed to connect to server : une tentative d’accès à un socket de manière interdite par ses autorisations d’accès a été tentée. (10013)
Ce qui traduit par Microsoft nous donne ceci :

Code : Tout sélectionner

WSAEACCES   10013	Permission denied.
An attempt was made to access a socket in a way forbidden by its access permissions. An example is using a broadcast address for sendto without broadcast permission being set usingsetsockopt(SO_BROADCAST).
Another possible reason for the WSAEACCES error is that when the bind function is called (on Windows NT 4.0 with SP4 and later), another application, service, or kernel mode driver is bound to the same address with exclusive access. Such exclusive access is a new feature of Windows NT 4.0 with SP4 and later, and is implemented by using the SO_EXCLUSIVEADDRUSEoption.
NT4 n'étant pas utilisé, celui-ci n'est pas la cause du problème.
Donc cela mettrait ma configuration en cause (qui pourtant fonctionne très bien sur VDocOpen). Ou encore le systême d'envoie de mail qui utilise le BroadCast mais n'étant pas autorisé à le faire.
Seulement sur le forum Apache, j'ai également trouvé que cette erreur pourrait être liée à la cohabitation entre IIS et Apache.

Le problème dans tout ça, est que ça fait beaucoup de "peut-être".
Comme m'avait proposé Bruno, le script PHP lui fonctionnait très bien pour l'envoie de mail (pas celui de GestSup, mais celui de test fourni dans PHPMailer). Et ce, en l'executant depuis le serveur. Tout ça ne m'aide pas à trouver la source du problème.

Enfin voilà, tout ça complique les choses vu la galère que c'est dans cette entreprise au niveau informatique.

@Flox : j'ai testé la config Gmail que vous m'avez transmise il y a peu, mais pas depuis le serveur (vu qu'il ne dispose pas de connexion Internet) mais depuis mon PC portable qui lui en a une (en utilisant mon téléphone portable comme modem). Cette config fonctionne très bien, même en utilisant les fichiers de GestSup que je pensais buggé.

EDIT : peut-etre que cela pourra aider dans la résolution du problème... Le Serveur se présente comme suit :

Serveur W2k8 64 Bits
Habilitaté à utilisé le SMTP (sous quels parametres ? Je ne sais pas, aucune transparence la dessus)
Serveur IIS/7.5 hébergeant VDocOpen sur le port 80, avec une utilisation du SMTP fonctionnelle
Serveur Apache 2.4 hébergeant GestSup sur le port 8080, avec une utilisation du SMTP défectueuse

Est-il possible de n'autoriser uniquement les appli utilisant le port 80, pour l'envoie de mail ou quand un serveur est habilité à le faire, le serveur dans son ensemble l'est ?

Cdt.
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

cela ressemble bien à un paramètre restrictif sur votre serveur de messagerie.

Quand vous dites que cela fonctionne bien avec le phpmailer de test est ce (/components/PHPMailer_v5.1/test/) ?

Si ce n'est pas cela pouvez le tester en interne et me dire si cela fonctionne, sinon me donner les paramètres que vous avez modifié ?


Merci
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Répondre