📄 send.php
字号:
} $addresses[] = $email->f("email"); $names[] = $email->f("email")." (".$email->f("name").")"; $ids[] = $email->f("id"); } $signature = ''; if ($mail_from > 0) { $account = $email->get_account($mail_from); if ($account['signature'] != '') { if ($content_type == 'text/HTML') { $signature = '<br />'.text_to_html($account['signature']).'<br /><br />'; }else { $signature = "\r\n".$account['signature']."\r\n\r\n"; } } } //if a uid is given then the user is replying or forwarding if ($uid > 0 && ($_SERVER['REQUEST_METHOD'] != 'POST' || $sendaction == 'load_template' || $sendaction == 'change_format')) { //get the original message require_once($GO_CONFIG->class_path."mail/imap.class.inc"); $mail = new imap(); $account = $email->get_account($mail_from); if ($account && $mail->open( $account['host'], $account['type'], $account['port'], $account['username'], $account['password'], $_REQUEST['mailbox'], 0, $account['use_ssl'], $account['novalidate_cert'])) { $preferred_type = ($content_type=='text/HTML') ? 'html' : 'text'; $content = $mail->get_message($uid, $preferred_type,""); $parts = array_reverse($mail->f("parts")); //fill in the header fields $subject = isset($content['subject']) ? $content['subject'] : $ml_no_subject; switch($_REQUEST['action']) { case 'open': $mail_subject = $subject; if (isset($content["to"])) { for ($i=0;$i<sizeof($content["to"]);$i++) { if ($content["to"][$i] != "" && !in_array(get_email_from_string($content["to"][$i]),$addresses)) { if (!isset($first)) { $first = true; }else { $mail_to .= ','; } $mail_to .= $content["to"][$i]; } } } unset($first); if (isset($content["cc"])) { $show_cc = 'true'; for ($i=0;$i<sizeof($content["cc"]);$i++) { if ($content["cc"][$i] != "" && !in_array(get_email_from_string($content["cc"][$i]),$addresses)) { if (!isset($first)) { $first = true; }else { $mail_cc .= ','; } $mail_cc .= $content["cc"][$i]; } } } if($sendaction != 'change_format') { for ($i=0;$i<count($parts);$i++) { if (eregi("attachment", $parts[$i]["disposition"]) || ($parts[$i]["id"] == '' && eregi("inline", $parts[$i]["disposition"])) && !eregi("message/RFC822", $parts[$i]["mime"])) { $file = $mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"]); $name = $parts[$i]['name'] != '' ? $parts[$i]['name'] : 'attach_'.$i; $tmp_file = $GO_CONFIG->tmpdir.md5(uniqid(time())); $fp = fopen($tmp_file,"wb"); fwrite ($fp,$file); fclose($fp); $email->register_attachment($tmp_file, $parts[$i]["name"], $parts[$i]["size"], $parts[$i]["mime"], 'attachment', $parts[$i]["id"]); } } } break; case "reply": $mail_to = $content["reply_to"]; if(!eregi('Re:', $subject)) { $mail_subject = 'Re: '.$subject; }else { $mail_subject = $subject; } break; case "reply_all": $mail_to = $content["reply_to"]; if(!eregi('Re:', $subject)) { $mail_subject = 'Re: '.$subject; }else { $mail_subject = $subject; } //add all recievers from this email if (isset($content["to"])) { for ($i=0;$i<sizeof($content["to"]);$i++) { if ($content["to"][$i] != "" && !in_array(get_email_from_string($content["to"][$i]),$addresses)) { $mail_to .= ",".$content["to"][$i]; } } } if (isset($content["cc"]) && count($content["cc"]) > 0) { $show_cc = 'true'; for ($i=0;$i<sizeof($content["cc"]);$i++) { if ($content["cc"][$i] != "" && !in_array(get_email_from_string($content["cc"][$i]),$addresses)) { if (!isset($first)) { $first = true; }else { $mail_cc .= ','; } $mail_cc .= $content["cc"][$i]; } } } break; case "forward": //reattach attachments if(!eregi('Fwd:', $subject)) { $mail_subject = 'Fwd: '.$subject; }else { $mail_subject = $subject; } if($sendaction != 'change_format') { for ($i=0;$i<count($parts);$i++) { if (eregi("attachment", $parts[$i]["disposition"]) || ($parts[$i]["id"] == '' && eregi("inline", $parts[$i]["disposition"])) && !eregi("message/RFC822", $parts[$i]["mime"])) { $file = $mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"]); $name = $parts[$i]['name'] != '' ? $parts[$i]['name'] : 'attach_'.$i; $tmp_file = $GO_CONFIG->tmpdir.md5(uniqid(time())); $fp = fopen($tmp_file,"wb"); fwrite ($fp,$file); fclose($fp); $email->register_attachment($tmp_file, $parts[$i]["name"], $parts[$i]["size"], $parts[$i]["mime"], 'attachment', $parts[$i]["id"]); } } } break; } //reatach inline attachements for ($i=0;$i<count($parts);$i++) { if ($parts[$i]["id"] != '')// && eregi("inline", $parts[$i]["disposition"])) { $file = $mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"]); $tmp_file = $GO_CONFIG->tmpdir.md5(uniqid(time())); $fp = fopen($tmp_file,"wb"); fwrite ($fp,$file); fclose($fp); if (strpos($parts[$i]["id"],'>')) { $parts[$i]["id"] = substr($parts[$i]["id"], 1,strlen($parts[$i]["id"])-2); } $email->register_attachment($tmp_file, $parts[$i]["name"], $parts[$i]["size"], $parts[$i]["mime"], 'inline', $parts[$i]["id"]); //Content-ID's that need to be replaced with urls when message is send //replace inline images identified by a content id with the url to display the part by Group-Office $url_replacement['id'] = $parts[$i]["id"]; $url_replacement['url'] = "attachment.php?account_id=".$mail_from."&mailbox=".$_REQUEST['mailbox']."&uid=".$uid."&part=".$parts[$i]["number"]."&transfer=".$parts[$i]["transfer"]."&mime=".$parts[$i]["mime"]."&filename=".urlencode($parts[$i]["name"]); $_SESSION['url_replacements'][] = $url_replacement; } } $html_message_count = 0; for ($i=0;$i<count($parts);$i++) { if($content_type=='text/HTML') { $mime = strtolower($parts[$i]["mime"]); if (!eregi("attachment", $parts[$i]["disposition"])) { switch ($mime) { case 'text/plain': $html_part = text_to_html($mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"], $parts[$i]['charset']), false); $mail_body .= $html_part; break; case 'text/html': $html_part = convert_html($mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"], $parts[$i]['charset'])); $mail_body .= $html_part; break; case 'text/enriched': $html_part = enriched_to_html($mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"], $parts[$i]['charset']), false); $mail_body .= $html_part; break; } } }else { if (strtolower($parts[$i]["mime"]) == "text/plain" && !eregi("ATTACHMENT", $parts[$i]["disposition"])) { $mail_body .= $mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"], $parts[$i]['charset']); } //add html messages as an attachment since we don't have an html editor to display it coreect yet if (strtolower($parts[$i]["mime"]) == "text/html" && !eregi("ATTACHMENT", $parts[$i]["disposition"])) { if ($parts[$i]["name"] == '' && $parts[$i]["mime"] == "text/HTML") { if ($html_message_count == 0) $parts[$i]["name"] = $content["sender"].".html"; else $parts[$i]["name"] = $content["sender"]."(".$html_message_count.").html"; $html_message_count++; }// $file = $mail->view_part($uid, $parts[$i]["number"],// $parts[$i]["transfer"], $parts[$i]["mime"], $parts[$i]['charset']); $file = $mail->view_part($uid, $parts[$i]["number"], $parts[$i]["transfer"], $parts[$i]['charset']); $tmp_file = $GO_CONFIG->tmpdir.md5(uniqid(time())); $fp = fopen($tmp_file,"w"); fwrite ($fp,$file); fclose($fp); $email->register_attachment($tmp_file, $parts[$i]["name"], $parts[$i]["size"], $parts[$i]["mime"]); } } } if ($content_type=='text/HTML') { if ($mail_body != '') { //replace inline images with the url to display the part by Group-Office if (isset($_SESSION['url_replacements'])) { for ($i=0;$i<count($_SESSION['url_replacements']);$i++) { $mail_body = str_replace('cid:'.$_SESSION['url_replacements'][$i]['id'], $_SESSION['url_replacements'][$i]['url'], $mail_body); } } } if($_REQUEST['action'] != 'open') { $header_om = '<font face="verdana" size="2">'.$ml_original_follows."<br />"; $om_to = ''; if (isset($content)) { $header_om .= "<b>".$ml_subject.": </b>".addslashes($subject)."<br />"; $header_om .= '<b>'.$ml_from.": </b>".$content['from'].' <'.$content["sender"]."><br />"; if (isset($content['to'])) { for ($i=0;$i<sizeof($content["to"]);$i++) { if ($i!=0) $om_to .= ','; $om_to .= $content["to"][$i]; } }else { $om_to=$ml_no_reciepent; } $header_om .= "<b>".$ml_to.": </b>".addslashes(htmlspecialchars($om_to))."<br />"; $om_cc = ''; if (isset($content['cc'])) { for ($i=0;$i<sizeof($content["cc"]);$i++) { if ($i!=0) $om_cc .= ','; $om_cc .= $content["cc"][$i]; } } if($om_cc != '') { $header_om .= "<b>CC: </b>".addslashes(htmlspecialchars($om_cc))."<br />"; } $header_om .= "<b>".$strDate.": </b>".date($_SESSION['GO_SESSION']['date_format'].' '.$_SESSION['GO_SESSION']['time_format'],$content["udate"])."<br />"; } $header_om .= "</font><br /><br />"; $mail_body = $signature.'<br /><blockquote style="border:0;border-left: 2px solid #22437f; padding:0px; margin:0px; padding-left:5px; margin-left: 5px; ">'.$header_om.$mail_body.'</blockquote>'; } }else { if($_REQUEST['action'] != 'open') { $header_om = $ml_original_follows."\r\n"; if (isset($content)) { $header_om .= $ml_subject.": ".$subject."\r\n"; $header_om .= $ml_from.": ".$content['from'].' <'.$content["sender"].">\r\n"; $om_to = ''; if (isset($content['to'])) { for ($i=0;$i<sizeof($content["to"]);$i++) { if ($i!=0) $om_to .= ','; $om_to .= $content["to"][$i]; } $header_om .= $ml_to.": ".$om_to."\r\n"; }else { $om_to = $ml_no_reciepent; } $om_cc = ''; if (isset($content['cc'])) { for ($i=0;$i<sizeof($content["cc"]);$i++) { if ($i!=0) $om_cc .= ','; $om_cc .= $content["cc"][$i]; } } if($om_cc != '') { $header_om .= "CC: ".$om_cc."\r\n"; } $header_om .= $strDate.": ".date($_SESSION['GO_SESSION']['date_format'].' '.$_SESSION['GO_SESSION']['time_format'],$content["udate"])."\r\n\r\n\r\n"; } if ($html_message_count > 0) { $mail_body = $ml_html_message_attached."\r\n\r\n".$header_om.$mail_body; }else { $mail_body = $header_om.$mail_body; } $mail_body = $signature.quote($mail_body); } } } $mail->close(); }else { if($mail_body == '') { $mail_body = $signature; } } $min_height = -195; if(count($ids) > 1) { $min_height -= 25; } if($show_cc == 'true') $min_height -= 52; if($show_bcc == 'true') $min_height -= 52; if($ab_module && $ab_module['read_permission']) { $ab->search_contacts($GO_SECURITY->user_id, '%'); while($ab->next_record()) { if(validate_email($ab->f('email'))) { $middle_name = $ab->f('middle_name') == '' ? ' ' : ' '.$ab->f('middle_name').' '; $autocomplete_contacts[] = $RFC822->write_address(addslashes($ab->f('first_name').$middle_name.$ab->f('last_name')),$ab->f('email')); } } $ab->search_companies($GO_SECURITY->user_id, '%'); while($ab->next_record()) { if(validate_email($ab->f('email'))) { $autocomplete_contacts[] = $RFC822->write_address(addslashes($ab->f('name')),$ab->f('email')); } } $GO_USERS->get_authorized_users($GO_SECURITY->user_id); while($GO_USERS->next_record()) { $middle_name = $GO_USERS->f('middle_name') == '' ? ' ' : ' '.$GO_USERS->f('middle_name').' '; $autocomplete_contacts[] = '"'.addslashes($GO_USERS->f('first_name').$middle_name.$GO_USERS->f('last_name')).'" <'.$GO_USERS->f('email').'>'; } } if(isset($autocomplete_contacts) && count($autocomplete_contacts) > 0) { $autocomplete_contacts = array_unique($autocomplete_contacts); $GO_HEADER['head'] = '<script language="javascript" type="text/javascript" src="'.$GO_CONFIG->host.'javascript/actb.js"></script>'; $GO_HEADER['head'] .= '<script type="text/javascript">'. 'var autocomplete_contacts = new Array(\''.implode("','", $autocomplete_contacts).'\');'. '</script>'; } $GO_HEADER['body_arguments'] = 'onload="document.sendform.mail_to.focus();" onUnLoad="close_attachments();"'; $overlib = new overlib(); $GO_HEADER['head'] .= $overlib->get_header(); require_once($GO_THEME->theme_path."header.inc"); require_once("compose.inc");}require_once($GO_THEME->theme_path."footer.inc");?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -