37 public function __construct($a_data, $a_id, $a_call_by_reference)
44 $this->tabs = $DIC->tabs();
45 $this->rbacsystem = $DIC->rbac()->system();
48 $this->lng->loadLanguageModule(
'mail');
56 $next_class = $this->ctrl->getNextClass($this);
57 $cmd = $this->ctrl->getCmd();
60 switch ($next_class) {
61 case 'ilpermissiongui':
63 $this->ctrl->forwardCommand($perm_gui);
66 case 'ilmailtemplategui':
68 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
91 return $this->rbacsystem->checkAccess(
'write', $this->object->getRefId());
99 return $this->rbacsystem->checkAccess(
'read', $this->object->getRefId());
107 return $this->rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId());
124 $this->tabs->addTarget(
126 $this->ctrl->getLinkTarget($this,
'view'),
131 'showExternalSettingsForm',
132 'saveExternalSettingsForm',
142 $this->tabs->addTarget(
144 $this->ctrl->getLinkTargetByClass(
'ilmailtemplategui',
'showTemplates'),
151 $this->tabs->addTarget(
153 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
'perm'),
154 array(
'perm',
'info',
'owner'),
166 $this->tabs->addSubTab(
167 self::SETTINGS_SUB_TAB_ID_GENERAL,
168 $this->lng->txt(
'mail_settings_general_tab'),
169 $this->ctrl->getLinkTarget($this,
'view')
172 if ($this->
settings->get(
'mail_allow_external')) {
173 $this->tabs->addSubTab(
174 self::SETTINGS_SUB_TAB_ID_EXTERNAL,
175 $this->lng->txt(
'mail_settings_external_tab'),
176 $this->ctrl->getLinkTarget($this,
'showExternalSettingsForm')
180 $this->tabs->activateSubTab($activeSubTab);
198 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
203 if ($form === null) {
208 $this->tpl->setContent($form->getHTML());
218 $form->setFormAction($this->ctrl->getFormAction($this,
'save'));
219 $form->setTitle($this->lng->txt(
'general_settings'));
221 $cb =
new ilCheckboxInputGUI($this->lng->txt(
'mail_allow_external'),
'mail_allow_external');
222 $cb->
setInfo($this->lng->txt(
'mail_allow_external_info'));
227 include_once
'Services/Mail/classes/Form/class.ilIncomingMailInputGUI.php';
230 $this->ctrl->setParameterByClass(
'ilobjuserfoldergui',
'ref_id',
USER_FOLDER_ID);
231 $incoming_mail_gui->setInfo(sprintf(
232 $this->lng->txt(
'mail_settings_incoming_type_see_also'),
233 $this->ctrl->getLinkTargetByClass(
'ilobjuserfoldergui',
'settings')
235 $this->ctrl->clearParametersByClass(
'ilobjuserfoldergui');
236 $form->addItem($incoming_mail_gui);
238 $show_mail_settings_gui =
new ilCheckboxInputGUI($this->lng->txt(
'show_mail_settings'),
'show_mail_settings');
239 $show_mail_settings_gui->
setInfo($this->lng->txt(
'show_mail_settings_info'));
240 $show_mail_settings_gui->setValue(1);
241 $form->addItem($show_mail_settings_gui);
243 $ti =
new ilNumberInputGUI($this->lng->txt(
'mail_maxsize_attach'),
'mail_maxsize_attach');
245 $ti->setInfo($this->lng->txt(
'mail_max_size_attachments_total'));
246 $ti->setMaxLength(10);
252 $mn->setTitle($this->lng->txt(
'mail_member_notification'));
255 $cron_mail =
new ilSelectInputGUI($this->lng->txt(
'cron_mail_notification'),
'mail_notification');
256 $cron_options = array(
257 0 => $this->lng->txt(
'cron_mail_notification_never'),
258 1 => $this->lng->txt(
'cron_mail_notification_cron')
260 $cron_mail->setOptions($cron_options);
261 $cron_mail->setInfo(sprintf(
262 $this->lng->txt(
'cron_mail_notification_desc'),
263 $this->lng->txt(
'mail_allow_external')
266 $form->addItem($cron_mail);
275 $form->addCommandButton(
'save', $this->lng->txt(
'save'));
287 'mail_allow_external' => $this->
settings->get(
'mail_allow_external'),
288 'incoming_type' => (int) $this->
settings->get(
'mail_incoming_mail'),
291 'show_mail_settings' => $this->
settings->get(
'show_mail_settings', 1),
292 'mail_maxsize_attach' => $this->
settings->get(
'mail_maxsize_attach'),
293 'mail_notification' => $this->
settings->get(
'mail_notification')
303 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
307 if ($form->checkInput()) {
308 $incoming_type = (int) $form->getInput(
'incoming_type');
312 $mail_address_option = (int) $form->getInput(
'mail_address_option');
315 $mail_address_option = (int) $form->getInput(
'mail_address_option_both');
319 $this->
settings->set(
'mail_allow_external', (
int) $form->getInput(
'mail_allow_external'));
320 $this->
settings->set(
'mail_incoming_mail', $incoming_type);
321 $this->
settings->set(
'show_mail_settings', (
int) $form->getInput(
'show_mail_settings'));
323 $this->
settings->set(
'mail_address_option', $mail_address_option);
324 $this->
settings->set(
'mail_maxsize_attach', $form->getInput(
'mail_maxsize_attach'));
325 $this->
settings->set(
'mail_notification', (
int) $form->getInput(
'mail_notification'));
327 ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'),
true);
328 $this->ctrl->redirect($this);
331 $form->setValuesByPost();
341 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
346 if ($form === null) {
353 $btn->setUrl($this->ctrl->getLinkTarget($this,
'sendTestUserMail'));
354 $btn->setCaption(
'mail_external_send_test_usr');
355 $GLOBALS[
'DIC']->toolbar()->addButtonInstance($btn);
358 $btn->setUrl($this->ctrl->getLinkTarget($this,
'sendTestSystemMail'));
359 $btn->setCaption(
'mail_external_send_test_sys');
360 $GLOBALS[
'DIC']->toolbar()->addButtonInstance($btn);
363 $this->tpl->setContent($form->getHTML());
382 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
395 $mail->setSaveInSentbox(
false);
396 $mail->appendInstallationSignature(
true);
398 $lngVariablePrefix =
'sys';
400 $lngVariablePrefix =
'usr';
407 $this->lng->txt(
'mail_email_' . $lngVariablePrefix .
'_subject'),
408 $this->lng->txt(
'mail_email_' . $lngVariablePrefix .
'_body'),
412 ilUtil::sendSuccess($this->lng->txt(
'mail_external_test_sent'));
423 $form->setFormAction($this->ctrl->getFormAction($this,
'saveExternalSettingsForm'));
424 $form->setTitle($this->lng->txt(
'mail_settings_external_frm_head'));
426 $smtp =
new ilCheckboxInputGUI($this->lng->txt(
'mail_smtp_status'),
'mail_smtp_status');
427 $smtp->
setInfo($this->lng->txt(
'mail_smtp_status_info'));
430 $form->addItem($smtp);
432 $host =
new ilTextInputGUI($this->lng->txt(
'mail_smtp_host'),
'mail_smtp_host');
433 $host->setInfo($this->lng->txt(
'mail_smtp_host_info'));
434 $host->setRequired(
true);
436 $smtp->addSubItem($host);
438 $port =
new ilNumberInputGUI($this->lng->txt(
'mail_smtp_port'),
'mail_smtp_port');
439 $port->
setInfo($this->lng->txt(
'mail_smtp_port_info'));
440 $port->allowDecimals(
false);
441 $port->setMinValue(0);
442 $port->setMinValue(0);
443 $port->setRequired(
true);
445 $smtp->addSubItem($port);
447 $encryption =
new ilSelectInputGUI($this->lng->txt(
'mail_smtp_encryption'),
'mail_smtp_encryption');
448 $encryptionOptions = array(
449 '' => $this->lng->txt(
'please_choose'),
450 'tls' => $this->lng->txt(
'mail_smtp_encryption_tls'),
451 'ssl' => $this->lng->txt(
'mail_smtp_encryption_ssl')
454 $encryption->setOptions($encryptionOptions);
456 $smtp->addSubItem($encryption);
460 $user->setDisableHtmlAutoComplete(
true);
461 $smtp->addSubItem(
$user);
467 $password->setDisableHtmlAutoComplete(
true);
470 $pre =
new ilTextInputGUI($this->lng->txt(
'mail_subject_prefix'),
'mail_subject_prefix');
472 $pre->setMaxLength(32);
473 $pre->setInfo($this->lng->txt(
'mail_subject_prefix_info'));
475 $form->addItem($pre);
477 $send_html =
new ilCheckboxInputGUI($this->lng->txt(
'mail_send_html'),
'mail_send_html');
478 $send_html->
setInfo($this->lng->txt(
'mail_send_html_info'));
479 $send_html->setValue(1);
481 $form->addItem($send_html);
484 $sh->setTitle($this->lng->txt(
'mail_settings_user_frm_head'));
488 $this->lng->txt(
'mail_system_usr_from_addr'),
489 'mail_system_usr_from_addr' 491 $user_from_address->
setInfo($this->lng->txt(
'mail_system_usr_from_addr_info'));
492 $user_from_address->setRequired(
true);
494 $form->addItem($user_from_address);
496 $useGlobalReplyToAddress =
new ilCheckboxInputGUI($this->lng->txt(
'mail_use_global_reply_to_addr'),
'use_global_reply_to_addr');
497 $useGlobalReplyToAddress->
setInfo($this->lng->txt(
'mail_use_global_reply_to_addr_info'));
498 $useGlobalReplyToAddress->setValue(1);
500 $form->addItem($useGlobalReplyToAddress);
502 $this->lng->txt(
'mail_global_reply_to_addr'),
503 'global_reply_to_addr' 505 $globalReplyTo->
setInfo($this->lng->txt(
'mail_global_reply_to_addr_info'));
506 $globalReplyTo->setRequired(
true);
508 $useGlobalReplyToAddress->addSubItem($globalReplyTo);
510 $user_from_name =
new ilTextInputGUI($this->lng->txt(
'mail_system_usr_from_name'),
'mail_system_usr_from_name');
511 $user_from_name->setInfo($this->lng->txt(
'mail_system_usr_from_name_info'));
512 $user_from_name->setRequired(
true);
514 $form->addItem($user_from_name);
517 $this->lng->txt(
'mail_system_usr_env_from_addr'),
518 'mail_system_usr_env_from_addr' 520 $user_envelope_from_addr->
setInfo($this->lng->txt(
'mail_system_usr_env_from_addr_info'));
522 $form->addItem($user_envelope_from_addr);
525 $sh->setTitle($this->lng->txt(
'mail_settings_system_frm_head'));
529 $this->lng->txt(
'mail_system_sys_from_addr'),
530 'mail_system_sys_from_addr' 532 $system_from_addr->
setInfo($this->lng->txt(
'mail_system_sys_from_addr_info'));
533 $system_from_addr->setRequired(
true);
535 $form->addItem($system_from_addr);
538 $this->lng->txt(
'mail_system_sys_from_name'),
539 'mail_system_sys_from_name' 541 $system_from_name->setRequired(
true);
543 $form->addItem($system_from_name);
546 $this->lng->txt(
'mail_system_sys_reply_to_addr'),
547 'mail_system_sys_reply_to_addr' 551 $form->addItem($system_reply_to_addr);
554 $this->lng->txt(
'mail_system_sys_env_from_addr'),
555 'mail_system_sys_env_from_addr' 557 $system_return_path->
setInfo($this->lng->txt(
'mail_system_sys_env_from_addr_info'));
559 $form->addItem($system_return_path);
561 $signature =
new ilTextAreaInputGUI($this->lng->txt(
'mail_system_sys_signature'),
'mail_system_sys_signature');
564 $form->addItem($signature);
568 array(
'placeholder' =>
'CLIENT_NAME',
'label' => $this->lng->txt(
'mail_nacc_client_name')),
569 array(
'placeholder' =>
'CLIENT_DESC',
'label' => $this->lng->txt(
'mail_nacc_client_desc')),
570 array(
'placeholder' =>
'CLIENT_URL',
'label' => $this->lng->txt(
'mail_nacc_ilias_url'))
571 ) as $key => $value) {
572 $placeholders->addPlaceholder($value[
'placeholder'], $value[
'label']);
575 $form->addItem($placeholders);
578 $form->addCommandButton(
'saveExternalSettingsForm', $this->lng->txt(
'save'));
589 $subjectPrefix = $this->
settings->get(
'mail_subject_prefix');
590 if (
false === $subjectPrefix) {
595 'mail_smtp_status' => (
bool) $this->
settings->get(
'mail_smtp_status'),
596 'mail_smtp_host' => $this->
settings->get(
'mail_smtp_host'),
597 'mail_smtp_port' => (int) $this->
settings->get(
'mail_smtp_port'),
598 'mail_smtp_user' => $this->
settings->get(
'mail_smtp_user'),
599 'mail_smtp_password' => strlen($this->
settings->get(
'mail_smtp_password')) > 0 ? self::PASSWORD_PLACE_HOLDER :
'',
600 'mail_smtp_encryption' => $this->
settings->get(
'mail_smtp_encryption'),
601 'mail_subject_prefix' => $subjectPrefix,
602 'mail_send_html' => (int) $this->
settings->get(
'mail_send_html'),
603 'mail_system_usr_from_addr' => $this->
settings->get(
'mail_system_usr_from_addr'),
604 'mail_system_usr_from_name' => $this->
settings->get(
'mail_system_usr_from_name'),
605 'mail_system_usr_env_from_addr' => $this->
settings->get(
'mail_system_usr_env_from_addr'),
606 'mail_system_sys_from_addr' => $this->
settings->get(
'mail_system_sys_from_addr'),
607 'mail_system_sys_from_name' => $this->
settings->get(
'mail_system_sys_from_name'),
608 'mail_system_sys_reply_to_addr' => $this->
settings->get(
'mail_system_sys_reply_to_addr'),
609 'mail_system_sys_env_from_addr' => $this->
settings->get(
'mail_system_sys_env_from_addr'),
610 'mail_system_sys_signature' => $this->
settings->get(
'mail_system_sys_signature'),
611 'use_global_reply_to_addr' => (bool) $this->
settings->get(
'use_global_reply_to_addr'),
612 'global_reply_to_addr' => $this->
settings->get(
'global_reply_to_addr'),
622 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
626 $isFormValid = $form->checkInput();
629 $form->setValuesByPost();
634 $isSmtpEnabled = (bool) $form->getInput(
'mail_smtp_status');
635 if ($isSmtpEnabled && $form->getInput(
'mail_smtp_user') && !$form->getInput(
'mail_smtp_password')) {
636 $form->getItemByPostVar(
'mail_smtp_password')->setRequired(
true);
637 $form->getItemByPostVar(
'mail_smtp_password')->setAlert($this->lng->txt(
'mail_smtp_password_req'));
638 $form->setValuesByPost();
643 $this->
settings->set(
'mail_smtp_status', (
int) $form->getInput(
'mail_smtp_status'));
644 $this->
settings->set(
'mail_smtp_host', $form->getInput(
'mail_smtp_host'));
645 $this->
settings->set(
'mail_smtp_port', (
int) $form->getInput(
'mail_smtp_port'));
646 $this->
settings->set(
'mail_smtp_user', $form->getInput(
'mail_smtp_user'));
647 if ($form->getInput(
'mail_smtp_password') != self::PASSWORD_PLACE_HOLDER) {
648 $this->
settings->set(
'mail_smtp_password', $form->getInput(
'mail_smtp_password'));
650 $this->
settings->set(
'mail_smtp_encryption', $form->getInput(
'mail_smtp_encryption'));
652 $this->
settings->set(
'mail_send_html', $form->getInput(
'mail_send_html'));
653 $this->
settings->set(
'mail_subject_prefix', $form->getInput(
'mail_subject_prefix'));
654 $this->
settings->set(
'mail_system_usr_from_addr', $form->getInput(
'mail_system_usr_from_addr'));
655 $this->
settings->set(
'mail_system_usr_from_name', $form->getInput(
'mail_system_usr_from_name'));
656 $this->
settings->set(
'mail_system_usr_env_from_addr', $form->getInput(
'mail_system_usr_env_from_addr'));
657 $this->
settings->set(
'mail_system_sys_from_addr', $form->getInput(
'mail_system_sys_from_addr'));
658 $this->
settings->set(
'mail_system_sys_from_name', $form->getInput(
'mail_system_sys_from_name'));
659 $this->
settings->set(
'mail_system_sys_reply_to_addr', $form->getInput(
'mail_system_sys_reply_to_addr'));
660 $this->
settings->set(
'mail_system_sys_env_from_addr', $form->getInput(
'mail_system_sys_env_from_addr'));
661 $this->
settings->set(
'use_global_reply_to_addr', (
int) $form->getInput(
'use_global_reply_to_addr'));
662 $this->
settings->set(
'global_reply_to_addr', $form->getInput(
'global_reply_to_addr'));
663 $this->
settings->set(
'mail_system_sys_signature', $form->getInput(
'mail_system_sys_signature'));
665 ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'),
true);
666 $this->ctrl->redirect($this,
'showExternalSettingsForm');
672 public static function _goto($a_target)
676 $mail =
new ilMail($DIC->user()->getId());
678 if ($DIC->rbac()->system()->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
682 $_GET[
'cmd'] =
'frameset';
683 $_GET[
'target'] =
'';
685 $_GET[
'baseClass'] =
'ilRepositoryGUI';
688 $DIC->language()->txt(
'msg_no_perm_read_item'),
699 $DIC[
'ilErr']->raiseError($DIC->language()->txt(
'msg_no_perm_read'), $DIC[
'ilErr']->FATAL);
populateGeneralSettingsForm(ilPropertyFormGUI $form)
isPermissionChangeAllowed()
const PASSWORD_PLACE_HOLDER
static _lookupTitle($a_id)
lookup object title
__construct($a_data, $a_id, $a_call_by_reference)
ilObjMailGUI constructor.
const SETTINGS_SUB_TAB_ID_EXTERNAL
prepareOutput($a_show_subobjects=true)
prepare output
sendTestSystemMailObject()
saveExternalSettingsFormObject()
buildSettingsSubTabs($activeSubTab)
showExternalSettingsFormObject(ilPropertyFormGUI $form=null)
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
redirection script todo: (a better solution should control the processing via a xml file) ...
showGeneralSettingsForm(ilPropertyFormGUI $form=null)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const SETTINGS_SUB_TAB_ID_GENERAL
const MAIL_SUBJECT_PREFIX
setRows($a_rows)
Set Rows.
__construct(Container $dic, ilPlugin $plugin)
This class represents a text area property in a property form.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static redirect($a_script)
sendTestMail($isManualMail=false)
getExternalSettingsForm()
populateExternalSettingsForm(ilPropertyFormGUI $form)