Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d8634e52

Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt

  • ID d8634e5224b765e72208d618e263eb8df5d5fce3
  • Vorgänger 1d513302
  • Nachfolger 9ef11f3c

IMAPClient: Funktion zum Aufräumen von importierten Emails hinzugefügt

Unterschiede anzeigen:

SL/IMAPClient.pm
return;
}
sub clean_up_imported_emails_from_folder {
my ($self, $folder_path) = @_;
$folder_path ||= $self->{base_folder};
my $folder_string = $self->get_folder_string_from_path($folder_path);
$self->_clean_up_imported_emails_from_folder_strings([$folder_string]);
}
sub _clean_up_imported_emails_from_folder_strings {
my ($self, $folder_strings) = @_;
my $dbh = SL::DB->client->dbh;
foreach my $folder_string (@$folder_strings) {
$self->{imap_client}->select($folder_string)
or die "Could not select IMAP folder '$folder_string': $@\n";
my $folder_uidvalidity = $self->{imap_client}->uidvalidity($folder_string)
or die "Could not get UIDVALIDITY for folder '$folder_string': $@\n";
my $msg_uids = $self->{imap_client}->messages
or die "Could not get messages via IMAP: $@\n";
my $query = <<SQL;
SELECT uid
FROM email_imports ei
LEFT JOIN email_journal ej
ON ej.email_import_id = ei.id
WHERE ei.host_name = ?
AND ei.user_name = ?
AND ej.folder = ?
AND ej.folder_uidvalidity = ?
SQL
my $existing_uids = $dbh->selectall_hashref($query, 'uid', undef,
$self->{hostname}, $self->{username}, $folder_string, $folder_uidvalidity);
my @imported_msg_uids = grep { $existing_uids->{$_} } @$msg_uids;
next unless scalar @imported_msg_uids;
$self->{imap_client}->delete_message(\@imported_msg_uids)
or die "Could not delete messages via IMAP: $@\n";
}
}
sub clean_up_record_subfolders {
my ($self, $active_records) = @_;

Auch abrufbar als: Unified diff