diff --git a/htdocs/actioncomm.class.php b/htdocs/actioncomm.class.php
index a6553274b6ec87c070cc2a0feaff2dd58a80561c..3d7e205fb85714d60fea39fa28a0239cdd16b97f 100644
--- a/htdocs/actioncomm.class.php
+++ b/htdocs/actioncomm.class.php
@@ -52,7 +52,9 @@ class ActionComm
     var $datef;			// Date action planifie fin (datep2)
     var $date;			// Date action realise debut (datea)
     var $dateend; 		// Date action realise fin (datea2)
-    var $priority;
+    var $durationp = -1;
+    var $durationa = -1;
+	var $priority;
 
     var $usertodo;		// User that must do action
     var $userdone;	 	// User that did action
@@ -90,12 +92,12 @@ class ActionComm
     function add($author,$notrigger=0)
     {
         global $langs,$conf;
-    
-        if (! $this->percentage)  $this->percentage = 0;
-        if (! $this->priority) $this->priority = 0;
-        
-		$this->db->begin();
 
+        // Clean parameters
+		if (! $this->percentage) $this->percentage = 0;
+        if (! $this->priority)   $this->priority = 0;
+        if ($this->percentage == 100 && ! $this->dateend) $this->dateend = $this->date;
+		$now=time();
 		if (! $this->type_id && $this->type_code)
 		{
 			# Get id from code
@@ -108,21 +110,30 @@ class ActionComm
 			else
 			{
 				$this->error=$cactioncomm->error;
-				$this->db->rollback();
 				return -1;
 			}
 		}
-		
+		if ($this->datep && $this->datef)   $this->durationp=($this->datef - $this->datep);
+		if ($this->date  && $this->dateend) $this->durationa=($this->dateend - $this->date);
+
+		// Check parameters
 		if (! $this->type_id)
 		{
 			$this->error="ErrorWrongParameters";
 			return -1;
 		}
 		
+		
+		$this->db->begin();
+
         $sql = "INSERT INTO ".MAIN_DB_PREFIX."actioncomm";
         $sql.= "(datec,";
-        if ($this->datep) $sql.= "datep,";
-        if ($this->date) $sql.= "datea,";
+        $sql.= "datep,";
+        $sql.= "datep2,";
+        $sql.= "datea,";
+        $sql.= "datea2,";
+        $sql.= "durationp,";
+        $sql.= "durationa,";
         $sql.= "fk_action,fk_soc,note,";
 		$sql.= "fk_contact,";
 		$sql.= "fk_user_author,";
@@ -130,9 +141,14 @@ class ActionComm
 		$sql.= "fk_user_done,";
 		$sql.= "label,percent,priority,";
         $sql.= "fk_facture,propalrowid,fk_commande)";
-        $sql.= " VALUES (now(),";
-        if ($this->datep) $sql.= "'".$this->db->idate($this->datep)."',";
-        if ($this->date) $sql.= "'".$this->db->idate($this->date)."',";
+        $sql.= " VALUES (";
+        $sql.= "'".$this->db->idate($now)."',";
+        $sql.= ($this->datep?"'".$this->db->idate($this->datep)."'":"null").",";
+        $sql.= ($this->datef?"'".$this->db->idate($this->datef)."'":"null").",";
+        $sql.= ($this->date?"'".$this->db->idate($this->date)."'":"null").",";
+        $sql.= ($this->dateend?"'".$this->db->idate($this->dateend)."'":"null").",";
+        $sql.= ($this->durationp >= 0?"'".$this->durationp."'":"null").",";
+        $sql.= ($this->durationa >= 0?"'".$this->durationa."'":"null").",";
         $sql.= "'".$this->type_id."', '".$this->societe->id."' ,'".addslashes($this->note)."',";
         $sql.= ($this->contact->id > 0?"'".$this->contact->id."'":"null").",";
         $sql.= "'".$author->id."',";
diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php
index ba7460df6a4a3ae0927e7df927881c3c0cddc302..6b928866723597a8ed28870ae21450eef61ceb99 100644
--- a/htdocs/admin/mails.php
+++ b/htdocs/admin/mails.php
@@ -207,7 +207,7 @@ else
 			  $formmail->withfrom=1;
 			  $formmail->witherrorsto=1;
 			  $formmail->withto=$user->email?$user->email:1;
-			  $formmail->withcc=0;
+			  $formmail->withtocc=1;
 			  $formmail->withtopic=$langs->trans("Test");
 			  $formmail->withtopicreadonly=0;
 			  $formmail->withfile=1;
diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php
index 9760e68e753d34a3adbca6841c703bba8ce9813c..c5e6065a86555ea1762eee13983af3d48f2fec49 100644
--- a/htdocs/admin/tools/listevents.php
+++ b/htdocs/admin/tools/listevents.php
@@ -28,6 +28,13 @@ require_once("./pre.inc.php");
 if (! $user->admin)
   accessforbidden();
 
+// S�curit� acc�s client
+if ($user->societe_id > 0) 
+{
+  $action = '';
+  $socid = $user->societe_id;
+}
+
 $langs->load("companies");
 
 $page=$_GET["page"];
@@ -42,27 +49,22 @@ $pageprev = $page - 1;
 $pagenext = $page + 1;
 
 
-llxHeader();
 
-// S�curit� acc�s client
-if ($user->societe_id > 0) 
-{
-  $action = '';
-  $socid = $user->societe_id;
-}
+/*
+*	View
+*/
 
+llxHeader();
 
-/*
- * Mode Liste
- *
- */
+$userstatic=new User($db);
 
 $sql = "SELECT e.rowid, e.type, ".$db->pdate("e.dateevent")." as dateevent,";
-$sql.= " e.fk_user, e.label, e.description";
+$sql.= " e.fk_user, e.label, e.description,";
+$sql.= " u.login";
 $sql.= " FROM ".MAIN_DB_PREFIX."events as e";
-
-$sql .= " ORDER BY $sortfield $sortorder";
-$sql .= $db->plimit($conf->liste_limit+1, $offset);
+$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = e.fk_user";
+$sql.= " ORDER BY $sortfield $sortorder";
+$sql.= $db->plimit($conf->liste_limit+1, $offset);
 
 $result = $db->query($sql);
 if ($result)
@@ -76,7 +78,7 @@ if ($result)
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"e.dateevent","","",'align="left"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"e.type","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("User"),$_SERVER["PHP_SELF"],"e.fk_user","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("User"),$_SERVER["PHP_SELF"],"u.login","","",'align="left"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"e.label","","",'align="left"',$sortfield,$sortorder);
 	print '<td>&nbsp;</td>';
 	print "</tr>\n";
@@ -116,7 +118,9 @@ if ($result)
 		print "<tr $bc[$var]>";
 		print '<td align="left" nowrap="nowrap">'.dolibarr_print_date($obj->dateevent,'dayhour').'</td>';
 		print '<td>'.$obj->type.'</td>';
-		print '<td>'.$obj->fk_user.'</td>';
+		$userstatic->id=$obj->fk_user;
+		$userstatic->login=$obj->login;
+		print '<td>'.$userstatic->getLoginUrl(1).'</td>';
 		print '<td>'.$obj->label.'</td>';
 //		print '<td>'.$obj->description.'</td>';
 		print '<td>&nbsp;</td>';
diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php
index cf232de04d3d7b78dc84db32e952871a6ae7b83e..967c79c7382c14e0f1abd7e107c1ab2045403dd8 100644
--- a/htdocs/comm/mailing/fiche.php
+++ b/htdocs/comm/mailing/fiche.php
@@ -1,6 +1,6 @@
 <?PHP
 /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2005-2006 Laurent Destailleur  <eldy@uers.sourceforge.net>
+ * Copyright (C) 2005-2008 Laurent Destailleur  <eldy@uers.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -15,19 +15,17 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * $Id$
- * $Source$
  */
 
 /**
         \file       htdocs/comm/mailing/fiche.php
         \ingroup    mailing
         \brief      Fiche mailing, onglet g�n�ral
-        \version    $Revision$
+        \version    $Id$
 */
 
 require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php");
 
 $langs->load("mails");
 
@@ -52,13 +50,186 @@ $substitutionarrayfortest=array(
 
 
 // Action envoi mailing pour tous
-if ($_GET["action"] == 'sendall')
+if ($_POST["action"] == 'sendallconfirmed')
 {
-    // Pour des raisons de s�curit�, on ne permet pas cette fonction via l'IHM,
-    // on affiche donc juste un message
-    $message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
-    $message.='<br><textarea cols="50" rows="'.ROWS_2.'" wrap="soft">php ./scripts/mailing/mailing-send.php '.$_GET["id"].'</textarea>';
-    $_GET["action"]='';
+    if (empty($conf->global->MAILING_LIMIT_SENDBYWEB))
+	{
+		// Pour des raisons de s�curit�, on ne permet pas cette fonction via l'IHM,
+	    // on affiche donc juste un message
+	    $message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
+	    $message.='<br><textarea cols="70" rows="'.ROWS_2.'" wrap="soft">php ./scripts/mailing/mailing-send.php '.$_GET["id"].'</textarea>';
+	    $message.='<br><br><div class="warning">'.$langs->trans("MailingNeedCommand2").'</div>';
+	    $_GET["action"]='';
+	}
+	else
+	{
+	    $id=$_GET['id'];
+
+		$error = 0;
+
+		// On r�cup�re donn�es du mail
+		$sql = "SELECT m.rowid, m.titre, m.sujet, m.body";
+		$sql .= " , m.email_from, m.email_replyto, m.email_errorsto";
+		$sql .= " FROM ".MAIN_DB_PREFIX."mailing as m";
+		$sql .= " WHERE m.statut >= 1";
+		$sql .= " AND m.rowid= ".$id;
+		$sql .= " LIMIT 1";
+
+		$resql=$db->query($sql);
+		if ($resql) 
+		{
+			$num = $db->num_rows($resql);
+			$i = 0;
+
+			if ($num == 1)
+			{
+				$obj = $db->fetch_object($resql);
+
+				dolibarr_syslog("mailing-send: mailing ".$id);
+
+				$id       = $obj->rowid;
+				$subject  = $obj->sujet;
+				$message  = $obj->body;
+				$from     = $obj->email_from;
+				$errorsto = $obj->email_errorsto;
+
+				// Le message est-il en html
+				$msgishtml=0;	// Non par defaut
+				if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_MAILING) $msgishtml=1;
+				if (eregi('[ \t]*<html>',$message)) $msgishtml=1;						
+				
+				$i++;
+			}
+		}
+
+		$nbok=0; $nbko=0;
+
+		// On choisit les mails non d�j� envoy�s pour ce mailing (statut=0)
+		// ou envoy�s en erreur (statut=-1)
+		$sql = "SELECT mc.rowid, mc.nom, mc.prenom, mc.email";
+		$sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc";
+		$sql .= " WHERE mc.statut < 1 AND mc.fk_mailing = ".$id;
+
+		$resql=$db->query($sql);
+		if ($resql)
+		{
+		    $num = $db->num_rows($resql);
+
+		    if ($num) 
+		    {
+		        dolibarr_syslog("mailing-send: target number = $num");
+		        // Positionne date debut envoi
+		        $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET date_envoi=SYSDATE() WHERE rowid=".$id;
+		        $resql2=$db->query($sql);
+		        if (! $resql2)
+		        {
+		            dolibarr_print_error($db);
+		        }
+		    
+		        // Boucle sur chaque adresse et envoie le mail
+		        $i = 0;
+				
+		        while ($i < $num && $i < $conf->global->MAILING_LIMIT_SENDBYWEB)
+		        {
+		            
+		            $res=1;
+					
+		            $obj = $db->fetch_object($resql);
+
+		            // sendto en RFC2822
+		            $sendto = $obj->prenom." ".$obj->nom." <".$obj->email.">";
+
+					// Pratique les substitutions sur le sujet et message
+					$substitutionarray=array(	
+						'__ID__' => $obj->rowid,
+						'__EMAIL__' => $obj->email,
+						'__LASTNAME__' => $obj->nom,
+						'__FIRSTNAME__' => $obj->prenom
+					);
+
+					$substitutionisok=true;
+					$subject2=make_substitutions($subject,$substitutionarray);
+					$message2=make_substitutions($message,$substitutionarray);
+					
+		            // Fabrication du mail
+		            $mail = new CMailFile($subject2, $sendto, $from, $message2, 
+		            						array(), array(), array(),
+		            						'', '', 0, $msgishtml);
+		            $mail->errors_to = $errorsto;
+					
+		            						
+					if ($mail->error)
+					{
+						$res=0;
+					}
+					if (! $substitutionisok)
+					{
+						$mail->error='Some substitution failed';
+						$res=0;
+					}
+
+		            // Envoi du mail
+					if ($res)
+					{
+		    			$res=$mail->sendfile();
+					}
+					
+		            if ($res)
+		            {
+		                // Mail envoye avec succes
+		                $nbok++;
+		    
+				        dolibarr_syslog("mailing-send: ok for #".$i.' - '.$mail->error);
+
+		                $sql="UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
+						$sql.=" SET statut=1, date_envoi=SYSDATE() WHERE rowid=".$obj->rowid;
+		                $resql2=$db->query($sql);
+		                if (! $resql2)
+		                {
+		                    dolibarr_print_error($db);   
+		                }
+		            }
+		            else
+		            {
+		                // Mail en echec
+		                $nbko++;
+		    
+				        dolibarr_syslog("mailing-send: error for #".$i.' - '.$mail->error);
+
+		                $sql="UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
+						$sql.=" SET statut=-1, date_envoi=SYSDATE() WHERE rowid=".$obj->rowid;
+		                $resql2=$db->query($sql);
+		                if (! $resql2)
+		                {
+		                    dolibarr_print_error($db);   
+		                }
+		            }
+		    
+		            $i++;
+		        }
+		    }
+
+		    // Loop finished, set global statut of mail
+		    $statut=2;	// By default status with error
+		    if (! $nbko) $statut=3;
+
+		    $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET statut=".$statut." WHERE rowid=".$id;
+		    dolibarr_syslog("mailing-send: update global status sql=".$sql);
+		    $resql2=$db->query($sql);
+		    if (! $resql2)
+		    {
+		        dolibarr_print_error($db);
+		    }
+		}
+		else
+		{
+		    dolibarr_syslog($db->error());
+		    dolibarr_print_error($db);
+		}
+		$message='';
+		$_GET["action"] = '';	
+
+	}
 }
 
 // Action envoi test mailing
@@ -248,7 +419,7 @@ if ($_GET["action"] == 'create')
 
     print '<table class="border" width="100%">';
 
-    print '<tr><td width="25%">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->mailing->email_from.'"></td></tr>';
+    print '<tr><td width="25%">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>';
     print '<tr><td width="25%">'.$langs->trans("MailTitle").'</td><td><input class="flat" name="titre" size="40" value=""></td></tr>';
     print '<tr><td width="25%">'.$langs->trans("MailTopic").'</td><td><input class="flat" name="sujet" size="60" value=""></td></tr>';
     print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>';
@@ -320,6 +491,24 @@ else
              * Mailing en mode visu
              *
              */
+			if ($_GET["action"] == 'sendall')
+			{
+			    if (empty($conf->global->MAILING_LIMIT_SENDBYWEB))
+				{
+					// Pour des raisons de s�curit�, on ne permet pas cette fonction via l'IHM,
+				    // on affiche donc juste un message
+				    $message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
+				    $message.='<br><textarea cols="50" rows="'.ROWS_2.'" wrap="soft">php ./scripts/mailing/mailing-send.php '.$_GET["id"].'</textarea>';
+				    $message.='<br><br><div class="warning">'.$langs->trans("MailingNeedCommand2").'</div>';
+				    $_GET["action"]='';
+				}
+				else
+				{
+					$text=$langs->trans('ConfirmSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB);
+					$html->form_confirm($_SERVER['PHP_SELF'].'?id='.$_REQUEST['id'],$langs->trans('SendMailing'),$text,'sendallconfirmed');
+					print '<br />';
+				}
+			}
 
             print '<table class="border" width="100%">';
 
@@ -365,6 +554,14 @@ else
 
             print "</div>";
 
+		    if ($_GET["action"] == 'sendall')
+			{
+				// Pour des raisons de s�curit�, on ne permet pas cette fonction via l'IHM,
+				// on affiche donc juste un message
+				$message='<div class="warning">'.$langs->trans("MailingNeedCommand").'</div>';
+				$message.='<br><textarea cols="70" rows="'.ROWS_2.'" wrap="soft">php ./scripts/mailing/mailing-send.php '.$_GET["id"].'</textarea>';
+			}
+			
             if ($message) print "$message<br>";
 
             /*
@@ -388,7 +585,7 @@ else
                     print '<a class="butAction" href="fiche.php?action=valide&amp;id='.$mil->id.'">'.$langs->trans("ValidMailing").'</a>';
                 }
 
-                if ($mil->statut == 1 && $mil->nbemail > 0 && $user->rights->mailing->valider)
+                if (($mil->statut == 1 || $mil->statut == 2) && $mil->nbemail > 0 && $user->rights->mailing->valider)
                 {
                     print '<a class="butAction" href="fiche.php?action=sendall&amp;id='.$mil->id.'">'.$langs->trans("SendMailing").'</a>';
                 }
@@ -414,7 +611,7 @@ else
                       $formmail->withsubstit=1;
                       $formmail->withfrom=0;
                       $formmail->withto=$user->email?$user->email:1;
-                      $formmail->withcc=0;
+                      $formmail->withtocc=0;
                       $formmail->withtopic=0;
                       $formmail->withtopicreadonly=1;
                       $formmail->withfile=0;
diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index 2486aa76cce34e633722cd5db804787c65f96bcb..c5fba87c9666f84ff10fab9b79dcb4bab2c59f52 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -1771,7 +1771,7 @@ if ($_GET['propalid'] > 0)
 		$formmail->frommail = $user->email;
 		$formmail->withfrom=1;
 		$formmail->withto=$liste;
-		$formmail->withcc=1;
+		$formmail->withtocc=1;
 		$formmail->withtopic=$langs->trans('SendPropalRef','__PROPREF__');
 		$formmail->withfile=1;
 		$formmail->withbody=1;
diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php
index 32c185364251d37a02d4be9e8c6aaff80af862fb..da1d0f9469e754d992ede6012ce5852594c07b39 100644
--- a/htdocs/commande/fiche.php
+++ b/htdocs/commande/fiche.php
@@ -1942,7 +1942,7 @@ else
 				$formmail->frommail = $user->email;
 				$formmail->withfrom=1;
 				$formmail->withto=$liste;
-				$formmail->withcc=1;
+				$formmail->withtocc=1;
 				$formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__');
 				$formmail->withfile=1;
 				$formmail->withbody=1;
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 494eff4dbb5d3d1f73f4f07c6c4548e437bbd281..c718b49f2b3f7fe745eeb0bb63922a5aa2db8dd7 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -3055,7 +3055,8 @@ else
 				$formmail->frommail = $user->email;
 				$formmail->withfrom=1;
 				$formmail->withto=$liste;
-				$formmail->withcc=1;
+				$formmail->withtocc=1;
+				$formmail->withtoccc=$conf->global->FACTURE_EMAIL_USECCC;
 				$formmail->withtopic=$langs->trans('SendBillRef','__FACREF__');
 				$formmail->withfile=1;
 				$formmail->withbody=1;
@@ -3111,7 +3112,7 @@ else
 				$formmail->frommail = $user->email;
 				$formmail->withfrom=1;
 				$formmail->withto=$liste;
-				$formmail->withcc=1;
+				$formmail->withtocc=1;
 				$formmail->withtopic=$langs->trans('SendReminderBillRef','__FACREF__');
 				$formmail->withfile=1;
 				$formmail->withbody=1;
diff --git a/htdocs/html.formmail.class.php b/htdocs/html.formmail.class.php
index 7c2877e87d50b91371136a957d97f31e6a9c319d..34ee99320a031ba6cb0b5a0c3f4bc87dc1e5c97b 100644
--- a/htdocs/html.formmail.class.php
+++ b/htdocs/html.formmail.class.php
@@ -1,5 +1,5 @@
 <?PHP
-/* Copyright (C) 2005-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
+/* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,14 +14,12 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * $Id$
  */
 
 /**
         \file       htdocs/html.formmail.class.php
         \brief      Fichier de la classe permettant la g�n�ration du formulaire html d'envoi de mail unitaire
-        \version    $Revision$
+        \version    $Id$
 */
 
 require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php");
@@ -79,6 +77,7 @@ class FormMail
 		$this->withfrom=1;
 		$this->withto=1;
 		$this->withtocc=1;
+		$this->withtoccc=0;
 		$this->witherrorsto=0;
 		$this->withtopic=1;
 		$this->withfile=0;
@@ -219,7 +218,7 @@ class FormMail
 		}
 	
 		// CC
-		if ($this->withcc)
+		if ($this->withtocc || is_array($this->withtocc))
 		{
 			print '<tr><td width="180">'.$langs->trans("MailCC").'</td><td>';
 			if ($this->withtoccreadonly)
@@ -238,6 +237,26 @@ class FormMail
 			print "</td></tr>\n";
 		}
 
+		// CC
+		if ($this->withtoccc || is_array($this->withtoccc))
+		{
+			print '<tr><td width="180">'.$langs->trans("MailCCC").'</td><td>';
+			if ($this->withtocccreadonly)
+			{
+				print (! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))?$this->withtoccc:"";
+			}
+			else
+			{
+				print "<input size=\"30\" name=\"sendtocc\" value=\"".((! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))?$this->withtoccc:"")."\">";
+				if (is_array($this->withtoccc))
+				{
+					print " ".$langs->trans("or")." ";
+					$form->select_array("receiverccc",$this->withtoccc);
+				}
+			}
+			print "</td></tr>\n";
+		}
+		
 		// Accus� r�ception
 		if ($this->withdeliveryreceipt)
 		{
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index e6f54fb9f7cfa8f5d09dd41101dc5a68cfec1f19..b91680ce72b361495171e29ff5b752550dddd59f 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -48,7 +48,7 @@ NbOfRecipients=Number of recipients
 NbOfUniqueEMails=Nb of unique emails
 NbOfEMails=Nb of EMails
 TotalNbOfDistinctRecipients=Number of distinct recipients
-NoTargetYet=No recipients defined yet
+NoTargetYet=No recipients defined yet (Go on tab 'Recipients')
 AddRecipients=Add recipients
 RemoveRecipient=Remove recipient
 CommonSubstitutions=Common substitutions
@@ -72,6 +72,8 @@ SendMailing=Send emailing
 SendMail=Send email
 SentBy=Sent by
 MailingNeedCommand=For securities reason, sending an emailing can only be performed from command line. Ask your administrator to launch the following command to send the emailing to all recipients:
+MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session.
+ConfirmSendingEmailing=Are you sure you want to send mailing ?<br>On line sending of emailings are limited for security reason to <b>%s</b> recipients by sending session.
 TargetsReset=Clear list
 ToClearAllRecipientsClickHere=To clear recipients' list for this emailing, click button
 ToAddRecipientsChooseHere=To add recipients, choose in those lists
diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang
index 180df79eefe7875d92c96a6af761e72cbb2a0606..d01838cfa406c6478430161e0868d79d204bb874 100644
--- a/htdocs/langs/fr_FR/mails.lang
+++ b/htdocs/langs/fr_FR/mails.lang
@@ -48,7 +48,7 @@ NbOfRecipients=Nombre de destinataires
 NbOfUniqueEMails=Nb d'e-mails uniques
 NbOfEMails=Nbre d'EMails
 TotalNbOfDistinctRecipients=Nombre de destinataires uniques
-NoTargetYet=Aucun destinataire d�fini
+NoTargetYet=Aucun destinataire d�fini (Aller sur l'onglet Destinataires)
 AddRecipients=Ajout de destinataires
 RemoveRecipient=Supprime destinataire
 CommonSubstitutions=Substitutions communes
@@ -68,10 +68,12 @@ TargetsStatistics=Statistiques destinataires
 NbOfCompaniesContacts=Contacts uniques des soci�t�s
 MailNoChangePossible=Destinataires d'un mailing valid� non modifiables
 SearchAMailing=Rechercher un mailing
-SendMailing=Envoi mailing
+SendMailing=Envoi emailing
 SendMail=Envoi mail
 SentBy=Envoy� par
-MailingNeedCommand=Pour des raisons de s�curit�, l'envoi d'un mailing de masse ne peut �tre r�alis� qu'en ligne de commande. Demandez � votre administrateur de lancer la commande suivante pour envoyer le mailing � tous les destinataires :
+MailingNeedCommand=Pour des raisons de s�curit�, il est recommand� de faire les envois d'un mailing de masse depuis une ligne de commande. Demandez � votre administrateur de lancer la commande suivante pour envoyer le mailing � tous les destinataires :
+MailingNeedCommand2=Vous pouvez toutefois quand m�me les envoyer en ligne en ajoutant le parametre MAILING_LIMIT_SENDBYWEB avec la valeur du nombre max de mails envoy�s par session d'envoi.
+ConfirmSendingEmailing=Confirmez-vous l'envoi de l'emailing ?<br>L'envoi en ligne des mailings sont limit�s par s�curit� � <b>%s</b> destinataires par session d'envoi.
 TargetsReset=Vider liste
 ToClearAllRecipientsClickHere=Pour vider la liste des destinataires de ce mailing, cliquer le bouton
 ToAddRecipientsChooseHere=Pour ajouter des destinataires, choisir dans les listes ci-dessous
diff --git a/htdocs/telephonie/client/facture.php b/htdocs/telephonie/client/facture.php
index 8bb9a03b3f24560d04ddbdd912c65ffe462b2105..1034c928d353729238a4e8b9b9cf51ab10e1624b 100644
--- a/htdocs/telephonie/client/facture.php
+++ b/htdocs/telephonie/client/facture.php
@@ -675,7 +675,7 @@ if ($_GET["facid"] > 0)
 	  $formmail->frommail = $user->email;
 	  $formmail->withfrom=1;
 	  $formmail->withto=$liste;
-	  $formmail->withcc=1;
+	  $formmail->withtocc=1;
 	  $formmail->withtopic=$langs->trans("SendBillRef","__FACREF__");
 	  $formmail->withfile=1;
 	  $formmail->withbody=1;
@@ -710,7 +710,7 @@ if ($_GET["facid"] > 0)
 	  $formmail->frommail = $user->email;
 	  $formmail->withfrom=1;
 	  $formmail->withto=$liste;
-	  $formmail->withcc=1;
+	  $formmail->withtocc=1;
 	  $formmail->withtopic=$langs->trans("SendReminderBillRef","__FACREF__");
 	  $formmail->withfile=1;
 	  $formmail->withbody=1;