From c50d2cea03380394ce876ac2bdb75a535157c786 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 May 2009 22:01:19 +0000 Subject: [PATCH] Can add a field errors-to to emailings --- ChangeLog | 5 ++- htdocs/comm/mailing/fiche.php | 51 +++++++++++++++++---------- htdocs/comm/mailing/mailing.class.php | 11 +++--- htdocs/langs/en_US/mails.lang | 1 + htdocs/langs/fr_FR/mails.lang | 1 + 5 files changed, 45 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 60de63f63ce..987c99c2562 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,18 +4,21 @@ English Dolibarr changelog ***** Changelog for 2.7 compared to 2.6 ***** For users: -- New: Add an help and support center. +- New: Add a help and support center. - New: Can export commercial proposals. - New: Can use a cache for xcal exports. - New: Option for faster confirmation process with one ajax popup. - New: Complete theme bluelagoon and rodolphe - New: Can select third parties emails in emailing module for all third parties with expired contract's lines. +- New: Can add a field errors-to in emailing. +- New: Can use inline images in emails. - Fix: Customer code was not correct on PDF it if contains special characters. - Fix: Can update price even with "NPR" VAT rates. - Fix: When product type is missing, description is not lost when adding new product lines. +- Fix: CC and BCC in emails was not used if using SMTPS handler. For translators: - Update some language files. diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index a11fa19dadb..e8df0ef2a77 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -26,6 +26,7 @@ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); require_once(DOL_DOCUMENT_ROOT."/comm/mailing/mailing.class.php"); require_once(DOL_DOCUMENT_ROOT."/html.formother.class.php"); @@ -87,7 +88,7 @@ if ($_POST["action"] == 'confirm_clone' && $_POST['confirm'] == 'yes') } } -// Action envoi mailing pour tous +// Action send emailing for everybody if ($_POST["action"] == 'sendallconfirmed' && $_POST['confirm'] == 'yes') { if (empty($conf->global->MAILING_LIMIT_SENDBYWEB)) @@ -272,7 +273,7 @@ if ($_POST["action"] == 'sendallconfirmed' && $_POST['confirm'] == 'yes') } } -// Action envoi test mailing +// Action send test emailing if ($_POST["action"] == 'send' && ! $_POST["cancel"]) { $mil = new Mailing($db); @@ -320,19 +321,21 @@ if ($_POST["action"] == 'send' && ! $_POST["cancel"]) } } -// Action ajout mailing +// Action add emailing if ($_POST["action"] == 'add') { $message=''; $mil = new Mailing($db); - $mil->email_from = trim($_POST["from"]); - $mil->titre = trim($_POST["titre"]); - $mil->sujet = trim($_POST["sujet"]); - $mil->body = trim($_POST["body"]); - $mil->bgcolor = trim($_POST["bgcolor"]); - $mil->bgimage = trim($_POST["bgimage"]); + $mil->email_from = trim($_POST["from"]); + $mil->email_replyto = trim($_POST["replyto"]); + $mil->email_errorsto = trim($_POST["errorsto"]); + $mil->titre = trim($_POST["titre"]); + $mil->sujet = trim($_POST["sujet"]); + $mil->body = trim($_POST["body"]); + $mil->bgcolor = trim($_POST["bgcolor"]); + $mil->bgimage = trim($_POST["bgimage"]); if (! $mil->titre) $message.=($message?'
':'').$langs->trans("ErrorFieldRequired",$langs->trans("MailTitle")); if (! $mil->sujet) $message.=($message?'
':'').$langs->trans("ErrorFieldRequired",$langs->trans("MailTopic")); @@ -351,22 +354,25 @@ if ($_POST["action"] == 'add') $_GET["action"]="create"; } -// Action mise a jour mailing +// Action update emailing if ($_POST["action"] == 'update') { $mil = new Mailing($db); - $mil->id = $_POST["id"]; - $mil->email_from = $_POST["from"]; - $mil->titre = $_POST["titre"]; - $mil->sujet = $_POST["sujet"]; - $mil->body = $_POST["body"]; - $mil->bgcolor = $_POST["bgcolor"]; - $mil->bgimage = $_POST["bgimage"]; + $mil->id = $_POST["id"]; + $mil->email_from = trim($_POST["from"]); + $mil->email_replyto = trim($_POST["replyto"]); + $mil->email_errorsto = trim($_POST["errorsto"]); + $mil->titre = trim($_POST["titre"]); + $mil->sujet = trim($_POST["sujet"]); + $mil->body = trim($_POST["body"]); + $mil->bgcolor = trim($_POST["bgcolor"]); + $mil->bgimage = trim($_POST["bgimage"]); - if ($mil->update()) + if ($mil->update($user)) { Header("Location: fiche.php?id=".$mil->id); + exit; } } @@ -489,6 +495,7 @@ if ($_GET["action"] == 'create') print ''.$langs->trans("MailTitle").''; print ' '; print ''.$langs->trans("MailFrom").''; + print ''.$langs->trans("MailErrorsTo").''; print ''.$langs->trans("MailTopic").''; print ''.$langs->trans("BackgroundColor").''; $htmlother->select_color($_POST['bgcolor'],'bgcolor','new_mailing'); @@ -593,7 +600,12 @@ else print ''; print ''.$langs->trans("MailTitle").''.$mil->titre.''; - print ''.$langs->trans("MailFrom").''.htmlentities($mil->email_from).''; + print ''.$langs->trans("MailFrom").''.htmlentities($mil->email_from); + if (! isValidEMail($mil->email_from)) print img_warning($langs->trans("BadEMail")); + print ''; + print ''.$langs->trans("MailErrorsTo").''.htmlentities($mil->email_errorsto); + if (! isValidEMail($mil->email_errorsto)) print img_warning($langs->trans("BadEMail")); + print ''; print ''.$langs->trans("Status").''.$mil->getLibStatut(4).''; print ''.$langs->trans("TotalNbOfDistinctRecipients").''.($mil->nbemail?$mil->nbemail:''.$langs->trans("NoTargetYet").'').''; @@ -761,6 +773,7 @@ else print ''.$langs->trans("Ref").''.$mil->id.''; print ''.$langs->trans("MailTitle").''; print ''.$langs->trans("MailFrom").''; + print ''.$langs->trans("MailErrorsTo").''; print ''.$langs->trans("MailTopic").''; print ''.$langs->trans("BackgroundColor").''; $htmlother->select_color($mil->bgcolor,'bgcolor','edit_mailing'); diff --git a/htdocs/comm/mailing/mailing.class.php b/htdocs/comm/mailing/mailing.class.php index fbad26ffc4b..2085c0fdee3 100644 --- a/htdocs/comm/mailing/mailing.class.php +++ b/htdocs/comm/mailing/mailing.class.php @@ -79,7 +79,7 @@ class Mailing extends CommonObject /** * \brief Create an EMailing - * \param user object utilisateur qui cree + * \param user Object of user making creation * \return -1 if error, Id of created object if OK */ function create($user) @@ -134,16 +134,19 @@ class Mailing extends CommonObject } /** - * \brief Update les infos du mailing - * \return < 0 si erreur, > 0 si ok + * \brief Update emailing record + * \param user Object of user making change + * \return < 0 if KO, > 0 if OK */ - function update() + function update($user) { $sql = "UPDATE ".MAIN_DB_PREFIX."mailing "; $sql .= " SET titre = '".addslashes($this->titre)."'"; $sql .= ", sujet = '".addslashes($this->sujet)."'"; $sql .= ", body = '".addslashes($this->body)."'"; $sql .= ", email_from = '".$this->email_from."'"; + $sql .= ", email_replyto = '".$this->email_replyto."'"; + $sql .= ", email_errorsto = '".$this->email_errorsto."'"; $sql .= ", bgcolor = '".($this->bgcolor?$this->bgcolor:null)."'"; $sql .= ", bgimage = '".($this->bgimage?$this->bgimage:null)."'"; $sql .= " WHERE rowid = ".$this->id; diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang index 6f3638e7f5e..40bb7dfab4b 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -61,6 +61,7 @@ YouCanAddYourOwnPredefindedListHere=To create your email selector module, see ht EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values MailingAddFile=Attach this file NoAttachedFiles=No attached files +BadEMail=Bad value for EMail # Libelle des modules de liste de destinataires mailing MailingModuleDescContactCompanies=Contacts of all third parties (customer, prospect, supplier, ...) diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index 5b8a6b68e46..5aa7f634ce4 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -61,6 +61,7 @@ YouCanAddYourOwnPredefindedListHere=Pour créer votre module sélection mails, v EMailTestSubstitutionReplacedByGenericValues=En mode test, les variables de substitution sont remplacées par des valeurs génériques MailingAddFile=Joindre ce fichier NoAttachedFiles=Aucun fichier joint +BadEMail=EMail incorrect # Libelle des modules de liste de destinataires mailing MailingModuleDescContactCompanies=Contacts des tiers (prospects, clients, fournisseurs...)