1 --- include/class.support.php (working copy)
2 +++ include/class.support.php 2007-04-03 01:53:39.881559822 +0300
7 + * Bounce message to sender.
10 + * @param object $message parsed message structure.
11 + * @param array array(ERROR_CODE, ERROR_STRING) of error to bounce
14 + function BounceEmail($message, $error)
16 + // open text template
17 + $tpl = new Template_API;
18 + $tpl->setTemplate('notifications/bounced_email.tpl.text');
19 + $tpl->bulkAssign(array(
20 + 'error_code' => $error[0],
21 + 'error_message' => $error[1],
22 + 'date' => $message->date,
23 + 'subject' => Mime_Helper::fixEncoding($message->subject),
24 + 'from' => Mime_Helper::fixEncoding($message->fromaddress),
25 + 'to' => Mime_Helper::fixEncoding($message->toaddress),
26 + 'cc' => Mime_Helper::fixEncoding(@$message->ccaddress),
29 + $sender_email = Mail_API::getEmailAddress($message->fromaddress);
30 + $usr_id = User::getUserIDByEmail($sender_email);
31 + // change the current locale
33 + Language::set(User::getLang($usr_id));
36 + $text_message = $tpl->getTemplateContents();
38 + // send email (use PEAR's classes)
39 + $mail = new Mail_API;
40 + $mail->setTextBody($text_message);
41 + $setup = $mail->getSMTPSettings();
42 + $mail->send($setup['from'], $sender_email,
43 + APP_SHORT_NAME . ': ' . ev_gettext('Postmaster notify: see transcript for details'));
46 + Language::restore();
51 * Method used to get the information about a specific message
52 * from a given mailbox.
55 $res = Routing::getMatchingIssueIDs($addresses, 'email');
57 $return = Routing::route_emails($message);
58 - if ($return == true) {
59 + if ($return === true) {
60 Support::deleteMessage($info, $mbox, $num);
63 + // TODO: handle errors?
68 $res = Routing::getMatchingIssueIDs($addresses, 'note');
70 $return = Routing::route_notes($message);
71 - if ($return == true) {
72 - Support::deleteMessage($info, $mbox, $num);
74 + if ($return !== true) {
75 + // in case of error, create bounce, but still
76 + // delete email not to send bounce in next process :)
77 + Support::BounceEmail($email, $return);
80 + Support::deleteMessage($info, $mbox, $num);
85 $res = Routing::getMatchingIssueIDs($addresses, 'draft');
87 $return = Routing::route_drafts($message);
88 - if ($return == true) {
89 + if ($return === true) {
90 Support::deleteMessage($info, $mbox, $num);
93 + // TODO: handle errors?
97 --- templates/notifications/bounced_email.tpl.text (revision 0)
98 +++ templates/notifications/bounced_email.tpl.text (revision 0)
100 +----- {t escape=no}Eventum was unable to route your email{/t} -----
103 +----- {t escape=no}The original message headers follow{/t} -----