/** * @return ilMimeMail */ protected function initMimeMail() { /** * @var $ilSetting ilSetting */ global $ilSetting; $this->mime_mail = new ilMimeMail(); $this->mime_mail->From($ilSetting->get('admin_email')); $this->mime_mail->autoCheck(false); return $this->mime_mail; }
function sendMail($sid, $to, $cc, $bcc, $sender, $subject, $message, $attach) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } global $ilLog; include_once 'Services/Mail/classes/class.ilMimeMail.php'; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($sender); $mmail->To(explode(',', $to)); $mmail->Subject($subject); $mmail->Body($message); if ($cc) { $mmail->Cc(explode(',', $cc)); } if ($bcc) { $mmail->Bcc(explode(',', $bcc)); } if ($attach) { // mjansen: switched separator from "," to "#:#" because of mantis bug #6039 // for backward compatibility we have to check if the substring "#:#" exists as leading separator // otherwise we should use ";" if (strpos($attach, '#:#') === 0) { $attach = substr($attach, strlen('#:#')); $attachments = explode('#:#', $attach); } else { $attachments = explode(',', $attach); } foreach ($attachments as $attachment) { $mmail->Attach($attachment); } } $mmail->Send(); $ilLog->write('SOAP: sendMail(): ' . $to . ', ' . $cc . ', ' . $bcc); return true; }
public function send() { global $lng; $customer_array = $this->_getObjectsToRemind(); foreach ($customer_array as $user_id => $objects_array) { $this->initLanguage($user_id); $user_lang = $this->getLanguage() ? $this->getLanguage() : $lng; $this->initMail(); $this->setRecipients($user_id); $this->setSubject($this->getLanguageText('payment_reminder_notification_subject')); $this->setBody(ilMail::getSalutation($user_id, $this->getLanguage())); $this->appendBody("\n\n"); $this->appendBody($user_lang->txt('bought_objects_expire_soon')); $this->appendBody("\n\n"); foreach ($objects_array as $key => $pobject) { $this->appendBody("----------------------------------------------------------------------------------------------"); $this->appendBody("\n\n"); $this->appendBody($user_lang->txt('title') . ": " . $objects_array[$key]['object_title'] . "\n"); $this->appendBody($user_lang->txt('access_enddate') . ": " . $objects_array[$key]['access_enddate']); $this->appendBody("\n"); $this->appendBody("\n\n"); } $this->appendBody("----------------------------------------------------------------------------------------------"); //@todo fix this: $mailbox_link $this->appendBody($mailbox_link); $this->appendBody("\n\n"); $this->appendBody(ilMail::_getAutoGeneratedMessageString($this->getLanguage())); $this->appendBody(ilMail::_getInstallationSignature()); $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From('noreply'); $mmail->To(ilObjUser::_lookupEmail($user_id)); $mmail->Subject($this->getSubject()); $mmail->Body($this->getBody()); $mmail->Send(); } }
public static function _createRandomUserAccount($keyarray) { global $ilDB, $ilUser, $ilSetting, $rbacadmin; if ($_SESSION['create_user_account'] != NULL) { $obj_user = new ilObjUser($_SESSION['create_user_account']); return $obj_user; } else { $userLogin = array(); $res = $ilDB->query('SELECT sequence FROM object_data_seq'); $row = $ilDB->fetchAssoc($res); $temp_user_id = (int) $row['sequence'] + 1; $userLogin['login'] = '******' . $temp_user_id; $userLogin['passwd'] = ilUtil::generatePasswords(1); require_once 'Services/User/classes/class.ilObjUser.php'; include_once "Services/Mail/classes/class.ilAccountMail.php"; $obj_user = new ilObjUser(); $obj_user->setId($temp_user_id); $obj_user->setLogin($userLogin['login']); $obj_user->setPasswd((string) $userLogin['passwd'][0], IL_PASSWD_PLAIN); $_SESSION['tmp_user_account']['login'] = $userLogin['login']; $_SESSION['tmp_user_account']['passwd'] = $userLogin['passwd']; $obj_user->setFirstname($keyarray['first_name']); $obj_user->setLastname($keyarray['last_name']); $obj_user->setEmail($keyarray['payer_email']); # $obj_user->setEmail('*****@*****.**'); $obj_user->setGender('f'); $obj_user->setLanguage($ilSetting->get("language")); $obj_user->setActive(true); $obj_user->setTimeLimitUnlimited(true); $obj_user->setTitle($obj_user->getFullname()); $obj_user->setDescription($obj_user->getEmail()); $obj_user->setTimeLimitOwner(7); $obj_user->setTimeLimitUnlimited(1); $obj_user->setTimeLimitMessage(0); $obj_user->setApproveDate(date("Y-m-d H:i:s")); // Set default prefs $obj_user->setPref('hits_per_page', $ilSetting->get('hits_per_page', 30)); $obj_user->setPref('show_users_online', $ilSetting->get('show_users_online', 'y')); $obj_user->writePrefs(); // at the first login the user must complete profile $obj_user->setProfileIncomplete(true); $obj_user->create(); $obj_user->saveAsNew(); $user_role = ilObject::_exists(4, false); if (!$user_role) { include_once "./Services/AccessControl/classes/class.ilObjRole.php"; $reg_allowed = ilObjRole::_lookupRegisterAllowed(); $user_role = $reg_allowed[0]['id']; } else { $user_role = 4; } $rbacadmin->assignUser((int) $user_role, $obj_user->getId(), true); include_once "Services/Mail/classes/class.ilMimeMail.php"; global $ilias, $lng; $settings = $ilias->getAllSettings(); $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($settings["admin_email"]); $mmail->To($obj_user->getEmail()); // mail subject $subject = $lng->txt("reg_mail_subject"); // mail body $body = $lng->txt("reg_mail_body_salutation") . " " . $obj_user->getFullname() . ",\n\n" . $lng->txt("reg_mail_body_text1") . "\n\n" . $lng->txt("reg_mail_body_text2") . "\n" . ILIAS_HTTP_PATH . "/login.php?client_id=" . $ilias->client_id . "\n"; $body .= $lng->txt("login") . ": " . $obj_user->getLogin() . "\n"; $body .= $lng->txt("passwd") . ": " . $userLogin['passwd'][0] . "\n"; $body .= "\n"; $body .= $lng->txt("reg_mail_body_text3") . "\n\r"; $body .= $obj_user->getProfileAsString($lng); $mmail->Subject($subject); $mmail->Body($body); $mmail->Send(); $_SESSION['create_user_account'] = $obj_user->getId(); return $obj_user; } }
/** * send mime mail using class.ilMimeMail.php * All external mails are send to SOAP::sendMail starting a kind of background process * @param string of recipients * @param string of recipients * @param string of recipients * @param string subject * @param string message * @param array attachments * @param bool prevent soap * @access public * @return array of saved data */ function sendMimeMail($a_rcp_to, $a_rcp_cc, $a_rcp_bcc, $a_m_subject, $a_m_message, $a_attachments, $a_no_soap = false) { include_once "Services/Mail/classes/class.ilMimeMail.php"; #var_dump("<pre>",$a_rcp_to,$a_rcp_cc,$a_rcp_bcc,$a_m_subject,$a_m_message,$a_attachments,"<pre>"); #$inst_name = $this->ilias->getSetting("inst_name") ? $this->ilias->getSetting("inst_name") : "ILIAS 4"; #$a_m_subject = "[".$inst_name."] ".$a_m_subject; $a_m_subject = self::getSubjectPrefix() . ' ' . $a_m_subject; $sender = $this->getMimeMailSender(); // #10854 if ($this->isSOAPEnabled() && !$a_no_soap) { // Send per soap include_once 'Services/WebServices/SOAP/classes/class.ilSoapClient.php'; $soap_client = new ilSoapClient(); $soap_client->setResponseTimeout(1); $soap_client->enableWSDL(true); $soap_client->init(); $attachments = array(); $a_attachments = $a_attachments ? $a_attachments : array(); foreach ($a_attachments as $attachment) { $attachments[] = $this->mfile->getAbsolutePath($attachment); } // mjansen: switched separator from "," to "#:#" because of mantis bug #6039 $attachments = implode('#:#', $attachments); // mjansen: use "#:#" as leading delimiter if (strlen($attachments)) { $attachments = "#:#" . $attachments; } $soap_client->call('sendMail', array($_COOKIE['PHPSESSID'] . '::' . $_COOKIE['ilClientId'], $a_rcp_to, $a_rcp_cc, $a_rcp_bcc, $sender, $a_m_subject, $a_m_message, $attachments)); return true; } else { // send direct include_once "Services/Mail/classes/class.ilMimeMail.php"; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($sender); $mmail->To($a_rcp_to); // Add installation name to subject $mmail->Subject($a_m_subject); $mmail->Body($a_m_message); if ($a_rcp_cc) { $mmail->Cc($a_rcp_cc); } if ($a_rcp_bcc) { $mmail->Bcc($a_rcp_bcc); } if (is_array($a_attachments)) { foreach ($a_attachments as $attachment) { $mmail->Attach($this->mfile->getAbsolutePath($attachment)); } } $mmail->Send(); } }
public function send() { global $ilDB, $lng, $ilSetting; $is_message_enabled = $ilSetting->get("mail_notification_message"); $res = $ilDB->queryF('SELECT mail.* FROM mail_options INNER JOIN mail ON mail.user_id = mail_options.user_id INNER JOIN mail_obj_data ON mail_obj_data.obj_id = mail.folder_id WHERE cronjob_notification = %s AND send_time >= %s AND m_status = %s', array('integer', 'timestamp', 'text'), array(1, date('Y-m-d H:i:s', time() - 60 * 60 * 24), 'unread')); $users = array(); $user_id = 0; while ($row = $ilDB->fetchAssoc($res)) { if ($user_id == 0 || $row['user_id'] != $user_id) { $user_id = $row['user_id']; } $users[$user_id][] = $row; } foreach ($users as $user_id => $mail_data) { $this->initLanguage($user_id); $user_lang = $this->getLanguage() ? $this->getLanguage() : $lng; $this->initMail(); $this->setRecipients($user_id); $this->setSubject($this->getLanguageText('mail_notification_subject')); $this->setBody(ilMail::getSalutation($user_id, $this->getLanguage())); $this->appendBody("\n\n"); if (count($mail_data) == 1) { $this->appendBody(sprintf($user_lang->txt('mail_at_the_ilias_installation'), count($mail_data), ilUtil::_getHttpPath())); } else { $this->appendBody(sprintf($user_lang->txt('mails_at_the_ilias_installation'), count($mail_data), ilUtil::_getHttpPath())); } $this->appendBody("\n\n"); $counter = 1; foreach ($mail_data as $mail) { $this->appendBody("----------------------------------------------------------------------------------------------"); $this->appendBody("\n\n"); $this->appendBody('#' . $counter . "\n\n"); $this->appendBody($user_lang->txt('date') . ": " . $mail['send_time']); $this->appendBody("\n"); if ($mail['sender_id'] == ANONYMOUS_USER_ID) { $sender = ilMail::_getIliasMailerName(); } else { $sender = ilObjUser::_lookupLogin($mail['sender_id']); } $this->appendBody($user_lang->txt('sender') . ": " . $sender); $this->appendBody("\n"); $this->appendBody($user_lang->txt('subject') . ": " . $mail['m_subject']); $this->appendBody("\n\n"); if ($is_message_enabled == true) { $this->appendBody($user_lang->txt('message') . ": " . $mail['m_message']); $this->appendBody("\n\n"); } ++$counter; } $this->appendBody("----------------------------------------------------------------------------------------------"); $this->appendBody("\n\n"); $this->appendBody($user_lang->txt('follow_link_to_read_mails') . " "); $this->appendBody("\n"); $mailbox_link = ilUtil::_getHttpPath(); $mailbox_link .= "/goto.php?target=mail&client_id=" . CLIENT_ID; $this->appendBody($mailbox_link); $this->appendBody("\n\n"); $this->appendBody(ilMail::_getAutoGeneratedMessageString($this->getLanguage())); $this->appendBody(ilMail::_getInstallationSignature()); $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From(ilMail::getIliasMailerAddress()); $mmail->To(ilObjUser::_lookupEmail($user_id)); $mmail->Subject($this->getSubject()); $mmail->Body($this->getBody()); $mmail->Send(); } }
protected function __distributeMails($password, $a_language = null) { global $ilSetting; include_once './Services/Language/classes/class.ilLanguage.php'; include_once './Services/User/classes/class.ilObjUser.php'; include_once "Services/Mail/classes/class.ilFormatMail.php"; include_once './Services/Registration/classes/class.ilRegistrationMailNotification.php'; // Always send mail to approvers if ($this->registration_settings->getRegistrationType() == IL_REG_APPROVE && !$this->code_was_used) { $mail = new ilRegistrationMailNotification(); $mail->setType(ilRegistrationMailNotification::TYPE_NOTIFICATION_CONFIRMATION); $mail->setRecipients($this->registration_settings->getApproveRecipients()); $mail->setAdditionalInformation(array('usr' => $this->userObj)); $mail->send(); } else { $mail = new ilRegistrationMailNotification(); $mail->setType(ilRegistrationMailNotification::TYPE_NOTIFICATION_APPROVERS); $mail->setRecipients($this->registration_settings->getApproveRecipients()); $mail->setAdditionalInformation(array('usr' => $this->userObj)); $mail->send(); } // Send mail to new user // Registration with confirmation link ist enabled if ($this->registration_settings->getRegistrationType() == IL_REG_ACTIVATION && !$this->code_was_used) { include_once './Services/Registration/classes/class.ilRegistrationMimeMailNotification.php'; $mail = new ilRegistrationMimeMailNotification(); $mail->setType(ilRegistrationMimeMailNotification::TYPE_NOTIFICATION_ACTIVATION); $mail->setRecipients(array($this->userObj)); $mail->setAdditionalInformation(array('usr' => $this->userObj, 'hash_lifetime' => $this->registration_settings->getRegistrationHashLifetime())); $mail->send(); } else { // try individual account mail in user administration include_once "Services/Mail/classes/class.ilAccountMail.php"; include_once './Services/User/classes/class.ilObjUserFolder.php'; $amail = ilObjUserFolder::_lookupNewAccountMail($a_language); if (trim($amail["body"]) == "" || trim($amail["subject"]) == "") { $amail = ilObjUserFolder::_lookupNewAccountMail($GLOBALS["lng"]->getDefaultLanguage()); } if (trim($amail["body"]) != "" && trim($amail["subject"]) != "") { $acc_mail = new ilAccountMail(); $acc_mail->setUser($this->userObj); if ($this->registration_settings->passwordGenerationEnabled()) { $acc_mail->setUserPassword($password); } if ($amail["att_file"]) { include_once "Services/User/classes/class.ilFSStorageUserFolder.php"; $fs = new ilFSStorageUserFolder(USER_FOLDER_ID); $fs->create(); $path = $fs->getAbsolutePath() . "/"; $acc_mail->addAttachment($path . "/" . $amail["lang"], $amail["att_file"]); } $acc_mail->send(); } else { include_once "Services/Mail/classes/class.ilMimeMail.php"; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($ilSetting->get("admin_email")); $mmail->To($this->userObj->getEmail()); // mail subject $subject = $this->lng->txt("reg_mail_subject"); // mail body $body = $this->lng->txt("reg_mail_body_salutation") . " " . $this->userObj->getFullname() . ",\n\n" . $this->lng->txt("reg_mail_body_text1") . "\n\n" . $this->lng->txt("reg_mail_body_text2") . "\n" . ILIAS_HTTP_PATH . "/login.php?client_id=" . CLIENT_ID . "\n"; $body .= $this->lng->txt("login") . ": " . $this->userObj->getLogin() . "\n"; if ($this->registration_settings->passwordGenerationEnabled()) { $body .= $this->lng->txt("passwd") . ": " . $password . "\n"; } $body .= "\n"; // Info about necessary approvement if ($this->registration_settings->getRegistrationType() == IL_REG_APPROVE && !$this->code_was_used) { $body .= $this->lng->txt('reg_mail_body_pwd_generation') . "\n\n"; } $body .= $this->lng->txt("reg_mail_body_text3") . "\n\r"; $body .= $this->userObj->getProfileAsString($this->lng); $mmail->Subject($subject); $mmail->Body($body); $mmail->Send(); } } }
/** * Sends the mail with its object properties as MimeMail * It first tries to read the mail body, subject and sender address from posted named formular fields. * If no field values found the defaults are used. * Placehoders will be replaced by the appropriate data. * @access public * @param object ilUser */ function send() { global $ilSetting; // determine language and get account mail data // fall back to default language if acccount mail data is not given for user language. $amail = $this->readMailTemplate($this->data['language']); if ($amail['body'] == '' || $amail['subject'] == '') { $amail = $this->readMailTemplate($ilSetting->get('language')); $lang = $ilSetting->get('language'); } else { $lang = $this->data['language']; } // fallback if mail data is still not given if ($this->areLangVariablesUsedAsFallback() && ($amail['body'] == '' || $amail['subject'] == '')) { $lang = $this->data['language']; $tmp_lang = $this->getLng($lang); // mail subject $mail_subject = $tmp_lang->txt('disk_quota_mail_subject'); // mail body $mail_body = $tmp_lang->txt('disk_quota_mail_body_salutation') . ' ' . $data['firstname'] . ' ' . $data['lastname'] . ",\n\n" . $tmp_lang->txt('disk_quota_body_text1') . "\n\n" . $tmp_lang->txt('disk_quota_body_text2') . "\n" . ILIAS_HTTP_PATH . '/login.php?client_id=' . CLIENT_ID . "\n"; $mail_body .= $tmp_lang->txt('login') . ': ' . $data['firstname'] . "\n"; $mail_body .= "\n"; $mail_body .= $tmp_lang->txt('disk_quota_mail_body_text3') . "\n\r"; //$mail_body .= $user->getProfileAsString($tmp_lang); } else { // replace placeholders $mail_subject = $this->replacePlaceholders($amail['subject'], $amail, $lang); $mail_body = $this->replacePlaceholders($amail['body'], $amail, $lang); } // send the mail include_once 'Services/Mail/classes/class.ilMimeMail.php'; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($ilSetting->get('admin_email')); $mmail->Subject($mail_subject); $mmail->To($this->data['email']); $mmail->Body($mail_body); $mmail->Send(); include_once 'Services/Mail/classes/class.ilMail.php'; $mail = new ilMail($_SESSION["AccountId"]); $mail->sendMail($this->data['login'], "", "", $mail_subject, $mail_body, array(), array("normal")); return true; }
/** * Sends the mail with its object properties as MimeMail * It first tries to read the mail body, subject and sender address from posted named formular fields. * If no field values found the defaults are used. * Placehoders will be replaced by the appropriate data. * @access public * @param object ilUser */ function send() { global $ilSetting; $user =& $this->getUser(); if (!$user->getEmail()) { return false; } // determine language and get account mail data // fall back to default language if acccount mail data is not given for user language. $amail = $this->readAccountMail($user->getLanguage()); if ($amail['body'] == '' || $amail['subject'] == '') { $amail = $this->readAccountMail($ilSetting->get('language')); $lang = $ilSetting->get('language'); } else { $lang = $user->getLanguage(); } // fallback if mail data is still not given if ($this->areLangVariablesUsedAsFallback() && ($amail['body'] == '' || $amail['subject'] == '')) { $lang = $user->getLanguage(); $tmp_lang = new ilLanguage($lang); // mail subject $mail_subject = $tmp_lang->txt('reg_mail_subject'); $timelimit = ""; if (!$user->checkTimeLimit()) { $tmp_lang->loadLanguageModule("registration"); // #6098 $timelimit_from = new ilDateTime($user->getTimeLimitFrom(), IL_CAL_UNIX); $timelimit_until = new ilDateTime($user->getTimeLimitUntil(), IL_CAL_UNIX); $timelimit = ilDatePresentation::formatPeriod($timelimit_from, $timelimit_until); $timelimit = "\n" . sprintf($tmp_lang->txt('reg_mail_body_timelimit'), $timelimit) . "\n\n"; } // mail body $mail_body = $tmp_lang->txt('reg_mail_body_salutation') . ' ' . $user->getFullname() . ",\n\n" . $tmp_lang->txt('reg_mail_body_text1') . "\n\n" . $tmp_lang->txt('reg_mail_body_text2') . "\n" . ILIAS_HTTP_PATH . '/login.php?client_id=' . CLIENT_ID . "\n"; $mail_body .= $tmp_lang->txt('login') . ': ' . $user->getLogin() . "\n"; $mail_body .= $tmp_lang->txt('passwd') . ': ' . $this->u_password . "\n"; $mail_body .= "\n" . $timelimit; $mail_body .= $tmp_lang->txt('reg_mail_body_text3') . "\n\r"; $mail_body .= $user->getProfileAsString($tmp_lang); } else { // replace placeholders $mail_subject = $this->replacePlaceholders($amail['subject'], $user, $amail, $lang); $mail_body = $this->replacePlaceholders($amail['body'], $user, $amail, $lang); } // send the mail include_once 'Services/Mail/classes/class.ilMimeMail.php'; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($ilSetting->get('admin_email')); $mmail->Subject($mail_subject); $mmail->To($user->getEmail()); $mmail->Body($mail_body); foreach ($this->attachments as $filename => $display_name) { $mmail->Attach($filename, "", "attachment", $display_name); } /* echo "<br><br><b>From</b>:".$ilSetting->get("admin_email"); echo "<br><br><b>To</b>:".$user->getEmail(); echo "<br><br><b>Subject</b>:".$mail_subject; echo "<br><br><b>Body</b>:".$mail_body; return true;*/ $mmail->Send(); return true; }
function __sendProfileMail() { global $ilUser, $ilias; if ($_POST['send_mail'] != 'y') { return ''; } if (!strlen($this->object->getEmail())) { return ''; } // Choose language of user $usr_lang = new ilLanguage($this->object->getLanguage()); $usr_lang->loadLanguageModule('crs'); $usr_lang->loadLanguageModule('registration'); include_once "Services/Mail/classes/class.ilMimeMail.php"; $mmail = new ilMimeMail(); $mmail->autoCheck(false); $mmail->From($ilUser->getEmail()); $mmail->To($this->object->getEmail()); // mail subject $subject = $usr_lang->txt("profile_changed"); // mail body $body = $usr_lang->txt("reg_mail_body_salutation") . " " . $this->object->getFullname() . ",\n\n"; $date = $this->object->getApproveDate(); // Approve if (time() - strtotime($date) < 10) { $body .= $usr_lang->txt('reg_mail_body_approve') . "\n\n"; } else { $body .= $usr_lang->txt('reg_mail_body_profile_changed') . "\n\n"; } // Append login info only if password has been chacnged if ($_POST['passwd'] != '********') { $body .= $usr_lang->txt("reg_mail_body_text2") . "\n" . ILIAS_HTTP_PATH . "/login.php?client_id=" . $ilias->client_id . "\n" . $usr_lang->txt("login") . ": " . $this->object->getLogin() . "\n" . $usr_lang->txt("passwd") . ": " . $_POST['passwd'] . "\n\n"; } $body .= $usr_lang->txt("reg_mail_body_text3") . "\n"; $body .= $this->object->getProfileAsString($usr_lang); $mmail->Subject($subject); $mmail->Body($body); $mmail->Send(); return "<br/>" . $this->lng->txt("mail_sent"); }