Envoi de mail automatique lors de la création de ticket via mail2ticket à l'administrateur et au technicien
Posté : jeu. 12 juil. 2018 03:30
Bonjour,
Suite au sujet viewtopic.php?f=3&t=4140&p=11075#p11075 et viewtopic.php?f=1&t=4117 :
L'ajout du code suivant permet de prendre en compte la prise en compte de l'option d'envoi de mail : :
- A l'administrateur lors de l'ouverture d'un ticket par un utilisateur
- Au technicien lors de la modification d'un ticket par un utilisateur
dans le cas de l'utilisation de mal2ticket.php (via le menu administration ou les tâches planifiés)
Rajouter dans le mal2ticket.php
-juste après
Coller le code suivant :
- et juste après :
Coller le code suivant :
Rajout dans ./core/message.php en début de script :
Suite au sujet viewtopic.php?f=3&t=4140&p=11075#p11075 et viewtopic.php?f=1&t=4117 :
L'ajout du code suivant permet de prendre en compte la prise en compte de l'option d'envoi de mail : :
- A l'administrateur lors de l'ouverture d'un ticket par un utilisateur
- Au technicien lors de la modification d'un ticket par un utilisateur
dans le cas de l'utilisation de mal2ticket.php (via le menu administration ou les tâches planifiés)
Rajouter dans le mal2ticket.php
-juste après
Code : Tout sélectionner
//update unread state
$qry=$db->prepare("UPDATE `tincidents` SET `techread`=:techread WHERE `id`=:id");
$qry->execute(array(
'techread' => 0,
'id' => $find_ticket_number
));
Code : Tout sélectionner
//AJOUT LLE 06/07/18
//send mail to technician where user add thread in ticket
if ($rparameters['mail_auto_tech_modify'])
{
//debug
if($rparameters['debug']==1) {echo "<b>AUTO MAIL DETECT:</b> FROM user TO tech (Reason: mail_auto_tech_modify enable and user add thread in ticket.)<br> ";}
//check if current user add this thread
//if ($globalrow['user']==$user_id)
//{
//find user name
$qry = $db->prepare("SELECT * FROM tusers WHERE id=:id");
//$qry->execute(array('id' => $uid));
$qry->execute(array('id' => $user_id));
$userrow=$qry->fetch();
$qry->closeCursor();
$_GET['id']=$find_ticket_number;
$qry=$db->prepare("SELECT * FROM `tincidents` WHERE id=:id");
$qry->execute(array('id' => $_GET['id']));
$globalrow=$qry->fetch();
$qry->closeCursor();
//get user mail
if($rparameters['mail_from_adr']=='')
{
if ($userrow['mail']!='') $from=$userrow['mail']; else $from=$rparameters['mail_cc'];
} else {
$from=$rparameters['mail_from_adr'];
}
//get tech mail
$qry = $db->prepare("SELECT * FROM tusers WHERE id=:id");
$qry->execute(array('id' => $globalrow['technician']));
$techrow=$qry->fetch();
$qry->closeCursor();
$to=$techrow['mail'];
//check if tech have mail
if($to)
{
$object=T_('Votre ticket').' n°'.$_GET['id'].': '.$globalrow['title'].' '.T_('a été modifié par').' '.$userrow['lastname'].' '.$userrow['firstname'];
//remove single quote in post data
$title = str_replace("'", "", $globalrow['title']);
//$resolution = str_replace("'", "", $globalrow['description']);
$message = '
'.T_('Le ticket').' n°'.$_GET['id'].' '.T_('à été modifié par l\'utilisateur').' '.$userrow['lastname'].' '.$userrow['firstname'].'.<br />
<br />
<u>'.T_('Objet').':</u><br />
'.$title.'<br />
<br />
<u>'.T_('Ajout du commentaire').':</u><br />
'.$message.'<br />
<br />
'.T_('Pour plus d\'informations vous pouvez consulter le ticket sur').' <a href="'.$rparameters['server_url'].'/index.php?page=ticket&id='.$_GET['id'].'">'.$rparameters['server_url'].'/index.php?page=ticket&id='.$_GET['id'].'</a>.
';
$send=1;
require('core/message.php');
} else {if($rparameters['debug']==1) {echo "technician mail is empty or no technician associated with this ticket";}}
//}
}
//FIN AJOUT LLE 06/07/18
Code : Tout sélectionner
else //html case
{
//remove outlook string to avoid underline application problem
$message=str_replace("text-decoration:underline;", "", $message);
$message=preg_replace('/(<(base)\b[^>]*>)/is', "", $message); //remove base link
$qry=$db->prepare("UPDATE `tincidents` SET `description`=:description WHERE `id`=:id");
$qry->execute(array(
'description' => $message,
'id' => $c_ticket_number
));
}
Code : Tout sélectionner
//----------AJOUT LLE du 06/07/18
//send mail to admin where user open new ticket
if($rparameters['mail_newticket'])
{
//find user name
$qry = $db->prepare("SELECT * FROM tusers WHERE id=:id");
//$qry->execute(array('id' => $uid));
$qry->execute(array('id' => $user_id));
$userrow=$qry->fetch();
$qry->closeCursor();
$_GET['id']=$c_ticket_number;
$qry=$db->prepare("SELECT * FROM `tincidents` WHERE id=:id");
$qry->execute(array('id' => $_GET['id']));
$globalrow=$qry->fetch();
$qry->closeCursor();
//mail parameters
if($rparameters['mail_from_adr']=='')
{
if ($userrow['mail']!='') $from=$userrow['mail']; else $from=$rparameters['mail_cc'];
} else {
$from=$rparameters['mail_from_adr'];
}
if($rparameters['mail_newticket_address'])
{
//debug
if($rparameters['debug']==1) {echo "<b>AUTO MAIL DETECT:</b> FROM user TO tech OR parameter_cc (Reason: mail_newticket enable and user open ticket.<br> ";}
$to=$rparameters['mail_newticket_address'];
//$object=T_('Un nouveau ticket à été déclaré par ').$userrow['lastname'].' '.$userrow['firstname'].': '.$_POST['title'];
$object=T_('Un nouveau ticket à été déclaré par ').$userrow['lastname'].' '.$userrow['firstname'].': '.$globalrow['title'];
$message = '
'.T_('Le ticket').' n°'.$_GET['id'].' '.T_('a été déclaré par l\'utilisateur').' '.$userrow['lastname'].' '.$userrow['firstname'].'.<br />
<br />
<u>'.T_('Objet').':</u><br />
'.$globalrow['title'].'<br />
<br />
<u>'.T_('Description').':</u><br />
'.$globalrow['description'].'<br />
<br />
'.T_('Pour plus d\'informations vous pouvez consulter le ticket sur').' <a href="'.$rparameters['server_url'].'/index.php?page=ticket&id='.$_GET['id'].'">'.$rparameters['server_url'].'/index.php?page=ticket&id='.$_GET['id'].'</a>.
';
$send=1;
require('core/message.php');
} else {
//debug
if($rparameters['debug']==1) {echo "<b>AUTO MAIL DETECT:</b> FROM user TO tech OR parameter_cc (Reason: mail_newticket enable and user open ticket, message not sent no administrator mail specified<br> ";}
}
}
//------------------FIN AJOUT LLE du 06/07/18
Code : Tout sélectionner
//--------------------AJOUT LLE du 06/07/18
//Modification des appels de fonction mail php pour planification tâches planifiées
if ($send==1)
{
require_once(__DIR__.'/../components/PHPMailer/src/PHPMailer.php');
require_once(__DIR__.'/../components/PHPMailer/src/SMTP.php');
require_once(__DIR__.'/../components/PHPMailer/src/Exception.php');
} else {
//----------FIN AJOUT LLE du 06/07/18
require_once("components/PHPMailer/src/PHPMailer.php");
require_once("components/PHPMailer/src/SMTP.php");
require_once("components/PHPMailer/src/Exception.php");
//----------AJOUT LLE du 06/07/18
}
//----------FIN AJOUT LLE du 06/07/18