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