Plugin Type: Integration
This Roundcube plugin adds the option to save attachments from incoming messages to Google Drive or attach files from Google Drive to outgoing messages.
Key Features
- Attach files from Google Drive to composed messages.
- Save attachments from incoming messages to Google Drive.
- Allows you to save local disk space!
Screenshots
Pricing
$45
Details
Latest upgrade | Jul 15, 2024 |
Plugin version | 1.1.8 |
Framework version | 2.0.2 |
View installation instructions
Installation instructions
ROUNDCUBE PLUS GOOGLE DRIVE PLUGIN
==================================
This plugin provides the following functionality:
1. It adds a Google Drive button to the "Options and attachments" area of the Roundcube compose page and allows selecting files from a
Google Drive directory. The selected files can be either inserted as links to the message body or downloaded to the server and attached to
the message as normal file attachments.
2. It adds Google Drive menu items to the attachment drop-down menus on the Roundcube message view page. The menu items allow saving
(uploading) the attachments to a Google Drive directory.
3. It adds Google Drive links to the attachments displayed in the message body (under "Show" and "Download".) The links allow saving the
attachments to a Google Drive directory.
REQUIREMENTS
------------
- Roundcube: 1.5, 1.6
- PHP: 7.4 or higher
- Config: Google Client ID
INSTALLATION
------------
1. Copy the directories xgoogle_drive and xframework included in this package to the 'plugins' directory of your Roundcube installation.
2. Rename the file <roundcube>/plugins/xgoogle_drive/config.inc.php.dist to config.inc.php.
3. Edit the file <roundcube>/plugins/xgoogle_drive/config.inc.php, specify your client ID and configure the plugin according to your needs.
See the section below for information on how to obtain your client ID.
4. Make sure that the temp directory specified in the Roundcube config file is writable, otherwise the plugin will not be able to save email
attachments.
5. Edit the file <roundcube>/config/config.inc.php, add xgoogle_drive to the plugins array and specify your license key.
For more information on installing Roundcube Plus plugins see: https://roundcubeplus.com/helpdesk/knowledgebase.php?article=29
COMPATIBILITY
-------------
This plugin has been created for the standard version of Roundcube as provided on the Roundcube website:
https://roundcube.net. It might not work properly with customized versions of Roundcube including the version
provided as part of the Kolab system. Please note that we cannot provide any technical support for the plugin
deployed on a non-standard version of Roundcube.
OBTAINING GOOGLE CLIENT ID
--------------------------
In order to successfully connect to Google Drive, this plugin needs a properly configured Google client ID. The process of creating a
working client ID in the Google Cloud Platform is complicated and requires taking a large number of steps. We will outline those steps for
you below but in order to fully understand the concepts and the options you'll be configuring you may need to read the help provided on the
pages you'll be navigating.
1. Log in to the Google Cloud Platform.
Use your Google account to log in to the Cloud Platform at https://console.cloud.google.com/projectselector2/apis/dashboard
2. Create a new project.
a) Click the "Select a project" button on the top bar.
b) Click the "NEW PROJECT" button.
c) Type a name for your project and click "CREATE". (The name of the project is not important; it will only identify this project in the
list of projects that you might have in the Cloud Platform.)
3. Set up OAuth consent screen.
IMPORTANT: Depending on how you configure the app in this step, Google might or might not want to manually verify your app when you
publish it. For example, if you specify your company's name or upload a logo, your app will get flagged for manual verification. This
process can be lengthy (several days to a week) and might require providing additional information via email.
If you want to start using your app right away, fill out only the required fields and avoid the settings that will trigger the
verification process. You can always launch your app with the minimal settings and while it's up and running add your company's info and
wait for the verification.
You can find out what will trigger the verification process here: https://support.google.com/cloud/answer/10311615#verification-status
a) Click "OAuth consent screen" on the left sidebar. Click "External" when asked about "User Type" and click "CREATE".
b) Step 1: OAuth consent screen. Fill the required fields and make sure to click "+ ADD DOMAIN" and specify the domain where your
Roundcube is installed.
c) Step 2: Scopes. No need to change anything here.
d) Step 3: Test users. When you first create your app with User Type: External, its publishing status will be set to "Testing". While in
the testing mode, only the users specified here will be able to access the app. Add your Google email address here. After you publish
the app and its status changes to "In Production," these test users will not be necessary any more.
e) Step 4: Summary. You're done. You can go back to the dashboard now.
4. Create credentials.
a) Click "Credentials" on the left sidebar.
b) Click "+ CREATE CREDENTIALS" on the top bar, click "OAuth client ID".
c) When asked about Application type, select "Web application".
d) Type some name for your client ID. In the section "Authorized JavaScript origins" click "+ ADD URI" and specify the URL where your
Roundcube is installed. Note that in order to publish the app (step 5) your Roundcube needs to run over an encrypted connection (https).
e) You will be shown a popup with a client ID and secret code. Copy the client ID and paste it in the xgoogle_drive config file in the
variable "google_drive_client_id". The client ID will be in this format:
xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
5. Enable Google Drive API
a) Click "Dashboard" on the left sidebar, then click "+ ENABLE APIS AND SERVICES" on the top bar.
b) Find a tile named "Google Drive API", click it and then click "Enable".
6. Publish App.
Your application should work in a testing mode now and you should be able to log in to your Google Drive from within Roundcube. To test
it, navigate to your Roundcube's compose page and click the "Google Drive" button that appears on the right sidebar, in the "Options and
attachments" section. A popup window should appear asking you to log in to Google. Log in using the account that you specified in the
"Test users" section in the previous step. You'll be warned that the app runs in a test mode. After going through a couple more initial
agreement/configuration pages, you should see the contents of your Google Drive.
If your app is working properly, you can publish it and make it available to all your Roundcube users. In Google Cloud Platform click
"OAuth consent screen" and then click "PUBLISH APP". If your app doesn't need verification, it'll be up and running right away.
Note that Google enforces a limit on how many people can use your app per day. If the number of your users exceeds your initial limit,
you may need to send Google a request to raise your quota. The link to submit the request is on the "OAuth consent screen" page.
LICENSE
-------
This plugin is distributed under a commercial license. In order to use the plugin, you must purchase the license from Tecorama LLC. See the
LICENSE file for details.
COPYRIGHT
---------
Copyright (c) 2024, Tecorama LLC
Change Log / Google Drive (xgoogle_drive)
1.1.8 (2023-02-15)
==================
- made the plugin fully compatible with PHP 8.2
1.1.7 (2022-02-28)
==================
- small code changes to make the plugin compatible with upgraded xframework
1.1.6 (2022-01-31)
==================
- fixed PHP warnings in the Roundcube 1.5.2 about dialog
1.1.5 (2022-01-11)
==================
- upgraded the PHP code syntax
- changed the minimum required Roundcube version to 1.4
1.1.4 (2021-09-08)
==================
- upgraded the backend functionality
1.1.3 (2021-07-21)
==================
- added verification of the config settings
- added detailed information on how to obtain the Google client ID to the README file
1.1.2 (2019-11-07)
==================
- fixed attachment download buttons that didn't appear under image attachments
- upgraded the plugin to work with Roundcube 1.4 RC2
1.1.1 (2019-05-22)
==================
- upgraded the plugin to work with Roundcube 1.4 RC1
1.1 (2018-06-04)
================
- upgraded the plugin to be compatible with Elastic beta
1.0.6 (2017-11-09)
==================
- fixed interface with xcalendar that allows attaching files to events
1.0.5 (2017-05-10)
==================
- fixed problems with the plugin not loading properly
1.0.4 (2017-01-04)
==================
- added new protected properties to make the plugin compatible with upgraded xframework
1.0.3 (2016-12-09)
==================
- made plugin compatible with xactivate
- updated license agreement
1.0.2 (2016-11-30)
==================
- made plugin compatible with the updated framework
1.0.1 (2016-11-16)
==================
- removed references to legacy functions
1.0 (2016-06-01)
================
- initial release
Change Log / Plugin: Framework (xframework)
2.0.2 (2024-07-15)
==================
- changed the minimum required PHP version to 7.4
- discontinued Internet Explorer support
- added password show/hide toggle functionality
- added carddav plugin settings icon
- updated spinner animations
- fixed ajax incompatibilities with http 1.1
- fixed potential problems with internal url functions
2.0.1 (2024-04-02)
==================
- fixed the UI text color values
- updated the geo database
- optimized some internal functions
2.0 (2024-01-31)
================
- re-designed the icon sub-system for better performance and usability
- updated the geo database
- updated the common UI
1.9.9 (2023-09-16)
==================
- fixed a mismatched composer package version that required php 8
- updated the ajax error return method
1.9.8 (2023-09-13)
==================
- changed the minimum PHP version to 7.2
- upgraded the composer libraries
- eliminated GeoIP PHP deprecation warnings on PHP 8
- updated the GeoIP database
1.9.7 (2023-05-15)
==================
- modified the icon font to fix the chevron and checkbox icons
- fixed the menu icons on smaller screens
1.9.6 (2023-05-09)
==================
- added the woff2 version of the icon font
- changed the icon for the "Empty folder" action
- updated the translations to include the AI Compose plugin
- added Norwegian translation
- centralized the controller api call interception
1.9.5 (2023-04-24)
==================
- updated the add_to_apps_menu config functionality to allow usage without $image
- updated settings functions to improve validation
1.9.4 (2023-04-18)
==================
- changed the outlined icon set
- added support for the xai plugin
- updated the common dialog code
1.9.3 (2023-03-14)
==================
- improved settings elements UI
1.9.2 (2023-02-27)
==================
- fixed the skin inheritance recognition
- fixed the download errors for cloud plugins
1.9.1 (2023-02-17)
==================
- changed the IPTools library version to fix PHP compatibility issues
1.9 (2023-02-15)
================
- upgraded svg_sanitizer to eliminate a security vulnerability
- upgraded geoip2 and the dependencies
- replaced the unmaintained tgalopin/html-sanitizer package with inbuilt function
- made the plugin fully compatible with PHP 8.2
- removed code providing RC 1.3 compatibility
- added the S1lentium/IPTools library
- added Danish translation
- added Dutch translation
- added Finnish translation
- added Indonesian translation
- added Lithuanian translation
- added Portuguese translation
- added Romanian translation
- added Slovenian translation
- added Spanish translation
- added Turkish translation
1.8.9 (2022-12-16)
==================
- fixed potential errors if the 'allowed_skins' config value is set to an incorrect value
1.8.8 (2022-11-01)
==================
- fixed svg support in the image upload function
- fixed the view loader function
- updated the xwebdav icon styles
1.8.7 (2022-10-12)
==================
- fixed problems with xsidebar config options being the wrong type
1.8.6 (2022-06-20)
==================
- standardized the minimum required PHP version across all plugins to 7.1
- added the HtmlSanitizer library
- replaced some icons to make the UI more uniform
- added icons for the carddav plugin
- fixed list icon positioning on the elastic-based skins
1.8.5 (2022-05-30)
==================
- restructured html insertions to prevent compatibility issues with third party plugins
- added settings icon for the Thunderbird Labels plugin
1.8.4 (2022-04-06)
==================
- fixed some potential html encoding problems
1.8.3 (2022-02-28)
==================
- added xwebdav icons and translations
- fixed select and save cloud button rendering
1.8.2 (2022-02-15)
==================
- icon modifications
- cloud class and css modifications
1.8.1 (2022-01-31)
==================
- fixed a PHP warning generated by the sidebar on RC 1.5.2
1.8 (2022-01-11)
================
- disabled the apps menu on cPanel due to popup positioning issues
- added the Italian translation
- removed promo support
- fixed user language loading
- fixed flatpickr styling
- fixed flatpickr language settings
- fixed csrf warning
- fixed checkbox display in dark mode
- changed the minimum required Roundcube version to 1.4
- upgraded the PHP code syntax
- eliminated several PHP warnings
1.7.9 (2021-09-08)
==================
- updated the cloud functions
1.7.8 (2021-09-01)
==================
- fixed the apps menu display when no apps present
- code upgrades to support the upgraded xskin
- modified settings/tools icons
- added modal dialog UI code
- added icon for xwebdav
- fixed outline icons in the icon font
- fixed icon size and positioning on buttons
- fixed button spacing
- fixed managesieve plugin icons
- fixed insert user compose icon
- fixed button icon position and size
- fixed the cloud attachment progress untranslated label
- fixed interface popup on larry-based mobile
- updated the cloud attach process to include the load link and file size
- updated the cloud attach process to be compatible with RC 1.5
1.7.7 (2021-08-05)
==================
- enabled support for svg image upload
1.7.6 (2021-07-21)
==================
- upgraded the icons in the icon font
- changed the apps menu to display apps in rows instead of columns
- added Google Drive and Dropbox icons to compose buttons
- updated the Polish translation
1.7.5 (2021-07-15)
==================
- updated the translations
1.7.4 (2021-06-02)
==================
- extended the functionality of hide_about_link to apply to all skins
1.7.3 (2021-05-25)
==================
- fixed and updated the icon font
- added support for dark mode
- removed gif loader images
- improved the database update functions
- internal input token function upgrades
- added support for the skins_allowed config option
- upgraded javascript libraries
- enabled sending system emails from the user identity email instead of the login email
- enhanced the function that returns the current url
- added icons for mailvelope
1.7.2 (2021-02-08)
==================
- fixed the managesieve plugin settings icons
1.7.1 (2021-01-21)
==================
- added icons for x2fa
1.7 (2021-01-11)
================
- added settings icons for x2fa and twofactor_gauthenticator
1.6.9 (2020-11-11)
==================
- updated the German translation
1.6.8 (2020-10-19)
==================
- reduced the size of the roundcube_plus_icon fonts
- added xcalendar mobile new functionality icons
1.6.7 (2020-09-14)
==================
- replaced the datetime picker component with flatpickr
1.6.6 (2020-06-23)
==================
- fixed potential ajax request errors due to ob_clean in sendResponse and Cloud attachment download
1.6.5 (2020-04-29)
==================
- fixed the issue with switching the language to Spanish (Latin America); saving the invalid es_419 as es_ES
1.6.4 (2020-03-12)
==================
- fixed missing scrollbars in full-screen message view (caused by the imported Google Drive js)
- updated icon font
- added function Format::stringToTimeWithFormat() that properly handles decoding d/m/y formats
1.6.3 (2020-03-02)
==================
- fixed the default sidebar visibility state on Elastic-based skins
1.6.2 (2020-02-21)
==================
- fixed an error in getUrl during CalDAV requests
1.6.1 (2020-02-14)
==================
- fixed problems with popover scrollbars on Elastic-based skins
- removed a potential problem with url trailing slashes
1.6 (2020-02-10)
================
- cleaned up and improved javascript and PHP code
- added an config overwrite for the url where Roundcube currently runs (overwrite_roundcube_url)
- fixed the problem select menus getting hidden when using their scroll bars on Elastic-based skins
1.5.9 (2020-01-08)
==================
- added cPanel icon for the return_to_webmail cPanel plugin
1.5.8 (2020-01-02)
==================
- improved xsidebar UI
- added optional attachments to sendHtmlEmail()
- fixed 'hack attempt' log warning when reordering sidebar
1.5.7 (2019-12-17)
==================
- fixed incorrect skin detection on logout (RC 1.4)
- fixed database quoting
- fixed some utils functions
1.5.6 (2019-12-04)
==================
- improved support for SQLite
- improved api functions
1.5.5 (2019-11-25)
==================
- fixed issues with the disable_apps_menu config option
- improved api functions
1.5.4 (2019-11-07)
==================
- fixed Google Drive image attachment save buttons
- added settings links to sidebar titles
- added larry to the quick skin change select
- fixed formatting of plugin links in app menu
- fixed apps menu select UI
- fixed sidebar show/hide button icon
- fixed apps menu text UI
- upgraded the plugin to be compatible with Roundcube 1.4 RC2
1.5.3 (2019-10-10)
==================
- fixed popup menus that randomly didn't execute angular actions (e.g. calendar event preview)
- added new debugging functions
1.5.2 (2019-09-04)
==================
- optimized and improved the image upload function
1.5.1 (2019-09-02)
==================
- added customer config support for multi-client systems (config_ini_file and config_ini_allowed_settings)
- improved api security
- removed phpunit vendor package
- updated mobiledetect
- updated maxmind-db reader
- added a function for resaving and resizing uploaded images
1.5 (2019-07-17)
================
- fixed problems with remote analytics loading
1.4.9 (2019-07-11)
==================
- translated to French
1.4.8 (2019-06-11)
==================
- added crc function
1.4.7 (2019-06-05)
==================
- updated mobile formatting
- fixed sidebar open/close button icons
1.4.6 (2019-05-22)
==================
- upgraded to work with Roundcube 1.4 RC1
- fixed icon placement in icon font
- added 'solid' icon set in icon font
- added forwarded/replied icon in icon font
1.4.5 (2019-03-08)
==================
- fixed 32-bit platform compatibility
1.4.4 (2018-08-01)
==================
- updated geo definitions
- updated mobile detect
- updated docs
- fixed minor code problems
1.4.3 (2018-07-03)
==================
- changed ajax response functions
- added database error logging
- changed lastInsertId function to be fully compatible with Postgres
1.4.2 (2018-06-14)
==================
- fixed javascript time formatting
1.4.1 (2018-06-04)
==================
- added support for the thunderbird labels plugin
- added a config option to set default visibility of the sidebar (xsidebar_visible)
- fixed charset problem in sendHtmlEmail()
1.4 (2018-04-04)
================
- upgraded the plugin to be compatible with Elastic beta
1.3.2 (2017-12-11)
==================
- implemented multi-domain config functionality for all the plugins
1.3.1 (2017-12-06)
==================
- fixed sidebar settings page UI on mobile devices
- added new icons for the junk and not-junk buttons
1.3 (2017-11-09)
================
- upgraded vendor/maxmind to version 2.7
- upgraded geolite database to version 20171107
- upgraded Mobile_Detect to version 2.8.26
- added geo data session caching
1.2.9 (2017-11-01)
==================
- fixed markasjunk2 icons
- fixed analytics
1.2.8 (2017-09-04)
==================
- fixed port handling in Plugin::getUrl()
- fixed message list hover flag icon in widescreen view
1.2.7 (2017-08-18)
==================
- fixed the unsupported provider error in plugins that don't require db access
1.2.6 (2017-07-05)
==================
- fixed errors in Format.php when running /bin scripts
1.2.5 (2017-06-28)
==================
- moved the mobile layout setting functions to xskin
1.2.4 (2017-06-07)
==================
- made sidebar compatible with RC 1.3
- made the cloud plugin platform compatible with RC 1.3
- updated getUrl()
1.2.3 (2017-05-10)
==================
- upgraded the deprecated function rcube_idn_to_ascii()
- added a function to recognize cPanel in XFramework\Plugin
- fixed cloud-based plugin class
- fixed cloud-based attachment save function
- fixed cloud-based plugin UI
1.2.2 (2017-03-22)
==================
- changed the way of recognizing if Roundcube runs under cPanel
1.2.1 (2017-03-17)
==================
- fixed some 32-bit server incompatibility problems
- changed the rc+ watermark file location
1.2 (2017-03-07)
==================
- fixed a translation problem in Geo
- added Polish translation
1.1.9 (2017-03-01)
==================
- added a function for recognizing if running under cPanel
1.1.8 (2017-02-20)
==================
- included howler.js
1.1.7 (2017-02-15)
==================
- fixed toolbar icon size
- standardized translation files
1.1.6 (2017-02-07)
==================
- removed support for geoiplocation database
- set sidebar to be visible by default for new users
- changed the apps menu to include icons
- placed the apps menu behind settings on the menu bar
- changed saving collapsed sidebar items from cookie to user preferences
- moved rc+ font from xskin
- added German translation
1.1.5 (2017-01-16)
==================
- added config options add_to_apps_menu, remove_from_apps_menu
- described config options in the readme file
1.1.4 (2017-01-10)
==================
- made the plugin compatible with SQLite
1.1.3 (2017-01-04)
==================
- added the option of reordering sidebar items
- improved internal functions
1.1.2 (2016-12-19)
==================
- upgraded javascript libraries
- fixed redirection problems on IE
- fixed sidebar problems on IE
- fixed errors when running cleandb.sh
1.1.2 (2016-12-13)
==================
- fixed errors when using quick language change menu
1.1.1 (2016-12-09)
==================
- made plugin compatible with xactivate
- updated license agreement
1.1 (2016-11-30)
==================
- updated the maxmind database
- updated test class
- added unit tests
- added support for license key
- optimized the plugin code
- changed asl url
1.0.9 (2016-11-16)
==================
- made plugin compatible with db_prefix
- removed references to legacy functions
1.0.8 (2016-11-07)
==================
- added an function to create setting help popups
1.0.7 (2016-10-11)
==================
- fixed adding scripts and stylesheets so they don't use full url
1.0.6 (2016-09-27)
==================
- enabled setting skin via a url parameter
1.0.5 (2016-09-20)
==================
- changed the url function to recognize proxy addresses
- fixed the database functions to properly format bool values before saving
1.0.4 (2016-09-06)
==================
- added the Apps button on the toolbar for easy access to Roundcube Plus plugins
1.0.3 (2016-08-15)
==================
- fixed the Geo::getCountryName() warning
1.0.2 (2016-08-08)
==================
- upgraded to be compatible with RC 1.2.1
- upgraded to be compatible with mysql 5.7
1.0.1 (2016-07-04)
==================
- fixed problems with sorting the message list and changing the order of message columns
1.0 (2016-06-01)
================
- initial release
Requirements
Roundcube | 1.5, 1.6 |
PHP | 7.4 or higher |
Config | Google Client ID |
License
This product is licensed for a single Roundcube installation. In order to use it on multiple installations, you must purchase multiple copies of the product.
Support
This product includes full technical support while the subscription is active.
Demo
To see all the plugins and skins in action go to our demo site.