28require 
'../main.inc.php';
 
   29require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
 
   30require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
 
   41$langs->loadLangs(array(
'companies', 
'products', 
'admin', 
'mails', 
'other', 
'errors'));
 
   43$action = 
GETPOST(
'action', 
'aZ09');
 
   44$cancel = 
GETPOST(
'cancel', 
'aZ09');
 
   46$usersignature = $user->signature;
 
   48if ($action == 
'test' || $action == 
'send') {
 
   52$substitutionarrayfortest = array(
 
   53  '__ID__' => 
'RecipientIdRecord',
 
   54  '__USER_LOGIN__' => $user->login,
 
   55  '__USER_EMAIL__' => $user->email,
 
   56  '__USER_SIGNATURE__' => (($user->signature && !
getDolGlobalString(
'MAIN_MAIL_DO_NOT_USE_SIGN')) ? $usersignature : 
''), 
 
   57  '__SENDEREMAIL_SIGNATURE__' => (($user->signature && !
getDolGlobalString(
'MAIN_MAIL_DO_NOT_USE_SIGN')) ? $usersignature : 
''), 
 
   59  '__LASTNAME__' => 
'RecipientLastname',
 
   60  '__FIRSTNAME__' => 
'RecipientFirstname',
 
   61  '__ADDRESS__' => 
'RecipientAddress',
 
   62  '__ZIP__' => 
'RecipientZip',
 
   63  '__TOWN_' => 
'RecipientTown',
 
   64  '__COUNTRY__' => 
'RecipientCountry',
 
   65  '__DOL_MAIN_URL_ROOT__' => DOL_MAIN_URL_ROOT,
 
   66  '__CHECK_READ__' => 
'<img src="'.DOL_MAIN_URL_ROOT.
'/public/emailing/mailing-read.php?tag=undefinedtag&securitykey='.
dol_hash(
getDolGlobalString(
'MAILING_EMAIL_UNSUBSCRIBE_KEY').
"-undefinedtag", 
'md5').
'" width="1" height="1" style="width:1px;height:1px" border="0"/>' 
   71$listofmethods = array();
 
   72$listofmethods[
'default'] = $langs->trans(
'DefaultOutgoingEmailSetup');
 
   73$listofmethods[
'mail'] = 
'PHP mail function';
 
   75$listofmethods[
'smtps'] = 
'SMTP/SMTPS socket library';
 
   76if (version_compare(phpversion(), 
'7.0', 
'>=')) {
 
   77  $listofmethods[
'swiftmailer'] = 
'Swift Mailer socket library';
 
   90if ($action == 
'update' && !$cancel) {
 
   96  if (GETPOSTISSET(
"MAIN_MAIL_SMTPS_PW_EMAILING")) {
 
   99  if (GETPOSTISSET(
"MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING")) {
 
  100    dolibarr_set_const($db, 
"MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING", 
GETPOST(
"MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING", 
'alphanohtml'), 
'chaine', 0, 
'', 
$conf->entity);
 
  102  if (GETPOSTISSET(
"MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING")) {
 
  103    dolibarr_set_const($db, 
"MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING", 
GETPOST(
"MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING", 
'alphanohtml'), 
'chaine', 0, 
'', 
$conf->entity);
 
  107  dolibarr_set_const($db, 
"MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING", 
GETPOST(
"MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING"), 
'chaine', 0, 
'', 
$conf->entity);
 
  109  header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?mainmenu=home&leftmenu=setup");
 
  117$triggersendname = 
''; 
 
  119$mode = 
'emailfortest';
 
  120$trackid = (($action == 
'testhtml') ? 
"testhtml" : 
"test");
 
  121$sendcontext = 
'emailing'; 
 
  122include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
 
  124if ($action == 
'presend' && 
GETPOST(
'trackid', 
'alphanohtml') == 
'test') {
 
  127if ($action == 
'presend' && 
GETPOST(
'trackid', 
'alphanohtml') == 
'testhtml') {
 
  128  $action = 
'testhtml';
 
  138$form = 
new Form($db);
 
  141if (preg_match(
'/^win/i', PHP_OS)) {
 
  144if (preg_match(
'/^mac/i', PHP_OS)) {
 
  149  $conf->global->MAIN_MAIL_SENDMODE_EMAILING = 
'default';
 
  151$port = 
getDolGlobalInt(
'MAIN_MAIL_SMTP_PORT_EMAILING', (
int) ini_get(
'smtp_port'));
 
  157  $server = 
'127.0.0.1';
 
  161$wikihelp = 
'EN:Setup_EMails|FR:Paramétrage_EMails|ES:Configuración_EMails';
 
  162llxHeader(
'', $langs->trans(
"Setup"), $wikihelp, 
'', 0, 0, 
'', 
'', 
'', 
'mod-admin page-mails_emailing');
 
  169$oauthservices = array();
 
  171foreach (
$conf->global as $key => $val) {
 
  172  if (!empty($val) && preg_match(
'/^OAUTH_.*_ID$/', $key)) {
 
  173    $key = preg_replace(
'/^OAUTH_/', 
'', $key);
 
  174    $key = preg_replace(
'/_ID$/', 
'', $key);
 
  175    if (preg_match(
'/^.*-/', $key)) {
 
  176      $name = preg_replace(
'/^.*-/', 
'', $key);
 
  178      $name = $langs->trans(
"NoName");
 
  180    $provider = preg_replace(
'/-.*$/', 
'', $key);
 
  181    $provider = ucfirst(strtolower($provider));
 
  183    $oauthservices[$key] = $name.
" (".$provider.
")";
 
  187if ($action == 
'edit') {
 
  188  if (
$conf->use_javascript_ajax) {
 
  189    print 
"\n".
'<script type="text/javascript">';
 
  190    print 
'jQuery(document).ready(function () { 
  191                    function initfields() 
  193                        if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'default\') 
  195                            jQuery(".hideifdefault").hide(); 
  199                            jQuery(".hideifdefault").show(); 
  202            if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'mail\') 
  204              console.log("I choose php mail mode"); 
  205                            jQuery(".drag").hide(); 
  206                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val(0); 
  207                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").prop("disabled", true); 
  208                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(0); 
  209                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").prop("disabled", true); 
  210                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0); 
  211                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").prop("disabled", true); 
  212                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").val(0); 
  213                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").prop("disabled", true); 
  214                            jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN_EMAILING").prop("disabled", true); 
  215                            jQuery("#MAIN_MAIL_EMAIL_DKIM_SELECTOR_EMAILING").prop("disabled", true); 
  216                            jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY_EMAILING").prop("disabled", true); 
  217              jQuery(".smtp_method").hide(); 
  218              jQuery(".dkim").hide(); 
  219                            jQuery(".smtp_auth_method").hide(); 
  223                     jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").hide(); 
  224                     jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").hide(); 
  225                     jQuery("#smtp_server_mess").show(); 
  226                     jQuery("#smtp_port_mess").show(); 
  230                     jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").prop("disabled", true); 
  231                     jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").prop("disabled", true); 
  232                     jQuery("#smtp_server_mess").hide(); 
  233                     jQuery("#smtp_port_mess").hide(); 
  238                        if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'smtps\') 
  240              console.log("I choose smtps mail mode"); 
  241                            jQuery(".drag").show(); 
  242                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_TLS_EMAILING').
'); 
  243                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").removeAttr("disabled"); 
  244                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_STARTTLS_EMAILING').
'); 
  245                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").removeAttr("disabled"); 
  246                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING').
'); 
  247                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").removeAttr("disabled"); 
  248                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").val(0); 
  249                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").prop("disabled", true); 
  250                            jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN_EMAILING").prop("disabled", true); 
  251                            jQuery("#MAIN_MAIL_EMAIL_DKIM_SELECTOR_EMAILING").prop("disabled", true); 
  252                            jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY_EMAILING").prop("disabled", true); 
  253                            jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN_EMAILING").hide(); 
  254                            jQuery("#MAIN_MAIL_EMAIL_DKIM_SELECTOR_EMAILING").hide(); 
  255                            jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY_EMAILING").hide(); 
  256                            jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").removeAttr("disabled"); 
  257                            jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").removeAttr("disabled"); 
  258                            jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").show(); 
  259                            jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").show(); 
  260              jQuery("#smtp_port_mess").hide(); 
  261                            jQuery("#smtp_server_mess").hide(); 
  262              jQuery(".smtp_method").show(); 
  263              jQuery(".dkim").hide(); 
  264                            jQuery(".smtp_auth_method").show(); 
  266                        if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'swiftmailer\') 
  268              console.log("I choose swiftmailer mail mode"); 
  269              jQuery(".drag").show(); 
  270                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_TLS_EMAILING').
'); 
  271                            jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").removeAttr("disabled"); 
  272                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_STARTTLS_EMAILING').
'); 
  273                            jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").removeAttr("disabled"); 
  274                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(' . 
getDolGlobalString(
'MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING').
'); 
  275                            jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").removeAttr("disabled"); 
  276                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").val(0); 
  277                            jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED_EMAILING").prop("disabled", true); 
  278                            jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN_EMAILING").prop("disabled", true); 
  279                            jQuery("#MAIN_MAIL_EMAIL_DKIM_SELECTOR_EMAILING").prop("disabled", true); 
  280                            jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY_EMAILING").prop("disabled", true); 
  281                            jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN_EMAILING").hide(); 
  282                            jQuery("#MAIN_MAIL_EMAIL_DKIM_SELECTOR_EMAILING").hide(); 
  283                            jQuery("#MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY_EMAILING").hide(); 
  284                            jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").removeAttr("disabled"); 
  285                            jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").removeAttr("disabled"); 
  286                            jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").show(); 
  287                            jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").show(); 
  288                            jQuery("#smtp_server_mess").hide(); 
  289                            jQuery("#smtp_port_mess").hide(); 
  290              jQuery(".smtp_method").show(); 
  291              jQuery(".dkim").show(); 
  292              jQuery(".smtp_auth_method").show(); 
  295          function change_smtp_auth_method() { 
  296            console.log("Call smtp auth method"); 
  297            if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'smtps\') { 
  298              if (jQuery("#radio_oauth").prop("checked")) { 
  299                jQuery(".smtp_pw").hide(); 
  300                jQuery(".smtp_oauth_service").show(); 
  302                jQuery(".smtp_pw").show(); 
  303                jQuery(".smtp_oauth_service").hide(); 
  305            } else if (jQuery("#MAIN_MAIL_SENDMODE_EMAILING").val()==\'swiftmailer\') { 
  306              if (jQuery("#radio_oauth").prop("checked")) { 
  307                jQuery(".smtp_pw").hide(); 
  308                jQuery(".smtp_oauth_service").show(); 
  310                jQuery(".smtp_pw").show(); 
  311                jQuery(".smtp_oauth_service").hide(); 
  314              jQuery(".smtp_pw").hide(); 
  315              jQuery(".smtp_oauth_service").hide(); 
  319          change_smtp_auth_method(); 
  322          jQuery("#MAIN_MAIL_SENDMODE_EMAILING").change(function() { 
  323            change_smtp_auth_method(); 
  326          jQuery("#radio_pw, #radio_plain, #radio_oauth").change(function() { 
  327            change_smtp_auth_method(); 
  329          jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").change(function() { 
  330            if (jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val() == 1) 
  331              jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(0); 
  333              jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0); 
  335          jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").change(function() { 
  336            if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val() == 1) 
  337              jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val(0); 
  339              jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0); 
  342    print 
'</script>'.
"\n";
 
  345  print 
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'">';
 
  346  print 
'<input type="hidden" name="token" value="'.newToken().
'">';
 
  347  print 
'<input type="hidden" name="action" value="update">';
 
  351  print 
'<span class="opacitymedium">'.$langs->trans(
"EMailsDesc").
"</span><br>\n";
 
  357  print 
'<table class="noborder centpercent">';
 
  358  print 
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameters").
'</td><td></td></tr>';
 
  362  print 
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_MAIL_SENDMODE").
'</td><td>';
 
  365  if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  366    print $form->selectarray(
'MAIN_MAIL_SENDMODE_EMAILING', $listofmethods, 
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'));
 
  370      $text = $langs->trans(
"Undefined");
 
  372    $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  373    print $form->textwithpicto($text, $htmltext, 1, 
'superadmin');
 
  374    print 
'<input type="hidden" name="MAIN_MAIL_SENDMODE_EMAILING" value="' . 
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING').
'">';
 
  380  print 
'<tr class="oddeven hideifdefault">';
 
  381  if (!
$conf->use_javascript_ajax && $linuxlike && 
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING') == 
'mail') {
 
  383    print $langs->trans(
"MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike");
 
  385    print 
'<span class="opacitymedium">'.$langs->trans(
"SeeLocalSendMailSetup").
'</span>';
 
  390    $smtpserver = ini_get(
'SMTP') ? ini_get(
'SMTP') : $langs->transnoentities(
"Undefined");
 
  392      print $langs->trans(
"MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike");
 
  394      print $langs->trans(
"MAIN_MAIL_SMTP_SERVER", $smtpserver);
 
  398    if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  399      print 
'<input class="flat minwidth300" id="MAIN_MAIL_SMTP_SERVER_EMAILING" name="MAIN_MAIL_SMTP_SERVER_EMAILING" size="18" value="' . $mainserver . 
'">';
 
  400      print 
'<input type="hidden" id="MAIN_MAIL_SMTP_SERVER_EMAILING_sav" name="MAIN_MAIL_SMTP_SERVER_EMAILING_sav" value="' . $mainserver . 
'">';
 
  401      print 
'<span id="smtp_server_mess" class="opacitymedium">' . $langs->trans(
"SeeLocalSendMailSetup") . 
'</span>';
 
  402      print 
' <span class="opacitymedium smtp_method">' . $langs->trans(
"SeeLinkToOnlineDocumentation") . 
'</span>';
 
  404      $text = !empty($mainserver) ? $mainserver : $smtpserver;
 
  405      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  406      print $form->textwithpicto($text, $htmltext, 1, 
'superadmin');
 
  407      print 
'<input type="hidden" id="MAIN_MAIL_SMTP_SERVER_EMAILING" name="MAIN_MAIL_SMTP_SERVER_EMAILING" value="' . $mainserver . 
'">';
 
  415  print 
'<tr class="oddeven hideifdefault hideonmodemail"><td>';
 
  416  if (!
$conf->use_javascript_ajax && $linuxlike && 
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING') == 
'mail') {
 
  417    print $langs->trans(
"MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike");
 
  419    print 
'<span class="opacitymedium">'.$langs->trans(
"SeeLocalSendMailSetup").
'</span>';
 
  422    $smtpport = ini_get(
'smtp_port') ? ini_get(
'smtp_port') : $langs->transnoentities(
"Undefined");
 
  424      print $langs->trans(
"MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike");
 
  426      print $langs->trans(
"MAIN_MAIL_SMTP_PORT", $smtpport);
 
  430    if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  431      print 
'<input class="flat" id="MAIN_MAIL_SMTP_PORT_EMAILING" name="MAIN_MAIL_SMTP_PORT_EMAILING" size="3" value="' . $mainport . 
'">';
 
  432      print 
'<input type="hidden" id="MAIN_MAIL_SMTP_PORT_EMAILING_sav" name="MAIN_MAIL_SMTP_PORT_EMAILING_sav" value="' . $mainport . 
'">';
 
  433      print 
'<span id="smtp_port_mess" class="opacitymedium">' . $langs->trans(
"SeeLocalSendMailSetup") . 
'</span>';
 
  435      $text = (!empty($mainport) ? $mainport : $smtpport);
 
  436      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  437      print $form->textwithpicto($text, $htmltext, 1, 
'superadmin');
 
  438      print 
'<input type="hidden" id="MAIN_MAIL_SMTP_PORT_EMAILING" name="MAIN_MAIL_SMTP_PORT_EMAILING" value="' . $mainport . 
'">';
 
  444  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  445    print 
'<tr class="oddeven smtp_auth_method hideonmodemail hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_AUTH_TYPE").
'</td><td>';
 
  446    $vartosmtpstype = 
'MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING';
 
  447    if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  449      print 
'<input type="radio" id="radio_pw" name="'.$vartosmtpstype.
'" value="LOGIN"'.(
getDolGlobalString($vartosmtpstype, 
'LOGIN') == 
'LOGIN' ? 
' checked' : 
'').
'> ';
 
  450      print 
'<label for="radio_pw" >'.$langs->trans(
"UseAUTHLOGIN").
'</label>';
 
  452      print 
'<input type="radio" id="radio_plain" name="'.$vartosmtpstype.
'" value="PLAIN"'.(
getDolGlobalString($vartosmtpstype, 
'PLAIN') == 
'PLAIN' ? 
' checked' : 
'').
'> ';
 
  453      print 
'<label for="radio_plain" >'.$langs->trans(
"UseAUTHPLAIN").
'</label>';
 
  455      print 
'<input type="radio" id="radio_oauth" name="'.$vartosmtpstype.
'" value="XOAUTH2"'.(
getDolGlobalString($vartosmtpstype) == 
'XOAUTH2' ? 
' checked' : 
'').(isModEnabled(
'oauth') ? 
'' : 
' disabled').
'> ';
 
  456      print 
'<label for="radio_oauth" >'.$form->textwithpicto($langs->trans(
"UseOauth"), $langs->trans(
"OauthNotAvailableForAllAndHadToBeCreatedBefore")).
'</label>';
 
  457      if (!isModEnabled(
'oauth')) {
 
  458        print 
'   <a href="'.DOL_URL_ROOT.
'/admin/modules.php?search_keyword=oauth">'.$langs->trans(
"EnableModuleX", 
"OAuth").
'</a>';
 
  460        print 
'   <a href="'.DOL_URL_ROOT.
'/admin/oauth.php">'.$langs->trans(
"SetupModuleX", 
" OAuth").
'</a>';
 
  464      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  465      print $form->textwithpicto($langs->trans(
"MAIN_MAIL_SMTPS_AUTH_TYPE"), $htmltext, 1, 
'superadmin');
 
  466      print 
'<input type="hidden" id="MAIN_MAIL_SMTPS_AUTH_TYPE" name="MAIN_MAIL_SMTPS_AUTH_TYPE_EMAILING" value="'.$value.
'">';
 
  472  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  474    print 
'<tr class="drag drop oddeven hideifdefault"><td>' . $langs->trans(
"MAIN_MAIL_SMTPS_ID") . 
'</td><td>';
 
  476    if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  477      print 
'<input class="flat" name="MAIN_MAIL_SMTPS_ID_EMAILING" size="32" value="' . $mainstmpid . 
'">';
 
  479      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  480      print $form->textwithpicto(
getDolGlobalString(
'MAIN_MAIL_SMTPS_ID_EMAILING'), $htmltext, 1, 
'superadmin');
 
  481      print 
'<input type="hidden" name="MAIN_MAIL_SMTPS_ID_EMAILING" value="' . $mainstmpid . 
'">';
 
  487  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  489    print 
'<tr class="drag drop oddeven smtp_pw hideifdefault"><td>' . $langs->trans(
"MAIN_MAIL_SMTPS_PW") . 
'</td><td>';
 
  491    if (!isModEnabled(
'multicompany') || ($user->admin && !$user->entity)) {
 
  492      print 
'<input class="flat" type="password" name="MAIN_MAIL_SMTPS_PW_EMAILING" size="32" value="' . $mainsmtppw . 
'">';
 
  494      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  495      print $form->textwithpicto(
getDolGlobalString(
'MAIN_MAIL_SMTPS_PW_EMAILING'), $htmltext, 1, 
'superadmin');
 
  496      print 
'<input type="hidden" name="MAIN_MAIL_SMTPS_PW_EMAILING" value="' . $mainsmtppw . 
'">';
 
  502  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  503    print 
'<tr class="oddeven smtp_oauth_service hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_OAUTH_SERVICE").
'</td><td>';
 
  506    if (!isModEnabled(
'multicompany')  || ($user->admin && !$user->entity)) {
 
  508      print $form->selectarray(
'MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING', $oauthservices, 
getDolGlobalString(
'MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING'));
 
  512        $text = $langs->trans(
"Undefined");
 
  514      $htmltext = $langs->trans(
"ContactSuperAdminForChange");
 
  515      print $form->textwithpicto($text, $htmltext, 1, 
'superadmin');
 
  516      print 
'<input type="hidden" name="MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING" value="' . 
getDolGlobalString(
'MAIN_MAIL_SMTPS_OAUTH_SERVICE_EMAILING').
'">';
 
  523  print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_TLS").
'</td><td>';
 
  524  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  525    if (function_exists(
'openssl_open')) {
 
  528      print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  531    print 
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
 
  536  print 
'<tr class="oddeven hideifdefault hideonmodemail"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_STARTTLS").
'</td><td>';
 
  537  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  538    if (function_exists(
'openssl_open')) {
 
  539      print $form->selectyesno(
'MAIN_MAIL_EMAIL_STARTTLS_EMAILING', (
getDolGlobalString(
'MAIN_MAIL_EMAIL_STARTTLS_EMAILING') ? 
getDolGlobalString(
'MAIN_MAIL_EMAIL_STARTTLS_EMAILING') : 0), 1);
 
  541      print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  544    print 
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
 
  549  print 
'<tr class="oddeven hideifdefault hideonmodemail"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").
'</td><td>';
 
  550  if (!empty(
$conf->use_javascript_ajax) || in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  551    if (function_exists(
'openssl_open')) {
 
  552      print $form->selectyesno(
'MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING', (
getDolGlobalString(
'MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING') ? 
getDolGlobalString(
'MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING') : 0), 1);
 
  554      print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  557    print 
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
 
  565  print $form->buttonsSaveCancel();
 
  571  print 
'<span class="opacitymedium">'.$langs->trans(
"EMailsDesc").
"</span><br>\n";
 
  574  print 
'<div class="div-table-responsive-no-min">'; 
 
  575  print 
'<table class="noborder centpercent">';
 
  576  print 
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameters").
'</td><td></td></tr>';
 
  579  print 
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_MAIL_SENDMODE").
'</td><td>';
 
  582    $text = $langs->trans(
"Undefined").img_warning();
 
  585    print 
'<span class="opacitymedium">'.$text.
'</span>';
 
  596      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTP_SERVER", ini_get(
'SMTP') ? ini_get(
'SMTP') : $langs->transnoentities(
"Undefined")).
'</td><td>'.
getDolGlobalString(
'MAIN_MAIL_SMTP_SERVER_EMAILING').
'</td></tr>';
 
  603      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTP_PORT", ini_get(
'smtp_port') ? ini_get(
'smtp_port') : $langs->transnoentities(
"Undefined")).
'</td><td>'.
getDolGlobalString(
'MAIN_MAIL_SMTP_PORT_EMAILING').
'</td></tr>';
 
  607    if (in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  610      if ($authtype === 
"LOGIN") {
 
  611        $text = $langs->trans(
"UseAUTHLOGIN");
 
  612      } elseif ($authtype === 
"PLAIN") {
 
  613        $text = $langs->trans(
"UseAUTHPLAIN");
 
  614      } elseif ($authtype === 
"XOAUTH2") {
 
  615        $text = $langs->trans(
"UseOauth");
 
  617      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_AUTH_TYPE").
'</td><td>'.$text.
'</td></tr>';
 
  621    if (in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  622      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_ID").
'</td><td>'.
getDolGlobalString(
'MAIN_MAIL_SMTPS_ID_EMAILING').
'</td></tr>';
 
  627      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_PW").
'</td><td>'.preg_replace(
'/./', 
'*', 
getDolGlobalString(
'MAIN_MAIL_SMTPS_PW_EMAILING')).
'</td></tr>';
 
  634        $text = $langs->trans(
"Undefined").img_warning();
 
  636      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_OAUTH_SERVICE").
'</td><td>'.$text.
'</td></tr>';
 
  643      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_TLS").
'</td><td>';
 
  644      if (in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  645        if (function_exists(
'openssl_open')) {
 
  648          print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  651        print 
'<span class="opacitymedium">'.yn(0).
' ('.$langs->trans(
"NotSupported").
')</span>';
 
  660      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_STARTTLS").
'</td><td>';
 
  661      if (in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  662        if (function_exists(
'openssl_open')) {
 
  665          print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  668        print 
'<span class="opacitymedium">'.yn(0).
' ('.$langs->trans(
"NotSupported").
')</span>';
 
  677      print 
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").
'</td><td>';
 
  678      if (in_array(
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING'), array(
'smtps', 
'swiftmailer'))) {
 
  679        if (function_exists(
'openssl_open')) {
 
  682          print 
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
 
  685        print 
'<span class="opacitymedium">'.yn(0).
' ('.$langs->trans(
"NotSupported").
')</span>';
 
  708    print 
info_admin($langs->trans(
"SendmailOptionMayHurtBuggedMTA"));
 
  714  print 
'<div class="tabsAction">';
 
  716  print 
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=edit&token='.
newToken().
'">'.$langs->trans(
"Modify").
'</a>';
 
  720      if (function_exists(
'fsockopen') && $port && $server) {
 
  721        print 
'<a class="butAction" href="' . $_SERVER[
"PHP_SELF"] . 
'?action=testconnect">' . $langs->trans(
"DoTestServerAvailability") . 
'</a>';
 
  724      print 
'<a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans(
"FeatureNotAvailableOnLinux") . 
'">' . $langs->trans(
"DoTestServerAvailability") . 
'</a>';
 
  727    print 
'<a class="butAction" href="' . $_SERVER[
"PHP_SELF"] . 
'?action=test&mode=init">' . $langs->trans(
"DoTestSend") . 
'</a>';
 
  729    if (isModEnabled(
'fckeditor')) {
 
  730      print 
'<a class="butAction" href="' . $_SERVER[
"PHP_SELF"] . 
'?action=testhtml&mode=init">' . $langs->trans(
"DoTestSendHTML") . 
'</a>';
 
  737  if (
getDolGlobalString(
'MAIN_MAIL_SENDMODE_EMAILING') == 
'mail' && !in_array($action, array(
'testconnect', 
'test', 
'testhtml'))) {
 
  738    $text = $langs->trans(
"WarningPHPMail", $listofmethods[
'mail'], $listofmethods[
'smtps']);
 
  743  if ($action == 
'testconnect') {
 
  744    print 
'<div id="formmailaftertstconnect" name="formmailaftertstconnect"></div>';
 
  747    include_once DOL_DOCUMENT_ROOT.
'/core/class/CMailFile.class.php';
 
  748    $mail = 
new CMailFile(
'', 
'', 
'', 
'', array(), array(), array(), 
'', 
'', 0, 0, 
'', 
'', 
'', $trackid, $sendcontext);
 
  750    $result = $mail->check_server_port($server, $port);
 
  752      print 
'<div class="ok">'.$langs->trans(
"ServerAvailableOnIPOrPort", $server, $port).
'</div>';
 
  754      $errormsg = $langs->trans(
"ServerNotAvailableOnIPOrPort", $server, $port);
 
  757        $errormsg .= 
' - '.$mail->error;
 
  766  if ($action == 
'test' || $action == 
'testhtml') {
 
  767    print 
'<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
 
  768    print 
load_fiche_titre($action == 
'testhtml' ? $langs->trans(
"DoTestSendHTML") : $langs->trans(
"DoTestSend"));
 
  773    include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmail.class.php';
 
  775    $formmail->trackid = (($action == 
'testhtml') ? 
"testhtml" : 
"test");
 
  776    $formmail->fromname = (GETPOSTISSET(
'fromname') ? 
GETPOST(
'fromname', 
'restricthtml') : 
getDolGlobalString(
'MAIN_MAIL_EMAIL_FROM'));
 
  777    $formmail->frommail = (GETPOSTISSET(
'frommail') ? 
GETPOST(
'frommail', 
'restricthtml') : 
getDolGlobalString(
'MAIN_MAIL_EMAIL_FROM'));
 
  778    $formmail->fromid = $user->id;
 
  779    $formmail->fromalsorobot = 1;
 
  780    $formmail->withfromreadonly = 0;
 
  781    $formmail->withsubstit = 0;
 
  782    $formmail->withfrom = 1;
 
  783    $formmail->witherrorsto = 1;
 
  784    $formmail->withto = (GETPOSTISSET(
'sendto') ? 
GETPOST(
'sendto', 
'restricthtml') : ($user->
email ? $user->
email : 1));
 
  785    $formmail->withtocc = (GETPOSTISSET(
'sendtocc') ? 
GETPOST(
'sendtocc', 
'restricthtml') : 1); 
 
  786    $formmail->withtoccc = (GETPOSTISSET(
'sendtoccc') ? 
GETPOST(
'sendtoccc', 
'restricthtml') : 1); 
 
  787    $formmail->withtopic = (GETPOSTISSET(
'subject') ? 
GETPOST(
'subject') : $langs->trans(
"Test"));
 
  788    $formmail->withtopicreadonly = 0;
 
  789    $formmail->withfile = 2;
 
  790    $formmail->withbody = (GETPOSTISSET(
'message') ? 
GETPOST(
'message', 
'restricthtml') : ($action == 
'testhtml' ? $langs->transnoentities(
"PredefinedMailTestHtml") : $langs->transnoentities(
"PredefinedMailTest")));
 
  791    $formmail->withbodyreadonly = 0;
 
  792    $formmail->withcancel = 1;
 
  793    $formmail->withdeliveryreceipt = 1;
 
  794    $formmail->withfckeditor = ($action == 
'testhtml' ? 1 : 0);
 
  795    $formmail->ckeditortoolbar = 
'dolibarr_mailings';
 
  797    $formmail->substit = $substitutionarrayfortest;
 
  799    $formmail->param[
"action"] = 
"send";
 
  800    $formmail->param[
"models"] = 
"body";
 
  801    $formmail->param[
"mailid"] = 0;
 
  802    $formmail->param[
"returnurl"] = $_SERVER[
"PHP_SELF"];
 
  805    if (
GETPOST(
"mode", 
"aZ09") == 
'init') {
 
  806      $formmail->clear_attached_files();
 
  809    print $formmail->get_form(
'addfile', 
'removefile');
 
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
 
email_admin_prepare_head()
Return array head with list of tabs to view object information.
 
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
 
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
 
Class to send emails (with attachments or not) Usage: $mailfile = new CMailFile($subject,...
 
print $script_file $mode $langs defaultlang(is_numeric($duration_value) ? " delay=". $duration_value :"").(is_numeric($duration_value2) ? " after cd cd cd description as p label as s rowid as s nom as s email
Sender: Who sends the email ("Sender" has sent emails on behalf of "From").
 
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
 
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
 
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
 
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
 
dol_get_fiche_end($notab=0)
Return tab footer of a card.
 
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
 
newToken()
Return the value of token currently saved into session with name 'newtoken'.
 
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
 
complete_substitutions_array(&$substitutionarray, $outputlangs, $object=null, $parameters=null, $callfunc="completesubstitutionarray")
Complete the $substitutionarray with more entries coming from external module that had set the "subst...
 
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
 
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
 
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='')
Show information in HTML for admin users or standard users.
 
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
 
dol_hash($chain, $type='0', $nosalt=0)
Returns a hash (non reversible encryption) of a string.
 
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.