github.com/jordwest/imap-server@v0.0.0-20200627020849-1cf758ba359f/conn/command_select.go (about)

     1  package conn
     2  
     3  import "fmt"
     4  
     5  func cmdSelect(args commandArgs, c *Conn) {
     6  	if !c.assertAuthenticated(args.ID()) {
     7  		return
     8  	}
     9  
    10  	var err error
    11  	c.SelectedMailbox, err = c.User.MailboxByName(args.Arg(0))
    12  	if err != nil {
    13  		fmt.Fprintf(c, "%s NO %s\r\n", args.ID(), err)
    14  		return
    15  	}
    16  	c.SetState(StateSelected)
    17  	c.SetReadWrite()
    18  
    19  	writeMailboxInfo(c, c.SelectedMailbox)
    20  	c.writeResponse(args.ID(), "OK [READ-WRITE] SELECT completed")
    21  }