Package com.sun.mail.gimap

## Class GmailStore

- java.lang.Object
- - javax.mail.Service
  - - javax.mail.Store
    - - com.sun.mail.imap.IMAPStore
      - - com.sun.mail.gimap.GmailStore

All Implemented Interfaces:
  `ResponseHandler`, `java.lang.AutoCloseable`, `QuotaAwareStore`

Direct Known Subclasses:
  `GmailSSLStore`

    public class GmailStore
    extends IMAPStore

A Gmail Store. Defaults to imap.gmail.com with SSL. Uses a GmailProtocol and Gmail Folder to support Gmail extensions.

Since:
  JavaMail 1.4.6
Author:
  Bill Shannon

### Field Summary

### Fields inherited from class com.sun.mail.imap.IMAPStore

`authorizationID, defaultPort, host, ID_ADDRESS, ID_ARGUMENTS, ID_COMMAND, ID_DATE, ID_ENVIRONMENT, ID_NAME, ID_OS, ID_OS_VERSION, ID_SUPPORT_URL, ID_VENDOR, ID_VERSION, isSSL, logger, name, password, proxyAuthUser, RESPONSE, saslRealm, user`

### Fields inherited from class javax.mail.Service

`debug, session, url`

### Constructor Summary

Constructors
`` `GmailStore​(Session session, URLName url)` Constructor that takes a Session object and a URLName that represents a specific IMAP server.
`protected` `GmailStore​(Session session, URLName url, java.lang.String name, boolean isSSL)` Constructor used by GmailSSLStore subclass.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected IMAPFolder` `newIMAPFolder​(ListInfo li)` Create an IMAPFolder object.
`protected IMAPFolder` `newIMAPFolder​(java.lang.String fullName, char separator, java.lang.Boolean isNamespace)` Create an IMAPFolder object.
`protected IMAPProtocol` `newIMAPProtocol​(java.lang.String host, int port)` Create an IMAPProtocol object connected to the host and port.
`protected boolean` `protocolConnect​(java.lang.String host, int pport, java.lang.String user, java.lang.String password)` Implementation of protocolConnect().

### Methods inherited from class com.sun.mail.imap.IMAPStore

`close, finalize, getDefaultFolder, getFolder, getFolder, getPersonalNamespaces, getProxyAuthUser, getQuota, getSharedNamespaces, getUserNamespaces, handleResponse, hasCapability, id, idle, isConnected, isSSL, newIMAPFolder, preLogin, setPassword, setProxyAuthUser, setQuota, setUsername`

### Methods inherited from class javax.mail.Store

`addFolderListener, addStoreListener, notifyFolderListeners, notifyFolderRenamedListeners, notifyStoreListeners, removeFolderListener, removeStoreListener`

### Methods inherited from class javax.mail.Service

`addConnectionListener, connect, connect, connect, connect, getURLName, notifyConnectionListeners, queueEvent, removeConnectionListener, setConnected, setURLName, toString`

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### GmailStore

    public GmailStore​(Session session,
                      URLName url)

Constructor that takes a Session object and a URLName that represents a specific IMAP server.

Parameters:
  `session` - the Session
  `url` - the URLName of this store

#### GmailStore

    protected GmailStore​(Session session,
                         URLName url,
                         java.lang.String name,
                         boolean isSSL)

Constructor used by GmailSSLStore subclass.

Parameters:
  `session` - the Session
  `url` - the URLName of this store
  `name` - the protocol name
  `isSSL` - use SSL to connect?

### Method Detail

#### protocolConnect

    protected boolean protocolConnect​(java.lang.String host,
                                      int pport,
                                      java.lang.String user,
                                      java.lang.String password)
                               throws MessagingException

Description copied from class: `IMAPStore`
Implementation of protocolConnect(). Will create a connection to the server and authenticate the user using the mechanisms specified by various properties.

The `host`, `user`, and `password` parameters must all be non-null. If the authentication mechanism being used does not require a password, an empty string or other suitable dummy password should be used.

Overrides:
  `protocolConnect` in class `IMAPStore`
Parameters:
  `host` - the name of the host to connect to
  `pport` - the port to use (-1 means use default port)
  `user` - the name of the user to login as
  `password` - the user's password
Returns:
  true if connection successful, false if authentication failed
Throws:
  `AuthenticationFailedException` - for authentication failures
  `MessagingException` - for non-authentication failures

#### newIMAPProtocol

    protected IMAPProtocol newIMAPProtocol​(java.lang.String host,
                                           int port)
                                    throws java.io.IOException,
                                           ProtocolException

Description copied from class: `IMAPStore`
Create an IMAPProtocol object connected to the host and port. Subclasses of IMAPStore may override this method to return a subclass of IMAPProtocol that supports product-specific extensions.

Overrides:
  `newIMAPProtocol` in class `IMAPStore`
Parameters:
  `host` - the host name
  `port` - the port number
Returns:
  the new IMAPProtocol object
Throws:
  `java.io.IOException` - for I/O errors
  `ProtocolException` - for protocol errors

#### newIMAPFolder

    protected IMAPFolder newIMAPFolder​(java.lang.String fullName,
                                       char separator,
                                       java.lang.Boolean isNamespace)

Create an IMAPFolder object.

Overrides:
  `newIMAPFolder` in class `IMAPStore`
Parameters:
  `fullName` - the full name of the folder
  `separator` - the separator character for the folder hierarchy
  `isNamespace` - does this name represent a namespace?
Returns:
  the new IMAPFolder object

#### newIMAPFolder

    protected IMAPFolder newIMAPFolder​(ListInfo li)

Create an IMAPFolder object.

Overrides:
  `newIMAPFolder` in class `IMAPStore`
Parameters:
  `li` - the ListInfo for the folder
Returns:
  the new IMAPFolder object