Project

General

Profile

RedmineReceivingEmails » History » Version 76

Jannik Lorenz, 2016-04-08 02:53

1 40 Etienne Massip
h1. Receiving emails
2 1 Jean-Philippe Lang
3 4 Jean-Philippe Lang
{{>toc}}
4
5 55 Art Kuo
As of 0.8.0, Redmine can be configured to allow issue creation or comments via email. It is also able to recognize and incorporate email replies to forum messages.
6 1 Jean-Philippe Lang
7 40 Etienne Massip
h2. Setup
8 1 Jean-Philippe Lang
9 40 Etienne Massip
You can configure Redmine to receive emails in one of the following ways:
10 7 Jean-Philippe Lang
11
* Forwarding emails from your email server:
12
13
  * Pros: works with a remote mail server, email are processed instantly, fast (no environment reloading)
14 10 Jean-Philippe Lang
  * Cons: needs some configuration on your mail transfer agent (eg. Postfix, Sendmail...)
15 7 Jean-Philippe Lang
16 29 Jean-Philippe Lang
* Fetching emails from an IMAP or POP3 server:
17 7 Jean-Philippe Lang
18
  * Pros: easy to setup, no need to configure your MTA, works with a remote mail server
19 9 Jean-Philippe Lang
  * Cons: emails are not processed instantly (a cron job needs to be added to read emails periodically)
20 7 Jean-Philippe Lang
21
* Reading emails from standard input:
22
23
  * Pros: fine for testing purpose
24
  * Cons: slow (the environment is reloaded each time an email is read), needs some configuration on your MTA
25 4 Jean-Philippe Lang
26
h3. Forwarding emails from your email server
27
28
A standalone script can be used to forward incoming emails from your mail server.
29
This script reads a raw email from the standard input and forward it to Redmine via a HTTP request.
30
It can be found in your redmine directory: @extra/mail_handler/rdm-mailhandler.rb@.
31
32
In order to use it, you have to enable the API that receive emails:
33
Go to _Application settings_ -> _Incoming emails_, check *Enable WS for incoming emails* and enter or generate a secret key.
34
35 46 Jean-Philippe Lang
36
37
38
39
40
41
42
43 59 Filou Centrinov
Copy @rdm-mailhandler.rb@ to your mail server, make sure its permissions allow execution, and configure your MTA (Mail Transport Agent).
44 4 Jean-Philippe Lang
45 5 Jean-Philippe Lang
Usage:
46 4 Jean-Philippe Lang
47 1 Jean-Philippe Lang
<pre>
48 5 Jean-Philippe Lang
rdm-mailhandler [options] --url=<Redmine URL> --key=<API key>
49 1 Jean-Philippe Lang
50 76 Jannik Lorenz
Required arguments:
51
    -u, --url URL               URL of the Redmine server
52
    -k, --key KEY               Redmine API key
53
54 1 Jean-Philippe Lang
General options:
55 76 Jannik Lorenz
        --no-permission-check   disable permission checking when receiving
56
                                the email
57
        --key-file FILE         full path to a file that contains your Redmine
58
                                API key (use this option instead of --key if
59
                                you don't want the key to appear in the command
60
                                line)
61
        --no-check-certificate  do not check server certificate
62
    -h, --help                  show this help
63
    -v, --verbose               show extra information
64
    -V, --version               show version information and exit
65 1 Jean-Philippe Lang
66 76 Jannik Lorenz
User creation options:
67
        --unknown-user ACTION   how to handle emails from an unknown user
68
                                ACTION can be one of the following values:
69
                                * ignore: email is ignored (default)
70
                                * accept: accept as anonymous user
71
                                * create: create a user account
72
        --default-group GROUP   add created user to GROUP (none by default)
73
                                GROUP can be a comma separated list of groups
74
        --no-account-notice     don't send account information to the newly
75
                                created user
76
        --no-notification       disable email notifications for the created
77
                                user
78
79 5 Jean-Philippe Lang
Issue attributes control options:
80 76 Jannik Lorenz
    -p, --project PROJECT       identifier of the target project
81
    -s, --status STATUS         name of the target status
82
    -t, --tracker TRACKER       name of the target tracker
83
        --category CATEGORY     name of the target category
84
        --priority PRIORITY     name of the target priority
85
    -o, --allow-override ATTRS  allow email content to override attributes
86
                                specified by previous options
87
                                ATTRS is a comma separated list of attributes
88 6 Jean-Philippe Lang
</pre>
89 5 Jean-Philippe Lang
90
See [[RedmineReceivingEmails#Issue-attributes|Issue-attributes]] for a list of values that can be used for the @--allow-override@ option.
91
92
Examples:
93
94
<pre>
95
  # No project specified. Emails MUST contain the 'Project' keyword:
96
  rdm-mailhandler --url http://redmine.domain.foo --key secret
97
  
98
  # Fixed project and default tracker specified, but emails can override
99
  # both tracker and priority attributes:
100 54 Art Kuo
  rdm-mailhandler --url https://domain.foo/redmine --key secret \\
101 5 Jean-Philippe Lang
                  --project foo \\
102
                  --tracker bug \\
103 1 Jean-Philippe Lang
                  --allow-override tracker,priority
104
</pre>
105 54 Art Kuo
106 55 Art Kuo
Here is an example for a Postfix local alias entry:
107 35 Justin Clarke
108
<pre>
109
foo: "|/path/to/rdm-mailhandler.rb --url http://redmine.domain --key secret --project foo"
110 36 Justin Clarke
</pre>
111 35 Justin Clarke
112 36 Justin Clarke
This line should go in the aliases file, which is usually specified in @/etc/aliases@. If the location is unknown, use the command @postconf alias_maps@ to find out. After updating the aliases file, be sure to run @newaliases@ to alert Postfix of the new entry.
113 35 Justin Clarke
114
If your domain is setup as a virtual mailbox map (so that you use /etc/postfix/virtual_mailbox_maps to do mappings in the form @ user@example.com /path/example.com/user@) you should:
115 1 Jean-Philippe Lang
116 75 Baz T.Miner
* create a mapping in @/etc/virtual@ like: @ foo@example.org foo@
117 34 Thomas Guyot-Sionnest
* modify @/etc/postfix/main.cf@ to specify a transport file: @transport_maps = hash:/etc/postfix/transport@
118 1 Jean-Philippe Lang
* within the transport file add a line like: @ foo@example.org local:@
119
120 20 Kurt Miebach
*Explanation:* - When you define virtual_mailbox_maps for a domain the default transport is virtual, which means specifying a local alias in @/etc/postfix/virtual@ will fail (with "unknown user"). To fix this, we override the default transport by specifying a local transport for the email address in question, which means the local alias will resolve correctly, and your script will be executed.
121 1 Jean-Philippe Lang
122 68 Denis Savitskiy
For versions before 3.2, a front-end to rdm-mailhandler.rb has been written to allow specifying projects trough sub-addresses (name+project@example.com). See [[MailhandlerSubAddress]]. This feature is now available for all email sources (ie @RAW@, @IMAP@ and @POP@) using the @project_from_subaddress@ feature see [[RedmineReceivingEmails#Target-Project-from-Email-Sub-Address|Target Project from Email Sub-Address]] below.
123 21 Kurt Miebach
124 68 Denis Savitskiy
h3. Fetching emails from an IMAP server
125 20 Kurt Miebach
126 33 Jürgen Hörmann
A rake task (@redmine:email:receive_imap@) can be used to fetch incoming emails from an IMAP server. When you run the rake command from a cron job you can include the switch @-f /path/to/redmine/appdir/Rakefile@ on the rake command, because otherwise the rakefile is not found. This is an example line for a cron file that fetches mails every 30 minutes:
127
128 68 Denis Savitskiy
<pre>
129 33 Jürgen Hörmann
*/30 * * * * redmineuser rake -f /path/to/redmine/appdir/Rakefile redmine:email:receive_imap RAILS_ENV="production" host=imap.foo.bar username=redmine@somenet.foo password=xxx 
130 68 Denis Savitskiy
</pre>
131 33 Jürgen Hörmann
132 22 Kurt Miebach
If your setup is working, but you receive mails from the cron daemon, you can suppress the output from the rake command by adding the --silent switch. That should stop cron sending mails on every execution of the command.
133 20 Kurt Miebach
134 25 Roland ...
<pre>
135 20 Kurt Miebach
*/30 * * * * redmineuser rake -f /path/to/redmine/appdir/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=imap.foo.bar username=redmine@somenet.foo password=xxx 
136 6 Jean-Philippe Lang
</pre>
137 1 Jean-Philippe Lang
138 6 Jean-Philippe Lang
The command has to go on a single line in your cronfile. Also see the other examples below, which only show the rake commands without the @-f@ option and without the cron part. 
139 20 Kurt Miebach
140 6 Jean-Philippe Lang
For Windows as server "pycron":http://www.kalab.com/freeware/pycron/pycron.htm can be used to schedule a fetch task.
141
142
It can be necessary that you open the firewall on the machine for outgoing TCP connections to IMAP port 143.
143 72 Sebastian Paluch
144 1 Jean-Philippe Lang
Available IMAP options:
145 6 Jean-Philippe Lang
<pre>
146 1 Jean-Philippe Lang
  host=HOST                IMAP server host (default: 127.0.0.1)
147 29 Jean-Philippe Lang
  port=PORT                IMAP server port (default: 143)
148
  ssl=SSL                  Use SSL? (default: false)
149
  starttls=STARTTLS        Use STARTTLS? (default: false)
150 1 Jean-Philippe Lang
  username=USERNAME        IMAP account
151 29 Jean-Philippe Lang
  password=PASSWORD        IMAP password
152 1 Jean-Philippe Lang
  folder=FOLDER            IMAP folder to read (default: INBOX)
153 20 Kurt Miebach
  move_on_success=MAILBOX  move emails that were successfully received
154 6 Jean-Philippe Lang
                           to MAILBOX instead of deleting them
155
  move_on_failure=MAILBOX  move emails that were ignored to MAILBOX
156
</pre>
157
158 18 Eric Davis
Issue attributes control options:
159 1 Jean-Philippe Lang
<pre>
160 18 Eric Davis
  project=PROJECT          identifier of the target project
161
  tracker=TRACKER          name of the target tracker
162
  category=CATEGORY        name of the target category
163 53 Jean-Philippe Lang
  priority=PRIORITY        name of the target priority
164 51 Jean-Philippe Lang
  allow_override=ATTRS     allow email content to override attributes
165 20 Kurt Miebach
                           specified by previous options
166 1 Jean-Philippe Lang
                           ATTRS is a comma separated list of attributes
167 6 Jean-Philippe Lang
</pre>
168
169
See [[RedmineReceivingEmails#Issue-attributes|Issue-attributes]] for a list of values that can be used for the @allow-override@ option.
170 11 Thomas Lecavelier
171 6 Jean-Philippe Lang
Examples for the rake command:
172 1 Jean-Philippe Lang
173
<pre>
174 6 Jean-Philippe Lang
  # No project specified. Emails MUST contain the 'Project' keyword:
175
  
176
  rake redmine:email:receive_imap RAILS_ENV="production" \\
177 11 Thomas Lecavelier
    host=imap.foo.bar username=redmine@somenet.foo password=xxx
178 6 Jean-Philippe Lang
179
180
  # Fixed project and default tracker specified, but emails can override
181
  # both tracker and priority attributes:
182 18 Eric Davis
  
183
  rake redmine:email:receive_imap RAILS_ENV="production" \\
184
    host=imap.foo.bar username=redmine@somenet.foo password=xxx ssl=1 \\
185
    project=foo \\
186 1 Jean-Philippe Lang
    tracker=bug \\
187
    allow_override=tracker,priority
188
189
  # Move successful emails to the 'read' mailbox and failed emails to
190
  # the 'failed' mailbox
191
  
192
  rake redmine:email:receive_imap RAILS_ENV="production" \\
193 37 Benjamin Haskell
    host=imap.foo.bar username=redmine@somenet.foo password=xxx \\
194 1 Jean-Philippe Lang
    move_on_success=read move_on_failure=failed
195 45 Mischa The Evil
196 29 Jean-Philippe Lang
</pre>
197
198
199
Ignored emails are marked as 'Seen' but are not deleted from the IMAP server--these include unknown user, unknown project and emails from the redmine emission account.
200
201
The option _allow_override_ is not only for overriding default values given to rake, but for every attribute in a mail. If you want to override the tracker in your mail you have to add _allow_override=tracker_ as a parameter.
202
203
h3. Fetching emails from a POP3 server
204
205
_Only available in trunk and future 1.0._
206
207
A rake task (@redmine:email:receive_pop3@) can be used to fetch incoming emails from a POP3 server.
208
209
Available POP3 options:
210
<pre>
211
  host=HOST                POP3 server host (default: 127.0.0.1)
212
  port=PORT                POP3 server port (default: 110)
213
  username=USERNAME        POP3 account
214
  password=PASSWORD        POP3 password
215
  apop=1                   use APOP authentication (default: false)
216 23 Roland ...
  delete_unprocessed=1     delete messages that could not be processed
217 1 Jean-Philippe Lang
                           successfully from the server (default
218
                           behaviour is to leave them on the server)
219
</pre>
220
221 6 Jean-Philippe Lang
See the IMAP rake task above for issue attributes control options.
222
223
h3. Reading emails from standard input
224
225
A rake task (@redmine:email:receive@) can be used to read a single raw email from the standard input.
226
227
<pre>
228
Issue attributes control options:
229
  project=PROJECT          identifier of the target project
230
  tracker=TRACKER          name of the target tracker
231 1 Jean-Philippe Lang
  category=CATEGORY        name of the target category
232 52 Jean-Philippe Lang
  priority=PRIORITY        name of the target priority
233
  allow_override=ATTRS     allow email content to override attributes
234 6 Jean-Philippe Lang
                           specified by previous options
235 1 Jean-Philippe Lang
                           ATTRS is a comma separated list of attributes
236 6 Jean-Philippe Lang
</pre>
237
238
See [[RedmineReceivingEmails#Issue-attributes|Issue-attributes]] for a list of values that can be used for the @allow-override@ option.
239 1 Jean-Philippe Lang
240 6 Jean-Philippe Lang
Examples:
241
242
<pre>
243
  # No project specified. Emails MUST contain the 'Project' keyword:
244
  rake redmine:email:read RAILS_ENV="production" < raw_email
245
246
  # Fixed project and default tracker specified, but emails can override
247 23 Roland ...
  # both tracker and priority attributes:
248 45 Mischa The Evil
  rake redmine:email:read RAILS_ENV="production" \\
249 1 Jean-Philippe Lang
                  project=foo \\
250 44 Mischa The Evil
                  tracker=bug \\
251 1 Jean-Philippe Lang
                  allow_override=tracker,priority < raw_email
252 44 Mischa The Evil
</pre>
253 1 Jean-Philippe Lang
254 61 Jean-Baptiste Barth
The option _allow_override_ is not only for overriding default values given to rake, but for every attribute in a mail. If you want to override the tracker in your mail you have to add _allow_override=tracker_ as a parameter.
255 44 Mischa The Evil
256
h3. Enabling unknown users to create issues by email
257
258
Redmine has a feature that provides the ability to accept incoming emails from unknown users. In order to use this feature, an extra parameter has to be included:
259 1 Jean-Philippe Lang
<pre>
260 44 Mischa The Evil
unknown_user=ACTION     how to handle emails from an unknown user where ACTION can be one of the following values:
261
                        ignore: the email is ignored (default)
262 60 Philipp erpel
                        accept: the sender is considered as an anonymous user and the email is accepted
263
                        create: a user account is created for the sender (username/password are sent back to the user) and the email is accepted
264
</pre>
265
266
Permissions have to be consistent with the chosen option. E.g. if you choose 'create', the 'Non member' role must have the 'Add issues' permission so that an issue can be created by an unknown user via email. If you choose 'accept', the 'Anonymous' role must have this permission.
267 45 Mischa The Evil
268 44 Mischa The Evil
If you receive emails via the rake task, the unknown-user option has to be written as:
269 1 Jean-Philippe Lang
<pre>
270
 unknown_user=[ignore|accept|create]
271
</pre>
272 57 Antoine Beaupré
273 44 Mischa The Evil
You can disable permission checking using the 'no_permission_check' option:
274 57 Antoine Beaupré
<pre>
275 44 Mischa The Evil
no_permission_check=1   disable permission checking when receiving the email
276
</pre>
277
278
This, together with the 'unknown-user', provides the ability to let anyone submit emails to a private project. For example:
279 45 Mischa The Evil
<pre>
280 47 Brett Zamir
rdm-mailhandler --unknown-user accept --no-permission-check --project=foo
281 1 Jean-Philippe Lang
</pre>
282 58 Terence Mill
283
will let anyone submit emails to a private project 'foo'.
284
285
TODO: Is this true and is this related to the @no_permission_check@ option?:
286
> Since Redmine 0.9 the project doesn't have to be public, but authentication required in the Administration-> Settings->Authentication tab has to be unchecked.
287 70 Pierre Maigne
288
If you do not want an "new account notification email" sent to every newly created user by rdm-mailhandler you must add the option "--no-account-notice". Is implemneted with version#60 in issue #11498. Now an example:
289
<pre>
290
rdm-mailhandler --unknown-user accept --no-permission-check --project=foo --no-account-notice
291
</pre>
292
293
h3. Schedule email receiving with Rufus Scheduler
294
295
Instead of using a cron to trigger the Rake task to retrieve incoming email, you can use Rufus Scheduler which will run the Rake task in the same process as Redmine.
296
This is using less ressources and faster than calling the Rake task from a cron (or from the Task Scheduler on Windows).
297
298
To do that, install rufus-scheduler gem:
299
<pre>gem install rufus-scheduler</pre>
300
301
Create a what_you_want.rb file in /config/initializers/ and put the following content in your file. (Here for a POP3 account. Change it with your own parameters and own task.)
302
<pre>
303
require 'rubygems'
304
require 'rake'
305
require 'rufus-scheduler'
306
307
load File.join(Rails.root, 'Rakefile')
308
309
ENV['host']='pop.toto.com'
310
ENV['port']='110'
311
ENV['ssl']='SSL'
312
ENV['username']='redmine@toto.com'
313
ENV['password']='azerty123456'
314
315
scheduler = Rufus::Scheduler.new
316
# Check emails every 10 mins
317
scheduler.interval '10m' do
318
  task = Rake.application['redmine:email:receive_pop3']
319
  task.reenable
320
  task.invoke 
321
end
322 1 Jean-Philippe Lang
</pre>
323
324 12 Eric Davis
Restart your Redmine instance and your incoming emails will be retrieved on schedule.
325 1 Jean-Philippe Lang
326
You can check "Rufus-Scheduler":https://github.com/jmettraux/rufus-scheduler for scheduling syntax.
327 3 Jean-Philippe Lang
328 43 Mischa The Evil
h2. How it works
329 38 Dave Thomas
330 15 Jean-Philippe Lang
When receiving an email, Redmine uses the From address of the email to find the corresponding user. Emails received from unknown or locked users are ignored.
331
332 27 Eric Davis
If the email subject contains something like "Re: *[xxxxxxx !#123]*", the email is processed as a reply and a note is added to issue !#123. Otherwise, a new issue is created.
333 1 Jean-Philippe Lang
334 16 Jean-Philippe Lang
Note that, in order to create an issue, all required custom fields must be provided. Without them, issue creation will fail. As an alternative you can ensure that every custom field has a default value which is then used during issue creation.
335
336 1 Jean-Philippe Lang
h3. Target project
337
338
The target project can be specified using the @project@ option when receiving emails.  This should be the identifier of the project and *not* the name.  You can easily find the identifier in the url.
339 28 Ethan Fremen
340
If you don't use this option, users have to specify in the email body which project the issue should be added to. This can be done by inserting a line in the email body like this: @"Project: foo"@.
341 1 Jean-Philippe Lang
342
Example (email body):
343
344
<pre>
345
This is a new issue that will be added to project foo.
346 16 Jean-Philippe Lang
Here we have the issue description
347
[...]
348
349
Project: foo
350
</pre>
351
352
You can set a default project using the @project@ option and let users override this default project by using the @allow-override@ option when receiving emails.
353
Example:
354 14 Jean-Philippe Lang
355 1 Jean-Philippe Lang
<pre>
356 75 Baz T.Miner
  # Create issues on project foo by default
357
  rake redmine:email:receive_imap [...] project=foo allow_override=project
358
</pre>
359
360
Of course, user permissions are checked and this email would be ignored if the user who sent this email is not allowed to add issues to project foo.
361
Make sure that the target project doesn't use *required* custom fields with no default value for its issues, otherwise the creation of the issue will fail.
362
363
h3. Target Project from Email Sub-Address
364
365
This feature was introduced in ver 3.2.0 (SVN rev r14687). It may be preferable to have one mailbox for all incoming emails to a Redmine instance, instead of one per project. For some history of this feature see [[MailhandlerSubAddress]]. When receiving emails at redmine@somenet.foo, an email sent to redmine+foo@somenet.foo will cause the issue to be added to project with identifier foo.
366
367
To enable this feature add the @project_from_subaddress=redmine@somenet.foo@ to the command e.g.
368
369
<pre>
370
    rake redmine:email:receive_imap [...] project_from_subaddress=redmine@somenet.foo
371
</pre> 
372
373
If a project is included in the command-line then it becomes the default project that will be used for emails sent to @redmine@somenet.foo@. So with the command:
374
375
<pre>
376 15 Jean-Philippe Lang
    rake redmine:email:receive_imap [...] project=bar project_from_subaddress=redmine@somenet.foo
377
</pre> 
378 8 Jean-Philippe Lang
379 74 Deoren Moor
emails to @redmine@somenet.foo@ or @redmine+bar@somenet.foo@ will raise issues in project bar; emails to @redmine+foo@somenet.foo@ will go into project foo.
380
381
Some email providers include support for sub-addresses, as per RFCs 3598, 5233. Where this is not supported, forwarding mail addresses to the 'central' address, may work (it does in my case), ie set up an email address forwarding all mails to @redmine@somenet.foo@ from @redmine+foo@somenet.foo@, @redmine+bar@somenet.foo@ etc. This is easy to administer and does not require fetching emails from multiple accounts, each with its own account credentials.
382
383
h3. Issue attributes
384 1 Jean-Philippe Lang
385 66 Deoren Moor
Based on the options you use when receiving emails (see @allow-override@ option), users may be able to override some attributes when submitting an issue. 
386
387
Note: prior to Redmine version:"3.2.0" (#20543) some attributes were _always_ overridable, but this was not documented. This behavior has been changed and all attributes have to be explicitly listed with the @allow_override@ option to be overridable. For those who want all attributes to be overridable, @allow_override=all@ can now be used (#20543).
388
389
Once @allow_override@ has been configured, you can override those attributes by using the appropriate keywords in the email body.
390 1 Jean-Philippe Lang
391
Example keyword list:
392 69 Denis Savitskiy
393
* @Project@
394
* @Tracker@
395 73 Mathieu Janson
* @Category@
396 69 Denis Savitskiy
* @Priority@
397
* @Status@
398 66 Deoren Moor
* @Start date@
399 71 Toshi MARUYAMA
* @Due date@
400 66 Deoren Moor
* @Target version@
401 8 Jean-Philippe Lang
* @Estimated hours@
402
* @Done ratio@
403 28 Ethan Fremen
* @<Custom field name>@
404 8 Jean-Philippe Lang
405
The values available are the ones of the context. E.g. @Status@ available (for this Tracker and this Project) are labels in the localized language, exactly as displayed in the user interface or system default language (even with spaces, without quoting).
406
407 1 Jean-Philippe Lang
Example (email body):
408 8 Jean-Philippe Lang
409 1 Jean-Philippe Lang
<pre>
410
This is a new issue that overrides a few attributes
411
[...]
412
413 66 Deoren Moor
Project: foo
414
Tracker: Bug
415
Priority: Urgent
416
Status: Resolved
417
</pre>
418
419
The format for keywords differs from the allowed attribute values for the @allow_override@ option:
420
421
* @project@
422
* @tracker@
423
* @status@
424
* @priority@
425
* @category@
426
* @assigned_to@
427
* @fixed_version@ (aka. Target version)
428
* @start_date@
429
* @due_date@
430
* @estimated_hours@
431
* @done_ratio@
432
433
Multiple attribute values can be specified in order to allow only certain keywords to be used.
434
435 49 Jean-Philippe Lang
Example:
436 1 Jean-Philippe Lang
437
<pre>
438
  # Allow overriding project, tracker, status & priority
439 16 Jean-Philippe Lang
  rake redmine:email:receive_imap [...] allow_override=project,tracker,status,priority
440 42 Mischa The Evil
</pre>
441 41 Miguel Filho
442 16 Jean-Philippe Lang
h3. Watchers
443
444
If the user who sends the email has the 'Add issue watchers' permission, users that are in To or Cc field of the email are automatically added as watchers of the created issue.
445
446 1 Jean-Philippe Lang
Watchers are added only when the issue is created. To or Cc fields are ignored on replies. See #7017 and #8009.
447 55 Art Kuo
448
h3. Email format and attachments
449
450 1 Jean-Philippe Lang
Redmine tries to use the plain text part of the email to fill the description of the issue.
451 65 Toshi MARUYAMA
If a HTML-only email is received, HTML tags are removed from its body.
452 1 Jean-Philippe Lang
453
Email attachments are automatically attached to the issue, unless their size exceeds the [[RedmineSettings#Attachment-max-size|maximum attachment size]] defined in the application settings.
454
455
h3. Truncate emails
456
457
The Administrator's settings may be used to automatically truncate emails, for example to eliminate quoted messages in forum replies. To do this, set the outgoing email header to something like @--Reply above this line--@ in the Email notifications settings. Then in the Incoming emails settings, enter the same line into the box "Truncate emails after one of these lines." (It is also possible to allow regex to be truncated, using the patch attached to #5864)