Skip to content

jfqd/redmine_helpdesk

Repository files navigation

Redmine Helpdesk

Lightweight helpdesk plugin for redmine. Adds the email sender-address of an anonymous supportclient to the custom field 'owner-email' of a ticket which was created by a support email. Answers can be send to the supportclient by checking the support checkbox on a journal.

Features

  • No need to create any user accounts for anonymous user
  • Support for sending an email notification to the (anonymous user) supportclient on ticket creation
  • A standard first reply message can be send to the supportclient on ticket creation (optional, per project)
  • The email-footer for the email notification to the supportclient can be adjusted (optional, per project)
  • The email-footer can be customized by using the following placeholders:
    • Issue parameters
      • ##issue-id##
      • ##issue-subject##
      • ##issue-tracker##
      • ##issue-status##
    • Project parameters
      • ##project-name##
    • User parameters
      • ##user-name##
      • ##user-firstname##
      • ##user-lastname##
      • ##user-mail##
      • ##user-login##
      • all user custom fields: ##user-cf-[user's custom field name]##, e.g. ##user-cf-position##
    • Base parameters
      • ##time-now##
  • The sender email-address can be adjusted (optional, per project)
  • Internal communication is not send to the supportclient
  • The supportclient will get an email notification if the support checkbox on the journal is checked (default value is optional)
  • Journal attachments will be delivered too
  • Cc header is handled if the cc-handling checkbox is checked. (optional, per project)
  • Reopening a closed issue is handled if the reopen-closed-issues-by-email checkbox is checked. (optional, per project)

Screenshot

Send mail to supportclient

Getting the plugin

A copy of the plugin can be downloaded from GitHub

Installation

To install the plugin clone the repo from github and migrate the database:

cd /path/to/redmine/
git clone git://github.com/jfqd/redmine_helpdesk.git plugins/redmine_helpdesk
bundle install --without development test rmagick
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

To uninstall the plugin migrate the database back and remove the plugin:

cd /path/to/redmine/
rake redmine:plugins:migrate NAME=redmine_helpdesk VERSION=0 RAILS_ENV=production
rm -rf plugins/redmine_helpdesk

Further information about plugin installation can be found at: https://www.redmine.org/wiki/redmine/Plugins

Usage

To use the helpdesk functionality you need to

  • add the custom field 'owner-email' to a project in the project configuration
  • add a standard first reply message into the custom_field 'helpdesk-first-reply' in the project configuration (optional)
  • add an email-footer into the custom_field 'helpdesk-email-footer' in the project configuration
  • add a sender email address into the custom_field 'helpdesk-sender-email' in the project configuration (optional)
  • make sure 'Issue added' and 'Issue updated' in the general redmine settings for email notifications are checked
  • add the permission 'Treat as supportclient' to all roles you want to be treated as supportclient (the permission is automatically added to the 'Anonymous' role)
  • disable standard notifications for non-anonymous supportclients to prevent their spamming (optional)
  • add a cronjob for creating issues from support emails

project configuration sample

Cronjob

Creating tickets from support emails through an IMAP-account is done by a cronjob. If you are not familiar with cron you first should read about the concept. The following syntax is for ubuntu or debian linux:

*/5 * * * * redmineuser /path/to/your/rake -f /path/to/redmine/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=mail.example.com port=993 username=username password=password ssl=true project=project_identifier folder=INBOX move_on_success=processed move_on_failure=failed no_permission_check=1 unknown_user=accept 1 > /dev/null

Further information about receiving emails with redmine can be found at: https://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails

Please note that forwarding emails with rdm-mailhandler.rb is currently not supported by the plugin.

Compatibility

The latest version of this plugin is only compatible with Redmine 5.0.x.

If you prefer to run Redmine with JRuby make sure to use Redmine versions prior to 3.0.x!

Development

Testing

Rake tasks for testing against Redmine are provided. Redmine is installed under test/app and tests are run against the local instance.

REDMINE_VERSION=3.2 DATABASE_ADAPTER=mysql rake helpdesk:redmine:install

Docker is used to provide local MySQL (DATABASE_ADAPTER=mysql) and PostgreSQL (DATABASE_ADAPTER=postgresql_ext) instances.

export DATABASE_ADAPTER=mysql
rake helpdesk:prepare_local
rake helpdesk:migrate

Test suite can be executed with:

DATABASE_ADAPTER=mysql rake helpdesk:ext_ci

The local database instance has to be stopped with a rake task:

rake helpdesk:localdb:stop

Contributions

  • MatthiasPetermann - Update for compatibility with Redmine 5.x / Rails 6.x
  • rrsach - Redmine 5 Compatibility
  • gianpaol0 - italian translation
  • mgeerdsen - Fix reopening closed issue error
  • mgeerdsen - Improve de locale
  • lmorillas - Fix Error when message hasn't "To:" header
  • promasu - Add X-Redmine-Issue-Tracker header to mailerpatch
  • ANemcov - incorrect issue and project ids usage
  • ismaelgc - Spanish translation
  • monaka - Japanese translation
  • avoidik - Add missed Russian translation into roles and access manager
  • WhereIsPedro - Polish translation
  • vilppuvuorinen - 3.0.x compatibility
  • vilppuvuorinen - Unit and functional tests with travis and code climate support
  • ssidelnikov - Make sure that the notes length is always calculated
  • nifuki - Fixed bug trying to send an email with empty notes
  • nifuki - Fixed non-working helpdesk-send-to-owner-default checkbox
  • box789 - Russian translation
  • seqizz - Turkish translation
  • benstwa - 'send' should be 'sent'
  • davidef - Add setting for handling sent to owner default value
  • Craig Gowing - Redmine 2.4 compatibility
  • Barbazul - Added reply-to header
  • Orchitech Solutions - Added issue matching based on standard MIME header references
  • Orchitech Solutions - Added support for non-anonymous supportclients (sponsored by ISIC Global Office)
  • Orchitech Solutions - Added support for customizable email footers (sponsored by ISIC Global Office)
  • Orchitech Solutions - Added support for tracking email details (sponsored by ISIC Global Office)
  • shackijj - Added Cc header handling
  • archonwang - Add Simplified Chinese
  • Niremizov - Set owner email only if it wasn't set before
  • ghost - Fix attachements truncated in email sent to supportclient
  • Orchitech Solutions - Added support for reply separator (sponsored by ISIC Global Office)

License

This plugin is licensed under the MIT license. See LICENSE-file for details.

Copyright

Copyright (c) 2012-2022 qutic development GmbH