summaryrefslogtreecommitdiff
path: root/program/steps/mail/sendmdn.inc
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2008-02-04 17:39:06 +0000
committerthomascube <thomas@roundcube.net>2008-02-04 17:39:06 +0000
commit0ea884099afbe57b12faa29f2d676c44faa1cbf5 (patch)
treed3918bd19bf2ac24f54a991f5144c04e7ad36552 /program/steps/mail/sendmdn.inc
parentc708c9a67a8e32fdd67ca1eb7e807fa61fd125c4 (diff)
Make sending of read receipts configurable
Diffstat (limited to 'program/steps/mail/sendmdn.inc')
-rw-r--r--program/steps/mail/sendmdn.inc79
1 files changed, 11 insertions, 68 deletions
diff --git a/program/steps/mail/sendmdn.inc b/program/steps/mail/sendmdn.inc
index 0944e7602..530dcac4c 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 (!empty($_POST['_uid'])) {
+ $sent = rcmail_send_mdn(get_input_value('_uid', RCUBE_INPUT_POST));
+}
- if ($sent)
- {
- $IMAP->set_flag($MESSAGE['UID'], 'MDNSENT');
- $OUTPUT->set_env('mdn_request', false);
- $OUTPUT->show_message('receiptsent', 'confirmation');
- $OUTPUT->send();
- }
- }
+// 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');
}
-// Error if arrive here
-$OUTPUT->show_message('errorsendingreceipt', 'error');
$OUTPUT->send();
?> \ No newline at end of file