Hi Patrick. Patrick Matthäi <[email protected]> (31/07/2012): > Package: release.debian.org > Severity: normal > User: [email protected] > Usertags: unblock > > Please unblock package otrs2 > > I have added an upstream patch to fix the postmaster module with IMAPTLS > mailboxes: > > * Add backported upstream patch 27-imaptls-more-than-one-email. Using IMAPTLS > will purge all e-mails, if more than one is located in the inbox. This is > because of newer Mail::IMAPClient module versions return an array reference > insteaf of an array on the ->message action. > > unblock otrs2/3.1.7+dfsg1-3
Attaching the diff would have been helpful, would have saved a few
copying/pasting.
+otrs2 (3.1.7+dfsg1-3) unstable; urgency=low
+
+ * Add backported upstream patch 27-imaptls-more-than-one-email. Using IMAPTLS
+ will purge all e-mails, if more than one is located in the inbox. This is
+ because of newer Mail::IMAPClient module versions return an array reference
+ insteaf of an array on the ->message action.
^^^^^^^
instead, which you can fix for the next uploads.
+diff -Naur otrs2-3.1.7+dfsg1.orig/Kernel/System/MailAccount/IMAPTLS.pm
otrs2-3.1.7+dfsg1/Kernel/System/MailAccount/IMAPTLS.pm
+--- otrs2-3.1.7+dfsg1.orig/Kernel/System/MailAccount/IMAPTLS.pm 2011-11-14
16:27:31.000000000 +0100
++++ otrs2-3.1.7+dfsg1/Kernel/System/MailAccount/IMAPTLS.pm 2012-07-28
14:06:33.293674056 +0200
+@@ -132,9 +132,9 @@
+ my $IMAPObject = $Connect{IMAPObject};
+ $IMAPObject->select($IMAPFolder) or die "Could not select: $@\n";
+
+- my @Messages = $IMAPObject->messages()
++ my $Messages = $IMAPObject->messages()
+ || die "Could not retrieve messages : $@\n";
+- my $NumberOfMessages = scalar @Messages;
++ my $NumberOfMessages = scalar @{$Messages};
What happens if an old Mail::IMAPClient module version is used?
+
+ if ($CMD) {
+ print "$AuthType: I found $NumberOfMessages messages on
$Param{Login}/$Param{Host}. "
+@@ -147,7 +147,7 @@
+ }
+ }
+ else {
+- for my $Messageno (@Messages) {
++ for my $Messageno ( @{$Messages} ) {
Ditto.
+
+ # check if reconnect is needed
+ $FetchCounter++;
+@@ -243,8 +243,7 @@
+ Message => "$AuthType: Fetched $FetchCounter email(s) from
$Param{Login}/$Param{Host}.",
+ );
+ }
+- $IMAPObject->expunge_mailbox($IMAPFolder);
I think that's part of the bug fix, since the retrieved messages are
deleted through:
# mark email for deletion if it got processed
$IMAPObject->delete_message($Messageno);
And I guess calling expunge_mailbox() was a way to make sure all
messages went away? Is calling delete_message() enough?
+- $IMAPObject->close();
++ $IMAPObject->close;
I think it's a no-op, but a confirmation would be good.
+ if ($CMD) {
+ print "$AuthType: Connection to $Param{Host} closed.\n\n";
+ }
Mraw,
KiBi.
signature.asc
Description: Digital signature

