New: Gros avancements sur l'outil de mailing. Il est possible maintenant de crer un mailing, le supprimer, editer, valider et de choisir les destinataires parmi des listes prdfinis dans des modules.

Qual: Les modules poire et cerise de slection de destinataire ont t revue pour respoecter la norme objet.
This commit is contained in:
Laurent Destailleur 2005-02-12 18:37:11 +00:00
parent 03e68d2e30
commit 1c2e3a2adc
4 changed files with 91 additions and 12 deletions

View File

@ -37,6 +37,51 @@ llxHeader("","","Fiche Mailing");
// Action envoi test mailing
if ($_POST["action"] == 'send')
{
$mil = new Mailing($db);
$mil->id = $_POST["mailid"];
$mil->fromname = $_POST["fromname"];
$mil->frommail = $_POST["frommail"];
$mil->sendto = $_POST["sendto"];
$mil->titre = $_POST["titre"];
$mil->sujet = $_POST["subject"];
$mil->body = $_POST["message"];
if ($mil->sendto && $mil->sujet && $mil->body)
{
// \todo Utiliser la class DolibarrMail ou CMailFile pour envoyer le mail
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "From: ".$mil->fromname." <".$mil->frommail.">\r\n";
$headers .= "Reply-to:".$mil->fromname." <".$mil->frommail.">\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: Dolibarr ".DOL_VERSION."\r\n";
$m=mail($mil->sendto, $mil->sujet, $mil->body, $headers);
if($m)
{
$message='<div class="ok">'.$langs->trans("ResultOk").'</div>';
}
else
{
$message='<div class="error">'.$langs->trans("ResultKo").'</div>';
}
$_GET["action"]='';
$_GET["id"]=$mil->id;
}
else
{
$message='<div class="error">'.$langs->trans("ErrorUnknown").'</div>';
}
}
// Action ajout mailing
if ($_POST["action"] == 'add')
{
$mil = new Mailing($db);
@ -57,6 +102,7 @@ if ($_POST["action"] == 'add')
}
}
// Action mise a jour mailing
if ($_POST["action"] == 'update')
{
$mil = new Mailing($db);
@ -73,7 +119,7 @@ if ($_POST["action"] == 'update')
}
}
// Action confirmation validation
if ($_POST["action"] == 'confirm_valide')
{
@ -122,6 +168,7 @@ if ($_POST["action"] == 'confirm_approve')
}
}
// Action confirmation suppression
if ($_POST["action"] == 'confirm_delete')
{
if ($_POST["confirm"] == 'yes')
@ -167,7 +214,7 @@ if ($_GET["action"] == 'create')
print '<tr><td width="20%">'.$langs->trans("MailTopic").'</td><td><input name="sujet" size="40" value=""></td></tr>';
print '<tr><td width="20%" valign="top">'.$langs->trans("MailMessage").'</td><td><textarea cols="30" rows="8" name="body"></textarea></td></tr>';
print '<tr><td width="20%" valign="top">'.$langs->trans("MailMessage").'</td><td><textarea cols="50" rows="10" name="body"></textarea></td></tr>';
print '<tr><td colspan="2" align="center"><input type="submit" value="'.$langs->trans("CreateMailing").'"></td></tr>';
print '</table>';
@ -176,6 +223,7 @@ if ($_GET["action"] == 'create')
else
{
$html = new Form($db);
if ($mil->fetch($_GET["id"]) == 0)
{
@ -262,6 +310,7 @@ else
print "</div>";
if ($message) print "$message<br>";
/*
* Boutons d'action
@ -305,21 +354,23 @@ else
// Créé l'objet formulaire mail
include_once("../../html.formmail.class.php");
$formmail = new FormMail($db);
$formmail->fromname = $user->fullname;
$formmail->frommail = $user->email;
$formmail->fromname = $mil->email_from;
$formmail->frommail = $mil->email_from;
$formmail->withfrom=1;
$formmail->withto=$user->email;
$formmail->withcc=0;
$formmail->withtopic=0;
$formmail->withtopic=$mil->sujet;
$formmail->withtopicreadonly=1;
$formmail->withfile=0;
$formmail->withbody=1;
$formmail->withbody=$mil->body;
$formmail->withbodyreadonly=1;
// Tableau des substitutions
$formmail->substit["__FACREF__"]=$fac->ref;
// Tableau des paramètres complémentaires du post
$formmail->param["action"]="send";
$formmail->param["models"]=$mil->body;
$formmail->param["models"]="body";
$formmail->param["mailid"]=$mil->id;
$formmail->param["returnurl"]=DOL_URL_ROOT."/comm/mailing.php?id=$mil->id";
$formmail->param["returnurl"]=DOL_URL_ROOT."/comm/mailing/fiche.php?id=".$mil->id;
$formmail->show_form();
}

View File

@ -32,9 +32,28 @@
*/
class Mailing
{
var $id;
var $error;
var $id;
var $error;
var $statut;
var $titre;
var $sujet;
var $body;
var $nbemail;
var $email_from;
var $email_replyto;
var $email_errorsto;
var $user_creat;
var $user_valid;
var $user_appro;
var $date_creat;
var $date_valid;
var $date_appro;
/**
* \brief Constructeur de la classe
* \param DB handler accès base de données
@ -67,10 +86,10 @@ class Mailing
$this->db->begin();
$this->from=trim($this->from);
$this->titre=trim($this->titre);
$this->email_from=trim($this->email_from);
if (! $this->from)
if (! $this->email_from)
{
$this->error = $langs->trans("ErrorMailFromRequired");
return -1;

View File

@ -43,4 +43,9 @@ RecipientSelectionModules=Active modules for recipients selection
MailSelectedRecipients=Selected recipients
MailingArea=Mailings area
LastMailings=Last %s mailings
TargetsStatistics=Targets statistics
NbOfProspectsContacts=Unique contacts for all prospects
NbOfCustomersContacts=Unique contacts for all customers
MailNoChangePossible=Recipients for validated mailing can't be changed

View File

@ -43,3 +43,7 @@ RecipientSelectionModules=Modules actifs de s
MailSelectedRecipients=Destinataires sélectionnés
MailingArea=Espace Mailings
LastMailings=Les %s derniers mailings
TargetsStatistics=Statistiques destinataires
NbOfProspectsContacts=Contacts uniques tous prospects
NbOfCustomersContacts=Contacts uniques tous clients
MailNoChangePossible=Destinataires d'un mailing validé non modifiables