| At line 1 changed 2 lines | 
| !1. Google Mail OAuth 2.0\\ | 
| __Google Mail__ through __SMTP__/__IMAP__ requires __OAuth 2.0__ ([OAuth Wikipedia Link|https://en.wikipedia.org/wiki/OAuth]) for authentication. (More information : [Google IMAP-SMTP Link|https://developers.google.com/gmail/imap/imap-smtp]).\\ | 
| !Google Mail Integration\\ | 
| At line 4 changed 2 lines | 
| __!!! Proxy Configuration:__ If your server accesses the internet through a proxy, make sure to whitelist the following domains for Google Mail Authentication:\\	 | 
| • oauth2.googleapis.com\\ | 
| ---- | 
| !1. Google App Passwords\\ | 
| At line 6 added 24 lines | 
| __⚠️ Constraints__: __It is only supported for accounts with 2-Step Verification enabled.__\\ | 
| \\ | 
| Google App Passwords are intended to provide limited access to less secure apps or legacy systems that cannot use OAuth 2.0 — primarily for Google services that use basic username/password authentication.\\ | 
| __⚠️ Note__: Google strongly recommends using OAuth 2.0 for authentication instead of App Passwords. Some access types (e.g., less secure apps) are already blocked unless explicitly allowed.\\ | 
| \\ | 
| Service can use __App Passwords__:\\ | 
| __SMTP__: smtp.gmail.com\\ | 
| __IMAP__: imap.gmail.com\\ | 
| __POP3__: pop.gmail.com\\ | 
| \\ | 
| Create an app password: [Google App Password Link|https://myaccount.google.com/apppasswords]\\ | 
| \\ | 
| {{{ | 
| Username: your_email@gmail.com | 
| Password: [your generated app password] | 
| }}} | 
| \\ | 
| ----- | 
| !2. Google Mail OAuth 2.0\\ | 
| __Google Mail__ through __SMTP__/__IMAP__ requires __OAuth 2.0__ ([OAuth Wikipedia Link|https://en.wikipedia.org/wiki/OAuth]) for authentication. This is part of Google’s effort to enhance security by deprecating less secure app access (basic authentication using just a username and password). OAuth 2.0 offers a more secure, token-based system that supports modern features like multi-factor authentication, granular permission scopes, and token expiration for better protection against credential theft. For technical implementation details, see Google’s documentation here : [Google IMAP-SMTP Link|https://developers.google.com/gmail/imap/imap-smtp].\\ | 
| ---- | 
| __⚠️ Proxy Configuration:__ If your server accesses the internet through a proxy, make sure to whitelist the following domains for Google Mail Authentication: __oauth2.googleapis.com__\\ | 
| ---- | 
| \\ | 
| At line 8 changed one line | 
| __!!!Note:__ Ensure sure the __GMAIL API__ is enabled at __Enabled APIs & services__. [Google API Library Link|https://console.cloud.google.com/apis/library]\\ | 
| __⚠️ Important:__ Ensure sure the __GMAIL API__ is enabled at __Enabled APIs & services__. [Google API Library Link|https://console.cloud.google.com/apis/library]\\ | 
| At line 18 changed one line | 
| Select the application type: __Web application__. Provide a unique name. Then, configure the __Authorized redirect URI__—this is where Google will redirect you after authorization. The Redirect URL must end with __?command=register_google_mail_api__.\\ | 
| • Select the application type: __Web application__.\\ | 
| • Provide a unique name to identify your OAuth client (e.g., CrushFTP Integration).\\ | 
|  Then configure the following:\\ | 
| • __Authorized JavaScript origins__: Add the base URL of your CrushFTP server (e.g., https://your-domain.com).\\ | 
| • __Authorized redirect URIs__: This is the URL Google will redirect to after successful authorization. The Redirect URL must end with: __?command=register_google_mail_api__\\  | 
| At line 21 changed 3 lines | 
 | 
|     http://127.0.0.1:9090/?command=register_google_mail_api | 
| }}}\\ | 
| http://127.0.0.1:9090/?command=register_google_mail_api | 
| At line 25 changed 4 lines | 
| {{{ | 
|      | 
|     https://your.crushftp.domain.com/?command=register_google_mail_api | 
|      | 
| https://your.crushftp.domain.com/?command=register_google_mail_api | 
| At line 52 added one line | 
| \\ | 
| At line 61 added 4 lines | 
| __⚠️ Note:__ You can configure the __OAuth consent screen__ by clicking the link above the __Authorized JavaScript origins__ section:\\ | 
| "The domains you enter in the fields below will be automatically added to your __OAuth consent screen__ as __authorized domains__."\\ | 
| Click the link to open the __OAuth consent screen__ settings, complete the configuration, and authorize your __CrushFTP domain.__\\ | 
| __Important__: After configuration, don’t forget to click __Publish App__ at __Audience__ page to make it active. Without publishing, the app will remain in __Testing__ mode, which restricts access to authorized test users only.\\ | 
| At line 39 changed one line | 
| !2. SMTP Settings\\ | 
| !3. SMTP Settings\\ | 
| At line 50 changed 2 lines | 
| __SMTP Server Username, Password__: If the SMTP server address ends with __gmail.com__, the corresponding __Get Refresh Token__ button will appear. Click that button to proceed.\\ | 
| __!!! Note__: To obtain the __Refresh Token__, the CrushFTP WebInterface’s host and port must match the __Redirect URL__ specified in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. In our example, it was: http://127.0.0.1:9090 or https://your.crushftp.domain.com/\\ | 
| __SMTP Server Username, Password__:\\ | 
| ---- | 
| __a.)__ App passwords: [1. Google App Passwords Link|https://www.crushftp.com/crush11wiki/Wiki.jsp?page=SMTP%20Google%20Mail%20Integration#section-SMTP+Google+Mail+Integration-1.GoogleAppPasswords]\\ | 
| {{{ | 
| SMTP Server Username: your_email@gmail.com | 
| SMTP Server Password: [your generated app password] | 
| }}}\\ | 
| ---- | 
| __b.)__ OAtuth 2.0: [2. Google Mail OAuth 2.0 Link|https://www.crushftp.com/crush11wiki/Wiki.jsp?page=SMTP%20Google%20Mail%20Integration#section-SMTP+Google+Mail+Integration-2.GoogleMailOAuth2.0] If the SMTP server address ends with __gmail.com__, the corresponding __Get Refresh Token__ button will appear. Click that button to proceed.\\ | 
| __⚠️ Important__: To obtain the __Refresh Token__, the CrushFTP WebInterface’s host and port must match the __Redirect URL__ specified in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. In our example, it was: http://127.0.0.1:9090 or https://your.crushftp.domain.com/\\ | 
| At line 53 changed one line | 
| Enter the __Client ID__ , __Client Secret__. Proceed with the authentication and authorization process. __!!! Note__: Be sure to sign in with the __Google Account__ that has the __necessary permissions__, as configured in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. This will automatically configure the __SMTP Server Username__ and __SMTP Server Password__.\\ | 
| Enter the __Client ID__ , __Client Secret__. Proceed with the authentication and authorization process.\\ | 
| __⚠️ Important__: Be sure to sign in with the __Google Account__ that has the __necessary permissions__, as configured in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. This will automatically configure the __SMTP Server Username__ and __SMTP Server Password__.\\ | 
| At line 55 changed one line | 
| [attachments|oauth_form.png]\\ | 
| [SMTP Google Mail Integration/oauth_form.png]\\ | 
| At line 65 changed one line | 
| __From email address__: You must also specify the __From__ email address. __!!! Imnportant__ The __From__ address must exactly match __the signed-in Google user’s email address__ (i.e., the account used to obtain the refresh token). Otherwise, SMTP authentication will fail.\\  | 
| __From email address__: You must also specify the __From__ email address.\\ | 
|  __⚠️ Imnportant__ The __From__ address must exactly match __the signed-in Google user’s email address__ (i.e., the account used to obtain the refresh token) or the account associated with the App Password. Otherwise, SMTP authentication will fail.\\  | 
| At line 106 added 52 lines | 
| ---- | 
| !4. PopImapTask\\ | 
| \\ | 
| Select the __IMAPS__ protocol.\\ | 
| See the description: [Google IMAP-SMTP Link|https://developers.google.com/gmail/imap/imap-smtp]\\ | 
| \\ | 
| [SMTP Google Mail Integration/pop_imap_task.png]\\ | 
| \\ | 
| __Host:__\\ | 
| {{{ | 
|     imap.gmail.com | 
| }}} | 
| __Port__: __993__\\ | 
| If the __Host__ contains __gmail.com__, the corresponding __Get Refresh Token__ button will appear.\\ | 
| \\ | 
| __Mail Username, Password__:\\ | 
| ---- | 
| __a.)__ App passwords: ⚠️ Constraints: It is only supported for accounts with 2-Step Verification enabled. | 
|  [1. Google App Passwords Link|https://www.crushftp.com/crush11wiki/Wiki.jsp?page=SMTP%20Google%20Mail%20Integration#section-SMTP+Google+Mail+Integration-1.GoogleAppPasswords]\\ | 
| {{{ | 
| Mail Username: your_email@gmail.com | 
| Mail Password: [your generated app password] | 
| }}}\\ | 
| ---- | 
|  __b.)__ OAtuth 2.0: Configure the [2. Google Mail OAuth 2.0 Link|https://www.crushftp.com/crush11wiki/Wiki.jsp?page=SMTP%20Google%20Mail%20Integration#section-SMTP+Google+Mail+Integration-2.GoogleMailOAuth2.0]\\ | 
| __⚠️ Important__: To obtain the Refresh Token, the CrushFTP WebInterface’s host and port must match the __Redirect URL__ specified in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. In our example, it was: http://127.0.0.1:9090 or https://your.crushftp.domain.com/\\ | 
| \\ | 
| Enter the __Client ID__ , __Client Secret__. Proceed with the authentication and authorization process.\\ | 
| __⚠️ Important__: Be sure to sign in with the __Google Account__ that has the __necessary permissions__, as configured in the __Google APIs & Services__-> __Credentials__ -> __OAuth 2.0 Client IDs__. This will automatically configure the PopImapTask's __Mail Username__ and __Mail Password__.\\ | 
| \\ | 
| [SMTP Google Mail Integration/oauth_form.png]\\ | 
| \\ | 
| If the domain is unverified, a warning message may appear. Click __Advanced__ and choose to proceed:\\  | 
| \\ | 
| [SMTP Google Mail Integration/not_verified_domain.png]\\ | 
| \\ | 
| Click on the __Allow__ button:\\ | 
| \\ | 
| [SMTP Google Mail Integration/allow_form.png]\\ | 
| \\ | 
| __⚠️ Important:__ Since the email address is required after obtaining the refresh token, the Mail Username field must be adjusted.\\ | 
| Enter your email address followed by a tilde (~) at the beginning of the Mail Username field.\\ | 
| \\ | 
| {{{ | 
| Mail Username : <<your email address>>~<<what was before>>  | 
| }}} | 
| \\ | 
| ---- | 
| For more information, see the general POP/IMAP Task description: [POP/IMAP Task – CrushFTP Documentation Link| https://www.crushftp.com/crush11wiki/Wiki.jsp?page=CrushTask#section-CrushTask-POP3IMAP]\\ | 
| ---- | 
| \\ | 
 |