Page 3 sur 4

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : lun. 3 févr. 2014 10:02
par mrkr
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.

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : lun. 3 févr. 2014 10:44
par bruno
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

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : lun. 3 févr. 2014 12:25
par mrkr
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.

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : ven. 7 févr. 2014 09:59
par mrkr
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.

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : ven. 7 févr. 2014 15:55
par bruno
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

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : dim. 9 févr. 2014 10:07
par mrkr
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.

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : dim. 9 févr. 2014 10:42
par Flox
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

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : lun. 10 févr. 2014 08:49
par mrkr
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) :

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : jeu. 13 févr. 2014 12:23
par mrkr
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.

Re: [3.0.5] Envoie de mail depuis un ticket

Posté : jeu. 13 févr. 2014 20:11
par Flox
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