From 0b17277eaeebdee278230d7cd2550a1a9e2fcf9f Mon Sep 17 00:00:00 2001
From: till <till@php.net>
Date: Mon, 24 Mar 2008 20:52:33 -0400
Subject: [PATCH] * committing patch from #1484783

---
 program/steps/mail/sendmdn.inc |   81 ++++++----------------------------------
 1 files changed, 12 insertions(+), 69 deletions(-)

diff --git a/program/steps/mail/sendmdn.inc b/program/steps/mail/sendmdn.inc
index 0944e76..530dcac 100644
--- a/program/steps/mail/sendmdn.inc
+++ b/program/steps/mail/sendmdn.inc
@@ -5,7 +5,7 @@
  | program/steps/mail/sendmdn.inc                                        |
  |                                                                       |
  | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2007, RoundCube Dev. - Switzerland                      |
+ | Copyright (C) 2008, RoundCube Dev. - Switzerland                      |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -22,76 +22,19 @@
 require_once('lib/rc_mail_mime.inc');
 
 
-if (!empty($_POST['_uid']))
- {
-  $MESSAGE = array('UID' => get_input_value('_uid', RCUBE_INPUT_POST));
-  $MESSAGE['headers'] = $IMAP->get_headers($MESSAGE['UID']);
-  $MESSAGE['subject'] = rcube_imap::decode_mime_string($MESSAGE['headers']->subject, $MESSAGE['headers']->charset);
-  
-  if ($MESSAGE['headers']->mdn_to && !$MESSAGE['headers']->mdn_sent)
-  {
-    $identity = $USER->get_identity();
-    $sender = format_email_recipient($identity['email'], $identity['name']);
-    $recipient = array_shift($IMAP->decode_address_list($MESSAGE['headers']->mdn_to));
-    $mailto = $recipient['mailto'];
-
-    $COMPOSE = new rc_mail_mime(rcmail_header_delm());
-    $COMPOSE->setParam(array(
-      'text_encoding' => 'quoted-printable',
-      'html_encoding' => 'quoted-printable',
-      'head_encoding' => 'quoted-printable',
-      'head_charset'  => RCMAIL_CHARSET,
-      'html_charset'  => RCMAIL_CHARSET,
-      'text_charset'  => RCMAIL_CHARSET,
-    ));
-    
-    // compose headers array
-    $headers = array(
-      'Date' => date('r'),
-      'From' => $sender,
-      'To'   => $MESSAGE['headers']->mdn_to,
-      'Subject' => rcube_label('receiptread') . ': ' . $MESSAGE['subject'],
-      'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), rcmail_mail_domain($_SESSION['imap_host'])),
-      'X-Sender' => $identity['email'],
-      'Content-Type' => 'multipart/report; report-type=disposition-notification',
-    );
-    
-    if (!empty($CONFIG['useragent']))
-      $headers['User-Agent'] = $CONFIG['useragent'];
-
-    $body = rcube_label("yourmessage") . "\r\n\r\n" .
-      "\t" . rcube_label("to") . ': ' . rcube_imap::decode_mime_string($MESSAGE['headers']->to, $MESSAGE['headers']->charset) . "\r\n" .
-      "\t" . rcube_label("subject") . ': ' . $MESSAGE['subject'] . "\r\n" .
-      "\t" . rcube_label("sent") . ': ' . format_date(strtotime($MESSAGE['headers']->date), $CONFIG['date_long']) . "\r\n" .
-      "\r\n" . rcube_label("receiptnote") . "\r\n";
-    
-    $report = "Reporting-UA: RoundCube Webmail (Version ".RCMAIL_VERSION.")\r\n";
-    
-    if ($MESSAGE['headers']->to)
-        $report .= "Original-Recipient: {$MESSAGE['headers']->to}\r\n";
-    
-    $report .= "Final-Recipient: rfc822; {$identity['email']}\r\n" .
-               "Original-Message-ID: {$MESSAGE['headers']->messageID}\r\n" .
-               "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
-    
-    $COMPOSE->headers($headers, true);
-    $COMPOSE->setTXTBody($body);
-    $COMPOSE->addAttachment($report, 'message/disposition-notification', 'MDNPart2.txt', false, '7bit', 'inline');
-
-    $sent = rcmail_deliver_message($COMPOSE, $identity['email'], $mailto);
-
-    if ($sent)
-    {
-      $IMAP->set_flag($MESSAGE['UID'], 'MDNSENT');
-      $OUTPUT->set_env('mdn_request', false);
-      $OUTPUT->show_message('receiptsent', 'confirmation');
-      $OUTPUT->send();
-    }
-  }
+if (!empty($_POST['_uid'])) {
+  $sent = rcmail_send_mdn(get_input_value('_uid', RCUBE_INPUT_POST));
 }
 
-// Error if arrive here
-$OUTPUT->show_message('errorsendingreceipt', 'error');
+// show either confirm or error message
+if ($sent) {
+  $OUTPUT->set_env('mdn_request', false);
+  $OUTPUT->show_message('receiptsent', 'confirmation');
+}
+else {
+  $OUTPUT->show_message('errorsendingreceipt', 'error');
+}
+
 $OUTPUT->send();
 
 ?>
\ No newline at end of file

--
Gitblit v1.9.1