Project

General

Profile

Plugins Directory » Mail Ticket Sync Pro

Author: sivamanikandan K
Website: https://github.com/railsfactory-sivamanikandan/redmine_mail_ticket_sync_pro
Code repository: https://github.com/railsfactory-sivamanikandan/redmine_mail_ticket_sync_pro
Registered on: 2025-04-09 (10 days ago)
Current version: 0.0.1
Compatible with: Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x
User ratings:   (0)

MailTicketSyncPro is a powerful Redmine plugin designed to seamlessly integrate with email providers like Gmail and Outlook. It fetches inbox emails, creates tickets automatically in Redmine, and supports job scheduling and secure token management.

Installation notes

  1. MailTicketSyncPro

MailTicketSyncPro is a powerful Redmine plugin designed to seamlessly integrate with email providers like Gmail and Outlook. It fetches inbox emails, creates tickets automatically in Redmine, and supports job scheduling and secure token management.

  1. Features

- Integrates with Gmail and Outlook inboxes.
- Automatically creates Redmine issues from unread emails.
- Securely stores and manages provider credentials and access tokens using encryption.
- Configurable job scheduling to fetch emails at desired intervals.
- Supports nested forms for managing related entities (e.g., mail providers and job schedules).
- Admin menu with intuitive UI and sidebar integration.

Supported OAuth providers: Configure OAuth callback url
  • Google
https://mysite/auth/callback/gmail or http://localhost:3000/auth/callback/gmail
  1. Installation
  1. Clone as Submodule

To include this plugin as a submodule in your Redmine project:

1. Navigate to your Redmine `plugins` directory:

cd /path/to/redmine/plugins

2. Add the plugin as a submodule:

git submodule add https://github.com/railsfactory-sivamanikandan/redmine_mail_ticket_sync_pro.git redmine_mail_ticket_sync_pro

3. Initialize and update the submodule:

git submodule init
git submodule update

4. Install plugin dependencies:

bundle install
  1. Clone as full code
    To include this plugin directly with in your Redmine project:

1. Clone the repository into your Redmine plugins folder:

git clone https://github.com/railsfactory-sivamanikandan/redmine_mail_ticket_sync_pro.git

2. Install dependencies:

bundle install
  1. Other configurations

1. Run migrations:

rake redmine:plugins:migrate NAME=mail_ticket_sync_pro RAILS_ENV=production

2. Set Up Active Record Encryption (Use Rails Encrypted Configuration)
Rails provides `config/credentials.yml.enc` for securely storing sensitive data. To store encryption keys:

1. Open credentials.yml.enc:

EDITOR="vim" rails credentials:edit

2. Add your keys:

active_record_encryption:
primary_key: <%= ENV["ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY"] >
deterministic_key: <
= ENV["ACTIVE_RECORD_ENCRYPTION_SECONDARY_KEY"] >
key_derivation_salt: <
= ENV["ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT"] %>

Ensure the corresponding environment variables are set in your server or .env file.

If it is not working as expected then try to add the below line in `application.rb`:

config.active_record.encryption.primary_key = Rails.application.credentials.active_record_encryption[:primary_key]
config.active_record.encryption.deterministic_key = Rails.application.credentials.active_record_encryption[:deterministic_key]
config.active_record.encryption.key_derivation_salt = Rails.application.credentials.active_record_encryption[:key_derivation_salt]

3. Restart Redmine.

  1. Configuration

1. Navigate to the Admin menu and select Mail Providers to configure Gmail or Outlook credentials.
2. Set up job schedules to specify how frequently emails are fetched.
3. Use the nested form to link tokens and schedules.

  1. Usage

1. Configure email providers in the Mail Providers section.
2. Define schedules to fetch emails and create tickets.
3. Access the generated tickets directly from your Redmine issues list.

  1. Database Structure
  1. Tables

1. `mail_ticket_providers`: Stores provider details (e.g., Gmail, Outlook) and credentials.
2. `mail_job_schedules`: Manages job schedules for fetching emails.
3. `mail_ticket_tokens`: Stores access tokens, refresh tokens, and associations to providers and schedules.

  1. Development

1. Run tests:

rake test RAILS_ENV=test

2. Generate jobs dynamically:

- A scheduler file (config/schedule.rb) is auto-generated based on job schedules.
- Uses the whenever gem to manage crontab entries.

  1. Here is a screenshot of the plugin:

Contributing
We welcome contributions! Please follow these steps:

1. Fork the repository.
2. Create a feature branch

```bash
git checkout -b feature/your-feature-name
```

3. Commit your changes:

git commit -m "Add your message here"

4. Push to your forked repository and create a pull request.

  1. License
    This plugin is licensed under the MIT License. See the LICENSE file for details.

Changelog

0.0.1 (2024-11-25)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x.