26 require
'../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
31 $langs->loadLangs(array(
'companies',
'products',
'admin',
'mails',
'other',
'errors'));
33 $action =
GETPOST(
'action',
'aZ09');
34 $cancel =
GETPOST(
'cancel',
'alpha');
36 $usersignature = $user->signature;
38 if ($action ==
'test' || $action ==
'send') {
42 $substitutionarrayfortest = array(
43 '__LOGIN__' => $user->login,
44 '__ID__' =>
'TESTIdRecord',
45 '__EMAIL__' =>
'TESTEMail',
46 '__LASTNAME__' =>
'TESTLastname',
47 '__FIRSTNAME__' =>
'TESTFirstname',
48 '__USER_SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN)) ? $usersignature :
''),
63 if ($action ==
'update' && !$cancel) {
65 dolibarr_set_const($db,
"MAIN_MAIL_SENDMODE_TICKET",
GETPOST(
"MAIN_MAIL_SENDMODE_TICKET"),
'chaine', 0,
'', $conf->entity);
66 dolibarr_set_const($db,
"MAIN_MAIL_SMTP_PORT_TICKET",
GETPOST(
"MAIN_MAIL_SMTP_PORT_TICKET"),
'chaine', 0,
'', $conf->entity);
67 dolibarr_set_const($db,
"MAIN_MAIL_SMTP_SERVER_TICKET",
GETPOST(
"MAIN_MAIL_SMTP_SERVER_TICKET"),
'chaine', 0,
'', $conf->entity);
68 dolibarr_set_const($db,
"MAIN_MAIL_SMTPS_ID_TICKET",
GETPOST(
"MAIN_MAIL_SMTPS_ID_TICKET"),
'chaine', 0,
'', $conf->entity);
69 dolibarr_set_const($db,
"MAIN_MAIL_SMTPS_PW_TICKET",
GETPOST(
"MAIN_MAIL_SMTPS_PW_TICKET"),
'chaine', 0,
'', $conf->entity);
70 dolibarr_set_const($db,
"MAIN_MAIL_EMAIL_TLS_TICKET",
GETPOST(
"MAIN_MAIL_EMAIL_TLS_TICKET"),
'chaine', 0,
'', $conf->entity);
71 dolibarr_set_const($db,
"MAIN_MAIL_EMAIL_STARTTLS_TICKET",
GETPOST(
"MAIN_MAIL_EMAIL_STARTTLS_TICKET"),
'chaine', 0,
'', $conf->entity);
73 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?mainmenu=home&leftmenu=setup");
81 $triggersendname =
'';
83 $mode =
'emailfortest';
84 $trackid = (($action ==
'testhtml') ?
"testhtml" :
"test");
85 $sendcontext =
'ticket';
86 include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
88 if ($action ==
'presend' &&
GETPOST(
'trackid') ==
'test') {
91 if ($action ==
'presend' &&
GETPOST(
'trackid') ==
'testhtml') {
105 if (preg_match(
'/^win/i', PHP_OS)) {
108 if (preg_match(
'/^mac/i', PHP_OS)) {
112 if (empty($conf->global->MAIN_MAIL_SENDMODE_TICKET)) {
113 $conf->global->MAIN_MAIL_SENDMODE_TICKET =
'default';
115 $port = !empty($conf->global->MAIN_MAIL_SMTP_PORT_TICKET) ? $conf->global->MAIN_MAIL_SMTP_PORT_TICKET : ini_get(
'smtp_port');
119 $server = !empty($conf->global->MAIN_MAIL_SMTP_SERVER_TICKET) ? $conf->global->MAIN_MAIL_SMTP_SERVER_TICKET : ini_get(
'SMTP');
121 $server =
'127.0.0.1';
125 $wikihelp =
'EN:Setup_EMails|FR:Paramétrage_EMails|ES:Configuración_EMails';
133 $listofmethods = array();
134 $listofmethods[
'default'] = $langs->trans(
'DefaultOutgoingEmailSetup');
135 $listofmethods[
'mail'] =
'PHP mail function';
137 $listofmethods[
'smtps'] =
'SMTP/SMTPS socket library';
138 if (version_compare(phpversion(),
'7.0',
'>=')) {
139 $listofmethods[
'swiftmailer'] =
'Swift Mailer socket library';
143 if ($action ==
'edit') {
144 if ($conf->use_javascript_ajax) {
145 print
"\n".
'<script type="text/javascript">';
146 print
'jQuery(document).ready(function () {
147 function initfields()
149 if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'default\')
151 jQuery(".hideifdefault").hide();
155 jQuery(".hideifdefault").show();
158 if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'mail\')
160 jQuery(".drag").hide();
161 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").val(0);
162 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").prop("disabled", true);
163 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val(0);
164 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").prop("disabled", true);
168 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").hide();
169 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").hide();
170 jQuery("#smtp_server_mess").show();
171 jQuery("#smtp_port_mess").show();
175 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").prop("disabled", true);
176 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").prop("disabled", true);
177 jQuery("#smtp_server_mess").hide();
178 jQuery("#smtp_port_mess").hide();
183 if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'smtps\')
185 jQuery(".drag").show();
186 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").val('.$conf->global->MAIN_MAIL_EMAIL_TLS_TICKET.
');
187 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").removeAttr("disabled");
188 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS_TICKET.
');
189 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").removeAttr("disabled");
190 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").removeAttr("disabled");
191 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").removeAttr("disabled");
192 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").show();
193 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").show();
194 jQuery("#smtp_server_mess").hide();
195 jQuery("#smtp_port_mess").hide();
197 if (jQuery("#MAIN_MAIL_SENDMODE_TICKET").val()==\'swiftmailer\')
199 jQuery(".drag").show();
200 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").val('.$conf->global->MAIN_MAIL_EMAIL_TLS_TICKET.
');
201 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").removeAttr("disabled");
202 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS_TICKET.
');
203 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").removeAttr("disabled");
204 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").removeAttr("disabled");
205 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").removeAttr("disabled");
206 jQuery("#MAIN_MAIL_SMTP_SERVER_TICKET").show();
207 jQuery("#MAIN_MAIL_SMTP_PORT_TICKET").show();
208 jQuery("#smtp_server_mess").hide();
209 jQuery("#smtp_port_mess").hide();
213 jQuery("#MAIN_MAIL_SENDMODE_TICKET").change(function() {
216 jQuery("#MAIN_MAIL_EMAIL_TLS").change(function() {
217 if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val() == 1)
218 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").val(0);
220 jQuery("#MAIN_MAIL_EMAIL_STARTTLS_TICKET").change(function() {
221 if (jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").val() == 1)
222 jQuery("#MAIN_MAIL_EMAIL_TLS_TICKET").val(0);
225 print
'</script>'.
"\n";
228 print
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'">';
229 print
'<input type="hidden" name="token" value="'.newToken().
'">';
230 print
'<input type="hidden" name="action" value="update">';
234 print
'<span class="opacitymedium">'.$langs->trans(
"EMailsDesc").
"</span><br>\n";
240 print
'<table class="noborder centpercent">';
241 print
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameter").
'</td><td>'.$langs->trans(
"Value").
'</td></tr>';
245 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_MAIL_SENDMODE").
'</td><td>';
248 if ((empty($conf->global->MAIN_MODULE_MULTICOMPANY)) || ($user->admin && !$user->entity)) {
249 print
$form->selectarray(
'MAIN_MAIL_SENDMODE_TICKET', $listofmethods, $conf->global->MAIN_MAIL_SENDMODE_TICKET);
251 $text = $listofmethods[$conf->global->MAIN_MAIL_SENDMODE_TICKET];
253 $text = $langs->trans(
"Undefined");
255 $htmltext = $langs->trans(
"ContactSuperAdminForChange");
256 print
$form->textwithpicto($text, $htmltext, 1,
'superadmin');
257 print
'<input type="hidden" name="MAIN_MAIL_SENDMODE_TICKET" value="'.$conf->global->MAIN_MAIL_SENDMODE_TICKET.
'">';
263 print
'<tr class="oddeven hideifdefault"><td>';
264 if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail') {
265 print $langs->trans(
"MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike");
267 print $langs->trans(
"SeeLocalSendMailSetup");
269 $mainserver = (!empty($conf->global->MAIN_MAIL_SMTP_SERVER_TICKET) ? $conf->global->MAIN_MAIL_SMTP_SERVER_TICKET :
'');
270 $smtpserver = ini_get(
'SMTP') ?ini_get(
'SMTP') : $langs->transnoentities(
"Undefined");
272 print $langs->trans(
"MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike");
274 print $langs->trans(
"MAIN_MAIL_SMTP_SERVER", $smtpserver);
278 if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) {
279 print
'<input class="flat" id="MAIN_MAIL_SMTP_SERVER_TICKET" name="MAIN_MAIL_SMTP_SERVER_TICKET" size="18" value="'.$mainserver.
'">';
280 print
'<input type="hidden" id="MAIN_MAIL_SMTP_SERVER_TICKET_sav" name="MAIN_MAIL_SMTP_SERVER_TICKET_sav" value="'.$mainserver.
'">';
281 print
'<span id="smtp_server_mess">'.$langs->trans(
"SeeLocalSendMailSetup").
'</span>';
283 $text = !empty($mainserver) ? $mainserver : $smtpserver;
284 $htmltext = $langs->trans(
"ContactSuperAdminForChange");
285 print
$form->textwithpicto($text, $htmltext, 1,
'superadmin');
286 print
'<input type="hidden" id="MAIN_MAIL_SMTP_SERVER_TICKET" name="MAIN_MAIL_SMTP_SERVER_TICKET" value="'.$mainserver.
'">';
293 print
'<tr class="oddeven hideifdefault"><td>';
294 if (!$conf->use_javascript_ajax && $linuxlike && $conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail') {
295 print $langs->trans(
"MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike");
297 print $langs->trans(
"SeeLocalSendMailSetup");
299 $mainport = (!empty($conf->global->MAIN_MAIL_SMTP_PORT_TICKET) ? $conf->global->MAIN_MAIL_SMTP_PORT_TICKET :
'');
300 $smtpport = ini_get(
'smtp_port') ?ini_get(
'smtp_port') : $langs->transnoentities(
"Undefined");
302 print $langs->trans(
"MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike");
304 print $langs->trans(
"MAIN_MAIL_SMTP_PORT", $smtpport);
308 if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) {
309 print
'<input class="flat" id="MAIN_MAIL_SMTP_PORT_TICKET" name="MAIN_MAIL_SMTP_PORT_TICKET" size="3" value="'.$mainport.
'">';
310 print
'<input type="hidden" id="MAIN_MAIL_SMTP_PORT_TICKET_sav" name="MAIN_MAIL_SMTP_PORT_TICKET_sav" value="'.$mainport.
'">';
311 print
'<span id="smtp_port_mess">'.$langs->trans(
"SeeLocalSendMailSetup").
'</span>';
313 $text = (!empty($mainport) ? $mainport : $smtpport);
314 $htmltext = $langs->trans(
"ContactSuperAdminForChange");
315 print
$form->textwithpicto($text, $htmltext, 1,
'superadmin');
316 print
'<input type="hidden" id="MAIN_MAIL_SMTP_PORT_TICKET" name="MAIN_MAIL_SMTP_PORT_TICKET" value="'.$mainport.
'">';
322 if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer')))) {
323 $mainstmpid = (!empty($conf->global->MAIN_MAIL_SMTPS_ID_TICKET) ? $conf->global->MAIN_MAIL_SMTPS_ID_TICKET :
'');
324 print
'<tr class="drag drop oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_ID").
'</td><td>';
326 if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) {
327 print
'<input class="flat" name="MAIN_MAIL_SMTPS_ID_TICKET" size="32" value="'.$mainstmpid.
'">';
329 $htmltext = $langs->trans(
"ContactSuperAdminForChange");
330 print
$form->textwithpicto($conf->global->MAIN_MAIL_SMTPS_ID_TICKET, $htmltext, 1,
'superadmin');
331 print
'<input type="hidden" name="MAIN_MAIL_SMTPS_ID_TICKET" value="'.$mainstmpid.
'">';
337 if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer')))) {
338 $mainsmtppw = (!empty($conf->global->MAIN_MAIL_SMTPS_PW_TICKET) ? $conf->global->MAIN_MAIL_SMTPS_PW_TICKET :
'');
339 print
'<tr class="drag drop oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_PW").
'</td><td>';
341 if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) {
342 print
'<input class="flat" type="password" name="MAIN_MAIL_SMTPS_PW_TICKET" size="32" value="'.$mainsmtppw.
'">';
344 $htmltext = $langs->trans(
"ContactSuperAdminForChange");
345 print
$form->textwithpicto($conf->global->MAIN_MAIL_SMTPS_PW_TICKET, $htmltext, 1,
'superadmin');
346 print
'<input type="hidden" name="MAIN_MAIL_SMTPS_PW_TICKET" value="'.$mainsmtppw.
'">';
353 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_TLS").
'</td><td>';
354 if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer')))) {
355 if (function_exists(
'openssl_open')) {
356 print
$form->selectyesno(
'MAIN_MAIL_EMAIL_TLS_TICKET', (!empty($conf->global->MAIN_MAIL_EMAIL_TLS_TICKET) ? $conf->global->MAIN_MAIL_EMAIL_TLS_TICKET : 0), 1);
358 print
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
361 print
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
367 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_STARTTLS").
'</td><td>';
368 if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer')))) {
369 if (function_exists(
'openssl_open')) {
370 print
$form->selectyesno(
'MAIN_MAIL_EMAIL_STARTTLS_TICKET', (!empty($conf->global->MAIN_MAIL_EMAIL_STARTTLS_TICKET) ? $conf->global->MAIN_MAIL_EMAIL_STARTTLS_TICKET : 0), 1);
372 print
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
375 print
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
383 print
$form->buttonsSaveCancel();
389 print
'<span class="opacitymedium">'.$langs->trans(
"EMailsDesc").
"</span><br>\n";
392 print
'<table class="noborder centpercent">';
393 print
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameter").
'</td><td>'.$langs->trans(
"Value").
'</td></tr>';
396 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_MAIL_SENDMODE").
'</td><td>';
399 $text = $langs->trans(
"Undefined").img_warning();
402 print
'<span class="opacitymedium">'.$text.
'</span>';
408 if (!empty($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET !=
'default') {
410 if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail')) {
411 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike").
'</td><td>'.$langs->trans(
"SeeLocalSendMailSetup").
'</td></tr>';
413 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTP_SERVER", ini_get(
'SMTP') ?ini_get(
'SMTP') : $langs->transnoentities(
"Undefined")).
'</td><td>'.(!empty($conf->global->MAIN_MAIL_SMTP_SERVER_TICKET) ? $conf->global->MAIN_MAIL_SMTP_SERVER_TICKET :
'').
'</td></tr>';
417 if ($linuxlike && (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail')) {
418 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike").
'</td><td>'.$langs->trans(
"SeeLocalSendMailSetup").
'</td></tr>';
420 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>'.(!empty($conf->global->MAIN_MAIL_SMTP_PORT_TICKET) ? $conf->global->MAIN_MAIL_SMTP_PORT_TICKET :
'').
'</td></tr>';
424 if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer'))) {
425 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_ID").
'</td><td>'.$conf->global->MAIN_MAIL_SMTPS_ID_TICKET.
'</td></tr>';
429 if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer'))) {
430 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_SMTPS_PW").
'</td><td>'.preg_replace(
'/./',
'*', $conf->global->MAIN_MAIL_SMTPS_PW_TICKET).
'</td></tr>';
434 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_TLS").
'</td><td>';
435 if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer'))) {
436 if (function_exists(
'openssl_open')) {
437 print
yn($conf->global->MAIN_MAIL_EMAIL_TLS_TICKET);
439 print
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
442 print
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
447 print
'<tr class="oddeven hideifdefault"><td>'.$langs->trans(
"MAIN_MAIL_EMAIL_STARTTLS").
'</td><td>';
448 if (isset($conf->global->MAIN_MAIL_SENDMODE_TICKET) && in_array($conf->global->MAIN_MAIL_SENDMODE_TICKET, array(
'smtps',
'swiftmailer'))) {
449 if (function_exists(
'openssl_open')) {
450 print
yn($conf->global->MAIN_MAIL_EMAIL_STARTTLS_TICKET);
452 print
yn(0).
' ('.$langs->trans(
"YourPHPDoesNotHaveSSLSupport").
')';
455 print
yn(0).
' ('.$langs->trans(
"NotSupported").
')';
465 if ($conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA)) {
478 print
info_admin($langs->trans(
"SendmailOptionMayHurtBuggedMTA"));
484 print
'<div class="tabsAction">';
486 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=edit&token='.
newToken().
'">'.$langs->trans(
"Modify").
'</a>';
488 if (!empty($conf->global->MAIN_MAIL_SENDMODE_TICKET) && $conf->global->MAIN_MAIL_SENDMODE_TICKET !=
'default') {
489 if ($conf->global->MAIN_MAIL_SENDMODE_TICKET !=
'mail' || !$linuxlike) {
490 if (function_exists(
'fsockopen') && $port && $server) {
491 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=testconnect">'.$langs->trans(
"DoTestServerAvailability").
'</a>';
494 print
'<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans(
"FeatureNotAvailableOnLinux").
'">'.$langs->trans(
"DoTestServerAvailability").
'</a>';
497 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=test&mode=init">'.$langs->trans(
"DoTestSend").
'</a>';
499 if (!empty($conf->fckeditor->enabled)) {
500 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?action=testhtml&mode=init">'.$langs->trans(
"DoTestSendHTML").
'</a>';
507 if ($conf->global->MAIN_MAIL_SENDMODE_TICKET ==
'mail' && !in_array($action, array(
'testconnect',
'test',
'testhtml'))) {
508 $text = $langs->trans(
"WarningPHPMail");
513 if ($action ==
'testconnect') {
516 include_once DOL_DOCUMENT_ROOT.
'/core/class/CMailFile.class.php';
517 $mail =
new CMailFile(
'',
'',
'',
'', array(), array(), array(),
'',
'', 0,
'',
'',
'',
'', $trackid, $sendcontext);
519 $result = $mail->check_server_port($server, $port);
521 print
'<div class="ok">'.$langs->trans(
"ServerAvailableOnIPOrPort", $server, $port).
'</div>';
523 $errormsg = $langs->trans(
"ServerNotAvailableOnIPOrPort", $server, $port);
526 $errormsg .=
' - '.$mail->error;
535 if ($action ==
'test' || $action ==
'testhtml') {
536 print
'<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
537 print
load_fiche_titre($action ==
'testhtml' ? $langs->trans(
"DoTestSendHTML") : $langs->trans(
"DoTestSend"));
542 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmail.class.php';
544 $formmail->fromname = (
GETPOSTISSET(
'fromname') ?
GETPOST(
'fromname') : $conf->global->MAIN_MAIL_EMAIL_FROM);
545 $formmail->frommail = (
GETPOSTISSET(
'frommail') ?
GETPOST(
'frommail') : $conf->global->MAIN_MAIL_EMAIL_FROM);
546 $formmail->trackid = (($action ==
'testhtml') ?
"testhtml" :
"test");
547 $formmail->withfromreadonly = 0;
548 $formmail->withsubstit = 0;
549 $formmail->withfrom = 1;
550 $formmail->witherrorsto = 1;
551 $formmail->withto = (
GETPOSTISSET(
'sendto') ?
GETPOST(
'sendto',
'restricthtml') : ($user->email ? $user->email : 1));
552 $formmail->withtocc = (
GETPOSTISSET(
'sendtocc') ?
GETPOST(
'sendtocc',
'restricthtml') : 1);
553 $formmail->withtoccc = (
GETPOSTISSET(
'sendtoccc') ?
GETPOST(
'sendtoccc',
'restricthtml') : 1);
554 $formmail->withtopic = (
GETPOSTISSET(
'subject') ?
GETPOST(
'subject') : $langs->trans(
"Test"));
555 $formmail->withtopicreadonly = 0;
556 $formmail->withfile = 2;
557 $formmail->withbody = (
GETPOSTISSET(
'message') ?
GETPOST(
'message',
'restricthtml') : ($action ==
'testhtml' ? $langs->transnoentities(
"PredefinedMailTestHtml") : $langs->transnoentities(
"PredefinedMailTest")));
558 $formmail->withbodyreadonly = 0;
559 $formmail->withcancel = 1;
560 $formmail->withdeliveryreceipt = 1;
561 $formmail->withfckeditor = ($action ==
'testhtml' ? 1 : 0);
562 $formmail->ckeditortoolbar =
'dolibarr_mailings';
564 $formmail->substit = $substitutionarrayfortest;
566 $formmail->param[
"action"] =
"send";
567 $formmail->param[
"models"] =
"body";
568 $formmail->param[
"mailid"] = 0;
569 $formmail->param[
"returnurl"] = $_SERVER[
"PHP_SELF"];
572 if (
GETPOST(
"mode") ==
'init') {
573 $formmail->clear_attached_files();
576 print $formmail->get_form(
'addfile',
'removefile');