I used this article originally to solve the problem, but I changed some parts as needed. Here are the steps:
1. Create the Customer role and set the permissions
Sign in to Redmine as Administrator and go to the Administration > Roles and permissions > New role. Name it Customer, uncheck "Issues can be assigned to this role" and for Issue visibility select "Issues created by or assigned to the user".
Now in permission section, check the Issue tracking > Add Issue.
2. Create Redmine User for issues creation
Go to Administration > Users > New user and create an account, use the email of the customer here. Then go back to "Users", choose the user, go to Projects tab. In the "New project" panel, select the project, check the Customer role and click add.
3. You need a Gmail account for Redmine
Customers will send their mails to this Gmail address (let's call it redmine.YourCompanyName@gmail.com). Then we fetch mails and create issues in Redmine. So, go to Gmail settings and enable IMAP (cause we use IMAP)
4. Get the CACert.pem
Get the cacert.pem file from here and put it somewhere inside Redmine installation folder (I put it inside "C:\BitNami\redmine-2.3.1-1\apps\redmine\htdocs\cert.pem").
5. Now the script to fetch mails and create issues
Go to the directory that Redmine is installed. Then go to apps > redmine > htdocs (mine is "C:\BitNami\redmine-2.3.1-1\apps\redmine\htdocs\"), hold Shift key, right click and select "Open command window here". Now run this script in command window:
rake redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV="production" host=imap.gmail.com port=993 username=redmine.YourCompanyName@gmail.com password=YourGmailPassword ssl=1 project=YourProject
set SSL_CERT_FILE=C:\BitNami\redmine-2.3.1-1\apps\redmine\htdocs\cert.pem
This script fetches mails in your Gmail account (redmine.YourCompanyName@gmail.com) and creates issues in Redmine. You may run this script periodically, so you could do it manually or create a job for it (i.e. a task in Task Scheduler)