diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php
index 0b56e15a4e3..e5e531434ce 100644
--- a/htdocs/admin/mails.php
+++ b/htdocs/admin/mails.php
@@ -77,6 +77,7 @@ if ($action == 'update' && empty($_POST["cancel"]))
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM", GETPOST("MAIN_MAIL_EMAIL_FROM"), 'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_MAIL_ERRORS_TO", GETPOST("MAIN_MAIL_ERRORS_TO"), 'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO", GETPOST("MAIN_MAIL_AUTOCOPY_TO"),'chaine',0,'',$conf->entity);
+ dolibarr_set_const($db, 'MAIN_MAIL_DEFAULT_FROMTYPE',GETPOST('MAIN_MAIL_DEFAULT_FROMTYPE'),'chaine',0,'',$conf->entity);
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
exit;
@@ -410,13 +411,24 @@ if ($action == 'edit')
print '
| '.$langs->trans("MAIN_MAIL_AUTOCOPY_TO").' | ';
print ' |
';
- print '';
- print '
';
- print '';
- print ' ';
- print '';
- print '
';
+ // Default from type
+ $var=!$var;
+ $liste = array();
+ $liste['user'] = $langs->trans('User');
+ $liste['company'] = $langs->trans('Company');
+
+ print '| '.$langs->trans('MAIN_MAIL_DEFAULT_FROMTYPE').' | ';
+ print $form->selectarray('MAIN_MAIL_DEFAULT_FROMTYPE',$liste,$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE,0);
+ print ' |
';
+
+ print '';
+
+ print '
';
+ print '';
+ print ' ';
+ print '';
+ print '
';
print '';
}
@@ -540,6 +552,18 @@ else
}
print '';
+ //Default from type
+ $var=!$var;
+
+ print '| '.$langs->trans('MAIN_MAIL_DEFAULT_FROMTYPE').' | ';
+ print '';
+ if($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE === 'user'){
+ print $langs->trans('User');
+ } else {
+ print $langs->trans('Company');
+ }
+ print ' |
';
+
print '';
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA))
diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php
index da6cfdaf15f..038b42e7c13 100644
--- a/htdocs/comm/propal/card.php
+++ b/htdocs/comm/propal/card.php
@@ -2421,10 +2421,12 @@ if ($action == 'create')
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='pro'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 41cd63ff446..88f8f8fa3df 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -441,10 +441,12 @@ if ($resql)
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->withform=-1;
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 1)) // If bit 1 is set
{
$formmail->trackid='ord'.$object->id;
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index 9d35e4cc683..b79ea443a3e 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -2629,10 +2629,12 @@ if ($action == 'create' && $user->rights->commande->creer)
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='ord'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index b1abbcfb6b5..beccd80c7e8 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -469,10 +469,12 @@ if ($resql)
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->withform=-1;
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 1)) // If bit 1 is set
{
$formmail->trackid='ord'.$object->id;
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index dbd36308b1e..a365146b5a2 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -4108,10 +4108,12 @@ else if ($id > 0 || ! empty($ref))
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='inv'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index 70e4cc03974..52b8b5d736b 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -520,10 +520,12 @@ if ($resql)
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->withform=-1;
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 1)) // If bit 1 is set
{
$formmail->trackid='inv'.$object->id;
diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php
index 3ac6fb36289..f5381301bce 100644
--- a/htdocs/core/actions_sendmails.inc.php
+++ b/htdocs/core/actions_sendmails.inc.php
@@ -201,8 +201,17 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
{
$langs->load("commercial");
- $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
- $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>';
+ if(GETPOST('fromtype')==='user'){
+ $from = $user->getFullName($langs) .' <'.$user->email.'>';
+
+ }elseif( GETPOST('fromtype')==='company'){
+ $from = $conf->global->MAIN_INFO_SOCIETE_NOM .' <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
+ }
+ else {
+ $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
+ }
+
+ $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>';
$message = $_POST['message'];
$sendtobcc= GETPOST('sendtoccc');
if ($mode == 'emailfromproposal') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO));
diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
index 96f6ddc3dd9..fcd6f559332 100644
--- a/htdocs/core/class/html.formmail.class.php
+++ b/htdocs/core/class/html.formmail.class.php
@@ -370,29 +370,30 @@ class FormMail extends Form
$out.= '';
$out.= '';
$out.= '| '.$langs->trans("MailFrom").' | ';
- if ($this->fromtype == 'user' && $this->fromid > 0)
- {
- $langs->load("users");
- $fuser=new User($this->db);
- $fuser->fetch($this->fromid);
- $out.= $fuser->getNomUrl(1);
- }
- else
- {
- $out.= $this->fromname;
- }
- if ($this->frommail)
- {
- $out.= " <".$this->frommail.">";
- }
- else
- {
- if ($this->fromtype)
- {
- $langs->load("errors");
- $out.= ' <'.$langs->trans("ErrorNoMailDefinedForThisUser").'> ';
- }
- }
+
+ if (!($this->fromtype === 'user' && $this->fromid > 0) && !($this->fromtype === 'company'))
+ {
+ $out.= $this->fromname;
+ if ($this->frommail)
+ {
+ $out.= ' <'.$this->frommail.'>';
+ }
+ else
+ {
+ if ($this->fromtype)
+ {
+ $langs->load('errors');
+ $out.= ' <'.$langs->trans('ErrorNoMailDefinedForThisUser').'> ';
+ }
+ }
+ }else{
+ $liste = array();
+ $liste['user'] = $user->getFullName($langs) .' <'.$user->email.'>';
+ $liste['company'] = $conf->global->MAIN_INFO_SOCIETE_NOM .' <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
+ $out.= ' '.$form->selectarray('fromtype', $liste, $this->fromtype, 0);
+ }
+
+
$out.= " |
\n";
$out.= "\n";
}
diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
index 2a480355214..b64d40eeb4a 100644
--- a/htdocs/expedition/card.php
+++ b/htdocs/expedition/card.php
@@ -1979,10 +1979,12 @@ else if ($id || $ref)
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='shi'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
index aeeb2959210..bfea0d64bd5 100644
--- a/htdocs/fichinter/card.php
+++ b/htdocs/fichinter/card.php
@@ -1843,10 +1843,12 @@ else if ($id > 0 || ! empty($ref))
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='int'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index 5cb55955cc2..4460a335463 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -2158,10 +2158,12 @@ elseif (! empty($object->id))
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='sor'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index 9ca109b1345..686fd9f14c8 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -2519,10 +2519,12 @@ else
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='sin'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 0384e063a91..33580432806 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -244,6 +244,7 @@ MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
MAIN_SMS_SENDMODE=Method to use to send SMS
MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
+MAIN_MAIL_DEFAULT_FROMTYPE=Email to be used by default (User / Company)
FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/
SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php
index 120f9badace..9709b4ecbac 100644
--- a/htdocs/societe/soc.php
+++ b/htdocs/societe/soc.php
@@ -814,7 +814,8 @@ else
if(empty($duplicate_code_error)) {
$object->code_client = GETPOST('code_client', 'alpha');
$object->fournisseur = GETPOST('fournisseur')?GETPOST('fournisseur'):$object->fournisseur;
- }
else {
+ }
+ else {
setEventMessages($langs->trans('NewCustomerSupplierCodeProposed'),'', 'warnings');
}
@@ -2419,10 +2420,12 @@ else
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='thi'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php
index ed44522f6b7..83fcedad131 100644
--- a/htdocs/supplier_proposal/card.php
+++ b/htdocs/supplier_proposal/card.php
@@ -1910,10 +1910,12 @@ if ($action == 'create')
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
- $formmail->fromtype = 'user';
- $formmail->fromid = $user->id;
- $formmail->fromname = $user->getFullName($langs);
- $formmail->frommail = $user->email;
+ $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
+
+ if($formmail->fromtype === 'user'){
+ $formmail->fromid = $user->id;
+
+ }
$formmail->trackid='spr'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{