Jump to content

Probleme email SMTP sur modules


Recommended Posts

Bonjour,

j'ai un petit soucis. Mon hebergeur a modifier le serveur et son environnement pour supprimer la fonction mail() et remplacer l'envoi des email via SMTP

 

Corrections faites sur prestashop, le process de commandes fonction et passe desormais via smtp (j'ai changé la config)

 

Le problème c'est que j'avais des modules custom a savoir un module custom contact form et un module click we call y ou back

 

Ces modules ne prenaient pas en compte la config smtp de prestashop, donc continuent a passer par mail() et du coup plus d'emails.

 

Comment je peux intégré les parametre smtp sur ces modules

 

Exemple simple

$destinataire = $mail[0]['value'];
 $sujet = $title[0]['value'];
 $entete = "From: [email protected]" ;
 $entete .= "Content-Type: text/plain; charset='iso-8859-1'\n";

 $message = '
 Une personne a demandé à être rappelée depuis votre boutique.
 Voici ses coordonnées :
  Nom : '.$name.'
  Téléphone : '.$phone.'
  Heure souhaitée : '.$hour.'

 ---------------
 Ceci est un mail automatique, Merci de ne pas y répondre.';
 mail($destinataire, $sujet, $message, $entete) ;

 

Je ne peux pas faire un appel a /classes/Mail.php et modifier simplement ce script ? j'ai essayé pas mal de méthode pour l'heure ca ne fonctionne pas

Merci pour votre aide

Link to comment
Share on other sites

include_once('/classes/Mail.php');
 $destinataire = "[email protected]";
 $sujet = $title[0]['value'];
 $entete = "From: [email protected]" ;
 $entete .= "Content-Type: text/plain; charset='iso-8859-1'\n";
$headers["From"] = "[email protected]";
$headers["To"] = "[email protected]";
$headers["Subject"] = "Test message";
 $message = '
 Une personne a demandé à être rappelée depuis votre boutique.
 Voici ses coordonnées :
  Nom : '.$name.'
  Téléphone : '.$phone.'
  Heure souhaitée : '.$hour.'

 ---------------
 Ceci est un mail automatique, Merci de ne pas y répondre.';
 Mail::Send($destinataire, $headers, $message);
}

 

ne marche pas

Link to comment
Share on other sites

 $subject = 'Bonjour';
$donnees = array('{nom}'  => 'Jobs' ,  '{prenom}'  => 'Steve' );
$destinataire = '[email protected]';
Mail::Send(intval($cookie->id_lang), 'password', $sujet , $donnees, $destinataire, "prenom nom", '[email protected]', 'nom', NULL,true, 'http://www.domain.com/mails/fr/');

 

Ne marche pas non plus il faut que je fasse un include dans mon module ? (mail ou config?)

Edited by ubik (see edit history)
Link to comment
Share on other sites

include dirname(__FILE__).'/../../classes/Db.php';

 if (isset($_POST['insert']))
 {
$exist = Db::getInstance()->ExecuteS('
SELECT COUNT(*) as count
FROM '._DB_PREFIX_.'callback WHERE (phone = "'.$_POST['phone'].'" AND statut = 0)');
if ($exist[0]['count'] == 0)
{

 $mail = Db::getInstance()->ExecuteS('
 SELECT value
 FROM '._DB_PREFIX_.'configuration WHERE name = "ebuildycallback_mail"');
 $title = Db::getInstance()->ExecuteS('
 SELECT value
 FROM '._DB_PREFIX_.'configuration WHERE name = "ebuildycallback_title"');
 $name = strlen($_POST['name']) > 0 ? $_POST['name'] : 'Non précisé';
 $phone = $_POST['phone'];
 $hour = 'Entre '.$_POST['hour_start'].' et '.$_POST['hour_end'];
 if (strlen($_POST['hour_start']) == 0 && strlen($_POST['hour_end']) == 0) {
  $hour = 'Non précisé';
 }
 Db::getInstance()->autoExecute(
   _DB_PREFIX_.'callback',
   array('statut' => 0, 'name' => $name, 'phone' => $phone, 'hour' => $hour),
   'INSERT');
 // Modifier ici le texte de confirmation ( Veillez à laisser le '1|' avant)
 echo '1|Nous vous remercions, nous vous contacterons sous peu.';
 $destinataire2 = $mail[0]['value'];
 $sujet2 = $title[0]['value'];
 $entete = "From: [email protected]" ;
 $entete .= "Content-Type: text/plain; charset='iso-8859-1'\n";
 $message = '
 Une personne a demandé à être rappelée depuis votre boutique.
 Voici ses coordonnées :
  Nom : '.$name.'
  Téléphone : '.$phone.'
  Heure souhaitée : '.$hour.'

 ---------------
 Ceci est un mail automatique, Merci de ne pas y répondre.';
mail($destinataire2, $sujet2, $message, $entete) ;


}
else {
 // Modifier ici le texte de téléphone déjà présent ( Veillez à laisser le '0|' avant)
 echo '0|Votre numéro est déjà enregistré, nous vous contacterons sous peu.';
}
 }
 if (isset($_POST['update']))
 {
   $id_call = $_POST['id'];
   Db::getInstance()->autoExecute(
  _DB_PREFIX_.'callback',
  array('statut'=>1),
  'UPDATE',
  "id_call = '{$id_call}'");
 echo '<a onclick="updateCall(\'delete\', '.$id_call.');" class="button-call"><font color="#BB4433">Supprimer</font></a>';
 }
 if (isset($_POST['delete']))
 {
   $id_call = $_POST['id'];
   Db::getInstance()->delete(_DB_PREFIX_.'callback', "id_call = '{$id_call}'");
echo '1';
 }
?>

 

Mail::Send ne marche pas dans cette page, j'ai l'impression que c'est parceque cela doit etre construit sous forme de classe nan, j'ai l'impression qu'il ne calcul pas les variable d'environnement

Link to comment
Share on other sites

  • 3 weeks later...
<?php
include dirname(__FILE__).'/../../classes/Db.php';
include dirname(__FILE__).'/../../classes/Mail.php';
include dirname(__FILE__).'/../../config/config.inc.php';

 if (isset($_POST['insert']))
 {
$exist = Db::getInstance()->ExecuteS('
SELECT COUNT(*) as count
FROM '._DB_PREFIX_.'callback WHERE (phone = "'.$_POST['phone'].'" AND statut = 0)');

if ($exist[0]['count'] == 0)
{


$sujet = 'Demande de contact';
$donnees = 'aaa';
$destinataire = '[email protected]';

Mail::Send($sujet,$donnees,$destinataire);

 $mail = Db::getInstance()->ExecuteS('
 SELECT value
 FROM '._DB_PREFIX_.'configuration WHERE name = "ebuildycallback_mail"');
 $title = Db::getInstance()->ExecuteS('
 SELECT value
 FROM '._DB_PREFIX_.'configuration WHERE name = "ebuildycallback_title"');
 $name = $cookie;
 $phone = $_POST['phone'];
 $hour = 'Entre '.$_POST['hour_start'].' et '.$_POST['hour_end'];
 if (strlen($_POST['hour_start']) == 0 && strlen($_POST['hour_end']) == 0) {
  $hour = 'Non précisé';
 }
 Db::getInstance()->autoExecute(
   _DB_PREFIX_.'callback',
   array('statut' => 0, 'name' => $name, 'phone' => $phone, 'hour' => $hour),
   'INSERT');



 // Modifier ici le texte de confirmation ( Veillez à laisser le '1|' avant)
 echo '1|Nous vous remercions, nous vous contacterons sous peu.';


}
else {
 // Modifier ici le texte de téléphone déjà présent ( Veillez à laisser le '0|' avant)
 echo '0|Votre numéro est déjà enregistré, nous vous contacterons sous peu.';
}
 }
 if (isset($_POST['update']))
 {
   $id_call = $_POST['id'];
   Db::getInstance()->autoExecute(
  _DB_PREFIX_.'callback',
  array('statut'=>1),
  'UPDATE',
  "id_call = '{$id_call}'");
 echo '<a onclick="updateCall(\'delete\', '.$id_call.');" class="button-call"><font color="#BB4433">Supprimer</font></a>';
 }
 if (isset($_POST['delete']))
 {
   $id_call = $_POST['id'];
   Db::getInstance()->delete(_DB_PREFIX_.'callback', "id_call = '{$id_call}'");
echo '1';
 }

?>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...