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