1package Net::IMAP::Server::Command::Unsubscribe; 2 3use warnings; 4use strict; 5 6use base qw/Net::IMAP::Server::Command/; 7 8sub validate { 9 my $self = shift; 10 11 return $self->bad_command("Log in first") if $self->connection->is_unauth; 12 13 my @options = $self->parsed_options; 14 return $self->bad_command("Not enough options") if @options < 1; 15 return $self->bad_command("Too many options") if @options > 1; 16 17 my $mailbox = $self->connection->model->lookup( @options ); 18 return $self->no_command("Mailbox does not exist") unless $mailbox; 19 20 return 1; 21} 22 23sub run { 24 my $self = shift; 25 26 my $mailbox = $self->connection->model->lookup( $self->parsed_options ); 27 $mailbox->subscribed(0); 28 29 $self->ok_completed(); 30} 31 321; 33