コード例 #1
0
function purge_old_attachments()
{
    global $attachment_lifetime;
    $now = time();
    if (isset($_SESSION['compose_sessions'])) {
        foreach ($_SESSION['compose_sessions'] as $id => $time) {
            if ($now - $time > $attachment_lifetime) {
                unset_attachments($id);
            }
        }
    }
}
コード例 #2
0
ファイル: compose.php プロジェクト: Hassanj343/candidats
 function form_action_compose_send($form, $post)
 {
     global $user;
     global $imap;
     global $conf;
     global $message;
     global $hastymail_version;
     global $smtp;
     global $include_path;
     global $fd;
     $path = $conf['attachments_path'];
     if ($user->logged_in) {
         if (isset($post['contacts_visible']) && $post['contacts_visible']) {
             $user->page_data['contact_browse'] = true;
         }
         require_once $include_path . 'lib' . $fd . 'smtp_class.php';
         $message = hm_new('mime', $post['compose_session']);
         if (!isset($_SESSION['user_settings']['compose_hide_mailer']) || !$_SESSION['user_settings']['compose_hide_mailer']) {
             $message->set_header('x_Mailer', $hastymail_version);
         }
         if (isset($post['compose_to'])) {
             $message->to = $post['compose_to'];
         }
         if (isset($post['compose_cc'])) {
             $message->cc = $post['compose_cc'];
         }
         if (isset($post['compose_bcc'])) {
             $message->bcc = $post['compose_bcc'];
         }
         if (isset($post['compose_references'])) {
             $message->references = $post['compose_references'];
         }
         if (isset($post['compose_in_reply_to'])) {
             $message->in_reply_to = $post['compose_in_reply_to'];
         }
         if (isset($post['message_id'])) {
             $message->message_id = $post['message_id'];
         }
         if (isset($post['compose_from'])) {
             if (isset($_SESSION['user_settings']['profiles'][$post['compose_from']])) {
                 $from_atts = $_SESSION['user_settings']['profiles'][$post['compose_from']];
                 $message->from = '"' . $from_atts['profile_name'] . '" <' . $from_atts['profile_address'] . '> ';
                 $message->from_address = $from_atts['profile_address'];
                 if (isset($from_atts['profile_reply_to']) && $from_atts['profile_reply_to']) {
                     $message->reply_to = '<' . $from_atts['profile_address'] . '>';
                 }
             }
         }
         if ($message->from_address) {
             $recipients = $message->get_recipient_addresses();
             if (!empty($recipients)) {
                 $message->subject = $post['compose_subject'];
                 $message->body = $post['compose_message'];
                 $priortiy = 0;
                 if (isset($post['compose_priority']) && $post['compose_priority']) {
                     $priortiy = (int) $post['compose_priority'];
                 }
                 if ($priortiy && $priortiy != 3) {
                     $message->set_header('x_Priority', $priortiy);
                 }
                 if (isset($post['compose_mdn']) && $post['compose_mdn']) {
                     $message->set_header('disposition_Notification_To', $message->from_address);
                 }
                 $smtp = hm_new('smtp');
                 $res = $smtp->connect();
                 if (!$res) {
                     do_work_hook('message_send', array($message->body));
                     $res = $smtp->send_message($message->from_address, $recipients, $message);
                     if ($res) {
                         if ($smtp->smtp_err) {
                             $res .= '<br />' . $smtp->smtp_err;
                         }
                         $this->form_vals = $post;
                         $this->errors[] = $res;
                     } else {
                         $user->page_data['sent'] = 1;
                         $this->errors[] = $user->str[355];
                         $this->form_redirect = true;
                         if (isset($post['compose_in_reply_to']) && $post['compose_in_reply_to']) {
                             $this->perform_imap_action('ANSWERED', $post['reply_box'], array($post['reply_uid']), false, false);
                         }
                     }
                     if (!$res && !isset($post['compose_skip_sent']) || isset($post['compose_skip_sent']) && !$post['compose_skip_sent']) {
                         $sent_folder = $_SESSION['user_settings']['sent_folder'];
                         if (isset($_SESSION['sent_folder_override']) && isset($_SESSION['folders'][$_SESSION['sent_folder_override']])) {
                             $sent_folder = $_SESSION['sent_folder_override'];
                             unset($_SESSION['sent_folder_override']);
                         }
                         if (isset($sent_folder) && isset($_SESSION['folders'][$sent_folder])) {
                             $status = stream_imap_append($message, $post['compose_session'], $sent_folder);
                             if (!$status) {
                                 $this->errors[] = $user->str[539];
                             }
                         }
                     }
                     if (!$res && isset($_SESSION['user_settings']['draft_folder']) && isset($post['message_id']) && $post['message_id'] && isset($_SESSION['user_settings']['delete_draft']) && $_SESSION['user_settings']['delete_draft'] && $_SESSION['user_settings']['draft_folder']) {
                         $trash_folder = false;
                         if (isset($_SESSION['user_settings']['trash_folder']) && $_SESSION['user_settings']['trash_folder']) {
                             $trash_folder = $_SESSION['user_settings']['trash_folder'];
                         }
                         $select_res = $imap->select_mailbox($_SESSION['user_settings']['draft_folder'], false, false, true);
                         if ($select_res) {
                             $search_res = $imap->simple_search('header message-id', false, $post['message_id']);
                             if (isset($search_res[0])) {
                                 $this->perform_imap_action('DELETE', $_SESSION['user_settings']['draft_folder'], array($search_res[0]), $trash_folder, false);
                             }
                         }
                     }
                     do_work_hook('compose_after_send');
                 } else {
                     $this->errors[] = $res;
                     $this->form_vals = $post;
                 }
                 if (!$res) {
                     unset_attachments($post['compose_session']);
                 }
                 $smtp->disconnect();
             } else {
                 $this->form_vals = $post;
                 $this->errors[] = $user->str[356];
             }
         } else {
             $this->form_vals = $post;
             $this->errors[] = $user->str[357];
         }
     }
 }
コード例 #3
0
 function purge_attachments()
 {
     if (isset($_SESSION['compose_sessions'])) {
         foreach ($_SESSION['compose_sessions'] as $i => $v) {
             unset_attachments($i);
         }
     }
 }