4 require_once
'Services/Object/classes/class.ilObjectGUI.php';
39 public function __construct($a_data, $a_id, $a_call_by_reference)
44 parent::__construct($a_data, $a_id, $a_call_by_reference,
false);
46 $this->tabs = $DIC->tabs();
47 $this->rbacsystem = $DIC->rbac()->system();
50 $this->lng->loadLanguageModule(
'mail');
58 $next_class = $this->ctrl->getNextClass($this);
59 $cmd = $this->ctrl->getCmd();
62 switch ($next_class) {
63 case 'ilpermissiongui':
64 require_once
'Services/AccessControl/classes/class.ilPermissionGUI.php';
66 $this->ctrl->forwardCommand($perm_gui);
69 case 'ilmailtemplategui':
71 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
74 require_once
'Services/Mail/classes/class.ilMailTemplateGUI.php';
95 return $this->rbacsystem->checkAccess(
'write', $this->
object->getRefId());
103 return $this->rbacsystem->checkAccess(
'read', $this->
object->getRefId());
111 return $this->rbacsystem->checkAccess(
'edit_permission', $this->
object->getRefId());
128 $this->tabs->addTarget(
130 $this->ctrl->getLinkTarget($this,
'view'),
135 'showExternalSettingsForm',
136 'saveExternalSettingsForm',
146 $this->tabs->addTarget(
148 $this->ctrl->getLinkTargetByClass(
'ilmailtemplategui',
'showTemplates'),
155 $this->tabs->addTarget(
157 $this->ctrl->getLinkTargetByClass(
array(get_class($this),
'ilpermissiongui'),
'perm'),
158 array(
'perm',
'info',
'owner'),
170 $this->tabs->addSubTab(
171 self::SETTINGS_SUB_TAB_ID_GENERAL,
172 $this->lng->txt(
'mail_settings_general_tab'),
173 $this->ctrl->getLinkTarget($this,
'view')
176 if ($this->
settings->get(
'mail_allow_external')) {
177 $this->tabs->addSubTab(
178 self::SETTINGS_SUB_TAB_ID_EXTERNAL,
179 $this->lng->txt(
'mail_settings_external_tab'),
180 $this->ctrl->getLinkTarget($this,
'showExternalSettingsForm')
184 $this->tabs->activateSubTab($activeSubTab);
202 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
207 if (
$form === null) {
212 $this->tpl->setContent(
$form->getHTML());
220 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
223 $form->setFormAction($this->ctrl->getFormAction($this,
'save'));
224 $form->setTitle($this->lng->txt(
'general_settings'));
226 $cb =
new ilCheckboxInputGUI($this->lng->txt(
'mail_allow_external'),
'mail_allow_external');
227 $cb->
setInfo($this->lng->txt(
'mail_allow_external_info'));
232 include_once
'Services/Mail/classes/Form/class.ilIncomingMailInputGUI.php';
235 $this->ctrl->setParameterByClass(
'ilobjuserfoldergui',
'ref_id',
USER_FOLDER_ID);
236 $incoming_mail_gui->setInfo(sprintf(
237 $this->lng->txt(
'mail_settings_incoming_type_see_also'),
238 $this->ctrl->getLinkTargetByClass(
'ilobjuserfoldergui',
'settings')
240 $this->ctrl->clearParametersByClass(
'ilobjuserfoldergui');
241 $form->addItem($incoming_mail_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);
268 require_once
'Services/Administration/classes/class.ilAdministrationSettingsFormHandler.php';
276 $form->addCommandButton(
'save', $this->lng->txt(
'save'));
288 'mail_allow_external' => $this->
settings->get(
'mail_allow_external'),
289 'incoming_type' => (int) $this->
settings->get(
'mail_incoming_mail'),
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(
'mail_address_option', $mail_address_option);
322 $this->
settings->set(
'mail_maxsize_attach',
$form->getInput(
'mail_maxsize_attach'));
323 $this->
settings->set(
'mail_notification', (
int)
$form->getInput(
'mail_notification'));
326 $this->ctrl->redirect($this);
329 $form->setValuesByPost();
339 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
344 if (
$form === null) {
350 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
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);
389 require_once
'Services/Mail/classes/class.ilMail.php';
390 if ($is_manual_mail) {
394 $mail =
new ilMail(ANONYMOUS_USER_ID);
398 $mail->setSaveInSentbox(
false);
399 $mail->appendInstallationSignature(
true);
400 $mail->sendMail(
$GLOBALS[
'DIC']->
user()->getEmail(),
'',
'',
'Test Subject',
'Test Body',
array(),
$type);
411 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
414 $form->setFormAction($this->ctrl->getFormAction($this,
'saveExternalSettingsForm'));
415 $form->setTitle($this->lng->txt(
'mail_settings_external_frm_head'));
417 $smtp =
new ilCheckboxInputGUI($this->lng->txt(
'mail_smtp_status'),
'mail_smtp_status');
418 $smtp->
setInfo($this->lng->txt(
'mail_smtp_status_info'));
421 $form->addItem($smtp);
423 $host =
new ilTextInputGUI($this->lng->txt(
'mail_smtp_host'),
'mail_smtp_host');
424 $host->
setInfo($this->lng->txt(
'mail_smtp_host_info'));
425 $host->setRequired(
true);
427 $smtp->addSubItem($host);
429 $port =
new ilNumberInputGUI($this->lng->txt(
'mail_smtp_port'),
'mail_smtp_port');
430 $port->
setInfo($this->lng->txt(
'mail_smtp_port_info'));
431 $port->allowDecimals(
false);
432 $port->setMinValue(0);
433 $port->setMinValue(0);
434 $port->setRequired(
true);
436 $smtp->addSubItem($port);
438 $encryption =
new ilSelectInputGUI($this->lng->txt(
'mail_smtp_encryption'),
'mail_smtp_encryption');
439 $encryptionOptions =
array(
440 '' => $this->lng->txt(
'please_choose'),
441 'tls' => $this->lng->txt(
'mail_smtp_encryption_tls'),
442 'ssl' => $this->lng->txt(
'mail_smtp_encryption_ssl')
445 $encryption->setOptions($encryptionOptions);
447 $smtp->addSubItem($encryption);
451 $smtp->addSubItem(
$user);
459 $pre =
new ilTextInputGUI($this->lng->txt(
'mail_subject_prefix'),
'mail_subject_prefix');
461 $pre->setMaxLength(32);
462 $pre->setInfo($this->lng->txt(
'mail_subject_prefix_info'));
464 $form->addItem($pre);
466 $send_html =
new ilCheckboxInputGUI($this->lng->txt(
'mail_send_html'),
'mail_send_html');
467 $send_html->
setInfo($this->lng->txt(
'mail_send_html_info'));
468 $send_html->setValue(1);
470 $form->addItem($send_html);
473 $sh->setTitle($this->lng->txt(
'mail_settings_user_frm_head'));
477 $this->lng->txt(
'mail_system_usr_from_addr'),
478 'mail_system_usr_from_addr' 480 $user_from_address->
setInfo($this->lng->txt(
'mail_system_usr_from_addr_info'));
481 $user_from_address->setRequired(
true);
483 $form->addItem($user_from_address);
485 $user_from_name =
new ilTextInputGUI($this->lng->txt(
'mail_system_usr_from_name'),
'mail_system_usr_from_name');
486 $user_from_name->
setInfo($this->lng->txt(
'mail_system_usr_from_name_info'));
487 $user_from_name->setRequired(
true);
489 $form->addItem($user_from_name);
492 $this->lng->txt(
'mail_system_usr_env_from_addr'),
493 'mail_system_usr_env_from_addr' 495 $user_envelope_from_addr->
setInfo($this->lng->txt(
'mail_system_usr_env_from_addr_info'));
497 $form->addItem($user_envelope_from_addr);
500 $sh->setTitle($this->lng->txt(
'mail_settings_system_frm_head'));
504 $this->lng->txt(
'mail_system_sys_from_addr'),
505 'mail_system_sys_from_addr' 507 $system_from_addr->
setInfo($this->lng->txt(
'mail_system_sys_from_addr_info'));
508 $system_from_addr->setRequired(
true);
510 $form->addItem($system_from_addr);
513 $this->lng->txt(
'mail_system_sys_from_name'),
514 'mail_system_sys_from_name' 518 $form->addItem($system_from_name);
521 $this->lng->txt(
'mail_system_sys_reply_to_addr'),
522 'mail_system_sys_reply_to_addr' 526 $form->addItem($system_reply_to_addr);
529 $this->lng->txt(
'mail_system_sys_env_from_addr'),
530 'mail_system_sys_env_from_addr' 532 $system_return_path->
setInfo($this->lng->txt(
'mail_system_sys_env_from_addr_info'));
534 $form->addItem($system_return_path);
536 $signature =
new ilTextAreaInputGUI($this->lng->txt(
'mail_system_sys_signature'),
'mail_system_sys_signature');
539 $form->addItem($signature);
541 require_once
'Services/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php';
544 array(
'placeholder' =>
'CLIENT_NAME',
'label' => $this->lng->txt(
'mail_nacc_client_name')),
545 array(
'placeholder' =>
'CLIENT_DESC',
'label' => $this->lng->txt(
'mail_nacc_client_desc')),
546 array(
'placeholder' =>
'CLIENT_URL',
'label' => $this->lng->txt(
'mail_nacc_ilias_url'))
547 ) as
$key => $value) {
548 $placeholders->addPlaceholder($value[
'placeholder'], $value[
'label']);
551 $form->addItem($placeholders);
554 $form->addCommandButton(
'saveExternalSettingsForm', $this->lng->txt(
'save'));
565 $subjectPrefix = $this->
settings->get(
'mail_subject_prefix');
566 if (
false === $subjectPrefix) {
571 'mail_smtp_status' => (
bool) $this->
settings->get(
'mail_smtp_status'),
572 'mail_smtp_host' => $this->
settings->get(
'mail_smtp_host'),
573 'mail_smtp_port' => (int) $this->
settings->get(
'mail_smtp_port'),
574 'mail_smtp_user' => $this->
settings->get(
'mail_smtp_user'),
575 'mail_smtp_password' => strlen($this->
settings->get(
'mail_smtp_password')) > 0 ? self::PASSWORD_PLACE_HOLDER :
'',
576 'mail_smtp_encryption' => $this->
settings->get(
'mail_smtp_encryption'),
577 'mail_subject_prefix' => $subjectPrefix,
578 'mail_send_html' => (int) $this->
settings->get(
'mail_send_html'),
579 'mail_system_usr_from_addr' => $this->
settings->get(
'mail_system_usr_from_addr'),
580 'mail_system_usr_from_name' => $this->
settings->get(
'mail_system_usr_from_name'),
581 'mail_system_usr_env_from_addr' => $this->
settings->get(
'mail_system_usr_env_from_addr'),
582 'mail_system_sys_from_addr' => $this->
settings->get(
'mail_system_sys_from_addr'),
583 'mail_system_sys_from_name' => $this->
settings->get(
'mail_system_sys_from_name'),
584 'mail_system_sys_reply_to_addr' => $this->
settings->get(
'mail_system_sys_reply_to_addr'),
585 'mail_system_sys_env_from_addr' => $this->
settings->get(
'mail_system_sys_env_from_addr'),
586 'mail_system_sys_signature' => $this->
settings->get(
'mail_system_sys_signature')
596 $this->
ilias->raiseError($this->lng->txt(
'msg_no_perm_write'), $this->
ilias->error_obj->WARNING);
600 $isFormValid =
$form->checkInput();
603 $form->setValuesByPost();
608 $isSmtpEnabled = (bool)
$form->getInput(
'mail_smtp_status');
609 if ($isSmtpEnabled &&
$form->getInput(
'mail_smtp_user') && !
$form->getInput(
'mail_smtp_password')) {
610 $form->getItemByPostVar(
'mail_smtp_password')->setRequired(
true);
611 $form->getItemByPostVar(
'mail_smtp_password')->setAlert($this->lng->txt(
'mail_smtp_password_req'));
612 $form->setValuesByPost();
617 $this->
settings->set(
'mail_smtp_status', (
int)
$form->getInput(
'mail_smtp_status'));
618 $this->
settings->set(
'mail_smtp_host',
$form->getInput(
'mail_smtp_host'));
619 $this->
settings->set(
'mail_smtp_port', (
int)
$form->getInput(
'mail_smtp_port'));
620 $this->
settings->set(
'mail_smtp_user',
$form->getInput(
'mail_smtp_user'));
621 if (
$form->getInput(
'mail_smtp_password') != self::PASSWORD_PLACE_HOLDER) {
622 $this->
settings->set(
'mail_smtp_password',
$form->getInput(
'mail_smtp_password'));
624 $this->
settings->set(
'mail_smtp_encryption',
$form->getInput(
'mail_smtp_encryption'));
626 $this->
settings->set(
'mail_send_html',
$form->getInput(
'mail_send_html'));
627 $this->
settings->set(
'mail_subject_prefix',
$form->getInput(
'mail_subject_prefix'));
628 $this->
settings->set(
'mail_system_usr_from_addr',
$form->getInput(
'mail_system_usr_from_addr'));
629 $this->
settings->set(
'mail_system_usr_from_name',
$form->getInput(
'mail_system_usr_from_name'));
630 $this->
settings->set(
'mail_system_usr_env_from_addr',
$form->getInput(
'mail_system_usr_env_from_addr'));
631 $this->
settings->set(
'mail_system_sys_from_addr',
$form->getInput(
'mail_system_sys_from_addr'));
632 $this->
settings->set(
'mail_system_sys_from_name',
$form->getInput(
'mail_system_sys_from_name'));
633 $this->
settings->set(
'mail_system_sys_reply_to_addr',
$form->getInput(
'mail_system_sys_reply_to_addr'));
634 $this->
settings->set(
'mail_system_sys_env_from_addr',
$form->getInput(
'mail_system_sys_env_from_addr'));
635 $this->
settings->set(
'mail_system_sys_signature',
$form->getInput(
'mail_system_sys_signature'));
638 $this->ctrl->redirect($this,
'showExternalSettingsForm');
644 public static function _goto($a_target)
648 require_once
'Services/Mail/classes/class.ilMail.php';
649 $mail =
new ilMail($DIC->user()->getId());
651 if ($DIC->rbac()->system()->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
654 if ($DIC->access()->checkAccess(
'read',
'', ROOT_FOLDER_ID)) {
655 $_GET[
'cmd'] =
'frameset';
656 $_GET[
'target'] =
'';
657 $_GET[
'ref_id'] = ROOT_FOLDER_ID;
658 $_GET[
'baseClass'] =
'ilRepositoryGUI';
661 $DIC->language()->txt(
'msg_no_perm_read_item'),
672 $DIC[
'ilErr']->raiseError($DIC->language()->txt(
'msg_no_perm_read'), $DIC[
'ilErr']->FATAL);
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
populateGeneralSettingsForm(ilPropertyFormGUI $form)
isPermissionChangeAllowed()
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const PASSWORD_PLACE_HOLDER
static _lookupTitle($a_id)
lookup object title
__construct($a_data, $a_id, $a_call_by_reference)
ilObjMailGUI constructor.
const MAIL_SUBJECT_PREFIX
const SETTINGS_SUB_TAB_ID_EXTERNAL
prepareOutput($a_show_subobjects=true)
prepare output
sendTestSystemMailObject()
sendTestMail($is_manual_mail=false)
saveExternalSettingsFormObject()
buildSettingsSubTabs($activeSubTab)
showExternalSettingsFormObject(ilPropertyFormGUI $form=null)
if(isset($_POST['submit'])) $form
This class handles base functions for mail handling.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
setSize($a_size)
Set Size.
This class represents a text property in a property form.
redirection script todo: (a better solution should control the processing via a xml file) ...
showGeneralSettingsForm(ilPropertyFormGUI $form=null)
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const SETTINGS_SUB_TAB_ID_GENERAL
setRows($a_rows)
Set Rows.
Create new PHPExcel object
obj_idprivate
This class represents a text area property in a property form.
const USER_FOLDER_ID
Class ilObjUserFolder.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static redirect($a_script)
getExternalSettingsForm()
populateExternalSettingsForm(ilPropertyFormGUI $form)