00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00033 require_once "./include/inc.header.php";
00034 require_once "./include/inc.mail.php";
00035 require_once "classes/class.ilObjUser.php";
00036 require_once "classes/class.ilFormatMail.php";
00037 require_once "classes/class.ilMailbox.php";
00038 require_once "classes/class.ilFileDataMail.php";
00039
00040 $lng->loadLanguageModule("mail");
00041
00042 $_POST["attachments"] = $_POST["attachments"] ? $_POST["attachments"] : array();
00043
00044 $umail = new ilFormatMail($_SESSION["AccountId"]);
00045 $mfile = new ilFileDataMail($_SESSION["AccountId"]);
00046
00047
00048 if (!$rbacsystem->checkAccess("mail_visible",$umail->getMailObjectReferenceId()))
00049 {
00050 $ilias->raiseError($lng->txt("permission_denied"),$ilias->error_obj->WARNING);
00051 }
00052
00053 $tpl->addBlockFile("CONTENT", "content", "tpl.adm_content.html");
00054 $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_new.html");
00055 $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00056 $tpl->setCurrentBlock("header_image");
00057 $tpl->setVariable("IMG_HEADER", ilUtil::getImagePath("icon_mail_b.gif"));
00058 $tpl->parseCurrentBlock();
00059 $tpl->setVariable("HEADER",$lng->txt("mail"));
00060 infoPanel();
00061
00062
00063 setLocator($_GET["mobj_id"],'mail_new.php',$_SESSION["AccountId"],"");
00064
00065
00066 if(isset($_POST["cmd"]["send"]))
00067 {
00068 $f_message = $umail->formatLinebreakMessage(ilUtil::stripSlashes($_POST["m_message"]));
00069 $umail->setSaveInSentbox(true);
00070 if($error_message = $umail->sendMail($_POST["rcp_to"],$_POST["rcp_cc"],
00071 $_POST["rcp_bcc"],
00072 ilUtil::stripSlashes($_POST["m_subject"]),
00073 $f_message,
00074 $_POST["attachments"],$_POST["m_type"]))
00075 {
00076 sendInfo($error_message);
00077 }
00078 else
00079 {
00080 $mbox = new ilMailbox($_SESSION["AccountId"]);
00081
00082 sendInfo($lng->txt("mail_message_send",true));
00083 header("location: mail.php?sent=1&mobj_id=".$mbox->getInboxFolder());
00084 exit;
00085 }
00086 }
00087
00088
00089 if(isset($_POST["cmd"]["save_message"]))
00090 {
00091 if(!$_POST["m_subject"])
00092 {
00093 $_POST["m_subject"] = "No title";
00094 }
00095 $mbox = new ilMailbox($_SESSION["AccountId"]);
00096 $drafts_id = $mbox->getDraftsFolder();
00097
00098 if(isset($_SESSION["draft"]))
00099 {
00100 $umail->updateDraft($drafts_id,$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00101 $_POST["rcp_bcc"],$_POST["m_type"],$_POST["m_email"],
00102 ilUtil::stripSlashes($_POST["m_subject"]),
00103 ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["draft"]);
00104 session_unregister("draft");
00105 sendInfo($lng->txt("mail_saved"),true);
00106 header("location: mail.php?mobj_id=".$mbox->getInboxFolder());
00107 exit;
00108 }
00109 else
00110 {
00111 $mbox = new ilMailbox($_SESSION["AccountId"]);
00112 $drafts_id = $mbox->getDraftsFolder();
00113
00114 if($umail->sendInternalMail($drafts_id,$_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00115 $_POST["rcp_bcc"],'read',$_POST["m_type"],$_POST["m_email"],
00116 ilUtil::stripSlashes($_POST["m_subject"]),
00117 ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["AccountId"]))
00118 {
00119 sendInfo($lng->txt("mail_saved"));
00120 }
00121 else
00122 {
00123 sendInfo($lng->txt("mail_send_error"));
00124 }
00125 }
00126 }
00127
00128
00129 if(isset($_POST["cmd"]["rcp_to"]))
00130 {
00131 $_SESSION["mail_search"] = 'to';
00132 sendInfo($lng->txt("mail_insert_query"));
00133 }
00134 if(isset($_POST["cmd"]["rcp_cc"]))
00135 {
00136 $_SESSION["mail_search"] = 'cc';
00137 sendInfo($lng->txt("mail_insert_query"));
00138 }
00139 if(isset($_POST["cmd"]["rcp_bc"]))
00140 {
00141 $_SESSION["mail_search"] = 'bc';
00142 sendInfo($lng->txt("mail_insert_query"));
00143 }
00144
00145
00146 if(isset($_POST["cmd"]["edit"]))
00147 {
00148 $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],
00149 $_POST["rcp_to"],$_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00150 $_POST["m_email"],
00151 ilUtil::stripSlashes($_POST["m_subject"]),
00152 ilUtil::stripSlashes($_POST["m_message"]));
00153 header("location: mail_attachment.php?mobj_id=$_GET[mobj_id]");
00154 }
00155
00156
00157 if(isset($_POST["cmd"]["search"]))
00158 {
00159 $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],
00160 $_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00161 $_POST["m_email"],
00162 ilUtil::stripSlashes($_POST["m_subject"]),
00163 ilUtil::stripSlashes($_POST["m_message"]));
00164
00165 if(!$_POST["type_system"] and !$_POST["type_addressbook"])
00166 {
00167 $_POST["type_system"] = $_POST["type_addressbook"] = 1;
00168 }
00169 $get = '';
00170 if($_POST["type_system"])
00171 {
00172 $get .= "&system=1";
00173 }
00174 if($_POST["type_addressbook"])
00175 {
00176 $get .= "&addressbook=1";
00177 }
00178 if(strlen(trim($_POST['search'])) < 3)
00179 {
00180 $lng->loadLanguageModule('search');
00181 sendInfo($lng->txt('search_minimum_three'));
00182 unset($_POST['cmd']);
00183 $_POST['cmd']['rcp_to'] = true;
00184 }
00185 else
00186 {
00187 header("location: mail_search.php?mobj_id=$_GET[mobj_id]&search=".urlencode($_POST["search"]).$get);
00188 exit();
00189 }
00190 }
00191 if(isset($_POST["cmd"]["search_cancel"]) or isset($_POST["cmd"]["cancel"]))
00192 {
00193 unset($_SESSION["mail_search"]);
00194 }
00195
00196
00197 include "./include/inc.mail_buttons.php";
00198
00199
00200
00201
00202 switch($_GET["type"])
00203 {
00204 case 'reply':
00205 $mail_data = $umail->getMail($_GET["mail_id"]);
00206 $mail_data["m_subject"] = $umail->formatReplySubject();
00207 $mail_data["m_message"] = $umail->formatReplyMessage();
00208 $mail_data["m_message"] = $umail->appendSignature();
00209
00210 $mail_data["attachments"] = array();
00211 $mail_data["rcp_to"] = $umail->formatReplyRecipient();
00212 break;
00213
00214 case 'search_res':
00215 $mail_data = $umail->getSavedData();
00216 if($_POST["search_name"])
00217 {
00218 $mail_data = $umail->appendSearchResult($_POST["search_name"],$_SESSION["mail_search"]);
00219 }
00220 unset($_SESSION["mail_search"]);
00221 break;
00222
00223 case 'attach':
00224 $mail_data = $umail->getSavedData();
00225 break;
00226
00227 case 'draft':
00228 $_SESSION["draft"] = $_GET["mail_id"];
00229 $mail_data = $umail->getMail($_GET["mail_id"]);
00230 break;
00231
00232 case 'forward':
00233 $mail_data = $umail->getMail($_GET["mail_id"]);
00234 $mail_data["rcp_to"] = $mail_data["rcp_cc"] = $mail_data["rcp_bcc"] = '';
00235 $mail_data["m_subject"] = $umail->formatForwardSubject();
00236 $mail_data["m_message"] = $umail->appendSignature();
00237 if(count($mail_data["attachments"]))
00238 {
00239 if($error = $mfile->adoptAttachments($mail_data["attachments"],$_GET["mail_id"]))
00240 {
00241 sendInfo($error);
00242 }
00243 }
00244 break;
00245
00246 case 'new':
00247 $mail_data["rcp_to"] = $_GET['rcp_to'];
00248 $mail_data["m_message"] = $umail->appendSignature();
00249 break;
00250
00251 case 'role':
00252 if(is_array($_POST['roles']))
00253 {
00254 $mail_data['rcp_to'] = implode(',',$_POST['roles']);
00255 }
00256 $mail_data['m_message'] = $umail->appendSignature();
00257 break;
00258
00259 case 'address':
00260 $mail_data["rcp_to"] = urldecode($_GET["rcp"]);
00261 break;
00262
00263 default:
00264
00265 $mail_data = $_POST;
00266 break;
00267 }
00268 $tpl->setVariable("ACTION", "mail_new.php?mobj_id=$_GET[mobj_id]");
00269
00270
00271 if(isset($_POST["cmd"]["rcp_to"]) or
00272 isset($_POST["cmd"]["rcp_cc"]) or
00273 isset($_POST["cmd"]["rcp_bc"]))
00274 # isset($_POST["cmd"][""] == $lng->txt("search"))
00275 {
00276 $tpl->setCurrentBlock("search");
00277 $tpl->setVariable("TXT_SEARCH_FOR",$lng->txt("search_for"));
00278 $tpl->setVariable("TXT_SEARCH_SYSTEM",$lng->txt("mail_search_system"));
00279 $tpl->setVariable("TXT_SEARCH_ADDRESS",$lng->txt("mail_search_addressbook"));
00280 $tpl->setVariable("BUTTON_SEARCH",$lng->txt("search"));
00281 $tpl->setVariable("BUTTON_CANCEL",$lng->txt("cancel"));
00282 }
00283
00284
00285 $tpl->setVariable("TXT_RECIPIENT", $lng->txt("mail_to"));
00286 $tpl->setVariable("TXT_SEARCH_RECIPIENT", $lng->txt("search_recipient"));
00287 $tpl->setVariable("BUTTON_TO",$lng->txt("mail_to_search"));
00288
00289 $tpl->setVariable("TXT_CC", $lng->txt("cc"));
00290 $tpl->setVariable("TXT_SEARCH_CC_RECIPIENT", $lng->txt("search_cc_recipient"));
00291 $tpl->setVariable("BUTTON_CC",$lng->txt("mail_cc_search"));
00292
00293 $tpl->setVariable("TXT_BC", $lng->txt("bc"));
00294 $tpl->setVariable("TXT_SEARCH_BC_RECIPIENT", $lng->txt("search_bc_recipient"));
00295 $tpl->setVariable("BUTTON_BC",$lng->txt("mail_bc_search"));
00296
00297 $tpl->setVariable("TXT_SUBJECT", $lng->txt("subject"));
00298
00299
00300 $tpl->setVariable("TXT_TYPE", $lng->txt("type"));
00301 $tpl->setVariable("TXT_NORMAL", $lng->txt("mail_intern"));
00302 if(!is_array($mail_data["m_type"]) or (is_array($mail_data["m_type"]) and in_array('normal',$mail_data["m_type"])))
00303 {
00304 $tpl->setVariable("CHECKED_NORMAL",'checked="checked"');
00305 }
00306
00307
00308 if($rbacsystem->checkAccess("system_message",$umail->getMailObjectReferenceId()))
00309 {
00310 $tpl->setCurrentBlock("system_message");
00311 $tpl->setVariable("SYSTEM_TXT_TYPE", $lng->txt("type"));
00312 $tpl->setVariable("TXT_SYSTEM", $lng->txt("system_message"));
00313 if(is_array($mail_data["m_type"]) and in_array('system',$mail_data["m_type"]))
00314 {
00315 $tpl->setVariable("CHECKED_SYSTEM",'checked="checked"');
00316 }
00317 $tpl->parseCurrentBlock();
00318 }
00319
00320
00321 if($rbacsystem->checkAccess("smtp_mail",$umail->getMailObjectReferenceId()))
00322 {
00323 $tpl->setCurrentBlock("allow_smtp");
00324 $tpl->setVariable("TXT_EMAIL", $lng->txt("email"));
00325 if(is_array($mail_data["m_type"]) and in_array('email',$mail_data["m_type"]))
00326 {
00327 $tpl->setVariable("CHECKED_EMAIL",'checked="checked"');
00328 }
00329 $tpl->parseCurrentBlock();
00330 }
00331
00332
00333 $tpl->setVariable("TXT_ATTACHMENT",$lng->txt("mail_attachments"));
00334
00335 if($mail_data["attachments"])
00336 {
00337 $tpl->setVariable("BUTTON_EDIT",$lng->txt("edit"));
00338 }
00339 else
00340 {
00341 $tpl->setVariable("BUTTON_EDIT",$lng->txt("add"));
00342 }
00343
00344
00345 $tpl->setVariable("TXT_MSG_CONTENT", $lng->txt("message_content"));
00346
00347
00348 $tpl->setVariable("TXT_SEND", $lng->txt("send"));
00349 $tpl->setVariable("TXT_MSG_SAVE", $lng->txt("save_message"));
00350
00351
00352 $tpl->setVariable("RCP_TO", ilUtil::stripSlashes($mail_data["rcp_to"]));
00353 $tpl->setVariable("RCP_CC", ilUtil::stripSlashes($mail_data["rcp_cc"]));
00354 $tpl->setVariable("RCP_BCC",ilUtil::stripSlashes($mail_data["rcp_bcc"]));
00355
00356 $tpl->setVariable("M_SUBJECT",ilUtil::stripSlashes($mail_data["m_subject"]));
00357
00358 if(count($mail_data["attachments"]))
00359 {
00360 $tpl->setCurrentBlock("files");
00361 $tpl->setCurrentBlock("hidden");
00362 foreach($mail_data["attachments"] as $data)
00363 {
00364 $tpl->setVariable("ATTACHMENTS",$data);
00365 $tpl->parseCurrentBlock();
00366 }
00367 $tpl->setVariable("ROWS",count($mail_data["attachments"]));
00368 $tpl->setVariable("FILES",implode("\n",$mail_data["attachments"]));
00369 $tpl->parseCurrentBlock();
00370 }
00371 $tpl->setVariable("M_MESSAGE",ilUtil::stripSlashes($mail_data["m_message"]));
00372 $tpl->parseCurrentBlock();
00373
00374 $tpl->show();
00375 ?>