= Google Mail Stream Component
:doctitle: Google Mail Stream
:shortname: google-mail-stream
:artifactid: camel-google-mail
:description: Poll for incoming messages in Google Mail.
:since: 2.22
:supportlevel: Stable
:component-header: Only consumer is supported
//Manually maintained attributes
:group: Google
:camel-spring-boot-name: google-mail

*Since Camel {since}*

*{component-header}*

The Google Mail component provides access
to http://gmail.com/[Gmail] via
the https://developers.google.com/gmail/api/v1/reference/[Google Mail
Web APIs]. This component provides the streaming feature for Messages.

Google Mail uses
the https://developers.google.com/accounts/docs/OAuth2[OAuth 2.0
protocol] for authenticating a Google account and authorizing access to
user data. Before you can use this component, you will need
to https://developers.google.com/gmail/api/auth/web-server[create an
account and generate OAuth credentials]. Credentials comprise of a
clientId, clientSecret, and a refreshToken. A handy resource for
generating a long-lived refreshToken is
the https://developers.google.com/oauthplayground[OAuth playground].

In the case of a https://developers.google.com/identity/protocols/oauth2#serviceaccount[service account],
credentials comprise of a JSON-file (keyResource). You can also use
https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority[delegation domain-wide authority]
(delegate) and one, several, or all possible
https://developers.google.com/gmail/api/auth/scopes[GMail API Auth Scopes] (scopes).

Maven users will need to add the following dependency to their pom.xml
for this component:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-google-mail</artifactId>
    <!-- use the same version as your Camel core version -->
    <version>x.y.z</version>
</dependency>
----

== URI Format

The GoogleMail Component uses the following URI format:

----
google-mail-stream://index?[options]
----


// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END
// component headers: START
include::partial$component-endpoint-headers.adoc[]
// component headers: END


include::spring-boot:partial$starter.adoc[]
