Project

General

Profile

FrRedmineReceivingEmails » History » Version 6

yannick quenec'hdu, 2010-06-23 16:06
Redmine version 0.9.4

1 1 yannick quenec'hdu
[[FrGuide]]
2
3
h1. Recevoir des courriels
4
5
{{>toc}}
6 2 yannick quenec'hdu
7 1 yannick quenec'hdu
Depuis la version 0.8, Redmine peut être configuré pour créer des demandes ou des commentaires directement par courriels.
8
9
h2. Mise en oeuvre
10
11
Vous pouvez configurer Redmine pour recevoir des courriels avec une des méthodes suivantes :
12
13
* Adresser des messages à partir de votre serveur de messagerie
14 6 yannick quenec'hdu
** Distant: Fonctionne avec un serveur de messagerie distant, les courriels sont traités immédiatement, rapide (pas d'environnement à redémarrer)
15
** Local: Nécessite quelques configurations sur votre serveur de messagerie local (ex. Postfix sendmail, etc.)
16 1 yannick quenec'hdu
17
* Récupérer les courriels depuis un serveur IMAP ou POP3 :
18
** Distant: Facile à mettre en oeuvre, ne nécessite pas de configurer le MTA, fonctionne avec un serveur de messagerie distant
19 6 yannick quenec'hdu
** Local: Le traitement n'est pas réalisé instantanément (un cron doit être ajouté pour lire périodiquement les courriels)  
20 1 yannick quenec'hdu
21
h3. Adresser des courriels à partir de votre serveur de messagerie
22
23
Un script autonome peut être utilisé pour transmettre des courriels entrants à partir de votre serveur de messagerie.
24
Ce script lit un flux de courriel depuis l'entrée standard et le transmet à Redmine via une requête HTTP.
25
Le fichier est accessible depuis le répertoire de redmine: @extra/mail_handler/rdm-mailhandler.rb@.
26
27
Pour pouvoir l'utiliser, vous devez activer l'API qui reçoit les courriels:
28
Aller dans > Administration > Configuration > Emails entrants, vérifier que la fonction *Activer le WS pour la réception d'emails* est bien cocher et saisir ou générer une clé secrète
29
30
copier le fichier @rdm-mailhandler.rb@ sur votre serveur de messagerie, vérifier qu'il possède les permissions pour s'exécuter et configurer le serveur de messagerie
31
32
Usage:
33
34
35
<pre>
36 6 yannick quenec'hdu
rdm-mailhandler [options] --URL=<Redmine URL> --key=<API key>
37 1 yannick quenec'hdu
38
Required:
39 6 yannick quenec'hdu
  -u, --URL                      URL of the Redmine server
40 1 yannick quenec'hdu
  -k, --key                      Redmine API key
41
  
42
General options:
43
  -h, --help                     show this help
44
  -v, --verbose                  show extra information
45
  -V, --version                  show version information and exit
46
47
Issue attributes control options:
48
  -p, --project=PROJECT          identifier of the target project
49
  -t, --tracker=TRACKER          name of the target tracker
50
      --category=CATEGORY        name of the target category
51
      --priority=PRIORITY        name of the target priority
52
  -o, --allow-override=ATTRS     allow email content to override attributes
53
                                 specified by previous options
54
                                 ATTRS is a comma separated list of attributes
55
</pre>
56
57
Exemples:
58
59
<pre>
60
  # No project specified. Emails MUST contain the 'Project' keyword:
61 6 yannick quenec'hdu
  rdm-mailhandler --URL http://redmine.domain.foo --key secret
62 1 yannick quenec'hdu
  
63
  # Fixed project and default tracker specified, but emails can override
64
  # both tracker and priority attributes:
65
  rdm-mailhandler --url https://domain.foo/redmine --key secret \\
66
                  --project foo \\
67
                  --tracker bug \\
68
                  --allow-override tracker,priority
69
</pre>
70
71
Ici un exemple pour les aliais Postfix:
72
73
<pre>
74 6 yannick quenec'hdu
foo: "|/path/to/rdm-mailhandler.rb --URL http://redmine.domain --key secret --project foo"
75 1 yannick quenec'hdu
</pre> 
76
77
h3. Récupérer les courriels depuis un serveur IMAP
78 3 yannick quenec'hdu
79 6 yannick quenec'hdu
Une tâche rake (@redmine:email:receive_imap@) peut-être utilisée pour récupérer les courriels depuis un serveur IMAP. Quand vous exécutez la commande rake depuis un cron vous pouvez ajouter l'option  @-f /path/to/redmine/appdir/Rakefile@ dans la commande, faute de quoi le fichier rake n'est pas trouvé. Voici un exemple de ligne pour un fichier cron qui récupère les courriels toutes les 30mn.
80 3 yannick quenec'hdu
81
<code>
82
*/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 
83
</code>
84
85 6 yannick quenec'hdu
Cette ligne peut être ajoutée sur une seule dans votre fichier cron. Vous pouvez aussi consulter d'autres exemples à la suite, qui montre les commandes rake sans l'option @-f@ et sans la partie cron 
86 3 yannick quenec'hdu
87 6 yannick quenec'hdu
Il est nécessaire d'avoir configuré le firewall pour laisser sortir les connexions TCP pour le port IMAP 143. 
88 3 yannick quenec'hdu
89
Options IMAP disponibles:
90
<pre>
91
  host=HOST                IMAP server host (default: 127.0.0.1)
92
  port=PORT                IMAP server port (default: 143)
93
  ssl=SSL                  Use SSL? (default: false)
94
  username=USERNAME        IMAP account
95
  password=PASSWORD        IMAP password
96
  folder=FOLDER            IMAP folder to read (default: INBOX)
97
  move_on_success=MAILBOX  move emails that were successfully received
98
                           to MAILBOX instead of deleting them
99
  move_on_failure=MAILBOX  move emails that were ignored to MAILBOX
100
</pre>
101
102
Options de contrôles des attributs des demandes:
103
<pre>
104
  project=PROJECT          identifier of the target project
105
  tracker=TRACKER          name of the target tracker
106
  category=CATEGORY        name of the target category
107
  priority=PRIORITY        name of the target priority
108
  allow_override=ATTRS     allow email content to override attributes
109
                           specified by previous options
110
                           ATTRS is a comma separated list of attributes
111
</pre>
112
113
114
Exemples de commandes rake:
115
116
<pre>
117
  # No project specified. Emails MUST contain the 'Project' keyword:
118
  
119
  rake redmine:email:receive_imap RAILS_ENV="production" \\
120
    host=imap.foo.bar username=redmine@somenet.foo password=xxx
121
122
123
  # Fixed project and default tracker specified, but emails can override
124
  # both tracker and priority attributes:
125
  
126
  rake redmine:email:receive_imap RAILS_ENV="production" \\
127
    host=imap.foo.bar username=redmine@somenet.foo password=xxx ssl=1 \\
128
    project=foo \\
129
    tracker=bug \\
130
    allow_override=tracker,priority
131
132
  # Move successful emails to the 'read' mailbox and failed emails to
133
  # the 'failed' mailbox
134
  
135
  rake redmine:email:receive_imap RAILS_ENV="production" \\
136
    host=imap.foo.bar username=redmine@somenet.foo password=xxx \\
137
    move_on_success=read move_on_failure=failed
138
139
</pre>
140 4 yannick quenec'hdu
141
Les courriels Ignorés sont marqués comme étant "vu", mais ne sont pas supprimés du serveur IMAP  - Il s'agit notamment d'utilisateur inconnu, inconnu du projet et des courriels du compte émetteur de redmine.
142
143 5 yannick quenec'hdu
L'option  _allow_override_ n'est pas seulement utilisée pour modifier la valeur par défaut donnée par rake, mais pour l'ensemble des attributs du courriel. Si vous voulez modifier un tracker dans votre courriel, vous devez ajouter add _allow_override=tracker_ as parameter.
144 4 yannick quenec'hdu
145
h3. Récupérer des courriels d'un serveur POP3
146
147
_Seulement disponible sur le trunk et dans la future version 1.0_
148
149 6 yannick quenec'hdu
Une tâche rake( @redmine:email:receive_pop3@) peut-être utilisée pour récupérer des courriels depuis un serveur POP3.
150 4 yannick quenec'hdu
151
Options POP3 disponibles:
152
153
<pre>
154
  host=HOST                POP3 server host (default: 127.0.0.1)
155
  port=PORT                POP3 server port (default: 110)
156
  username=USERNAME        POP3 account
157
  password=PASSWORD        POP3 password
158
  apop=1                   use APOP authentication (default: false)
159
  delete_unprocessed=1     delete messages that could not be processed
160
                           successfully from the server (default
161
                           behaviour is to leave them on the server)
162
</pre>
163
164
Voir la tâche rake IMAP ci-dessus pour les attributs de contrôle des demandes.
165
166
h3. Reading emails from standard input
167
168 6 yannick quenec'hdu
Une tâche rake (@redmine:email:receive@) peut-être utilisée pour lire un flux de courriels depuis une entrée standard. 
169 4 yannick quenec'hdu
170
<pre>
171
Issue attributes control options:
172
  project=PROJECT          identifier of the target project
173
  tracker=TRACKER          name of the target tracker
174
  category=CATEGORY        name of the target category
175
  priority=PRIORITY        name of the target priority
176
  allow_override=ATTRS     allow email content to override attributes
177
                           specified by previous options
178
                           ATTRS is a comma separated list of attributes
179
</pre>
180
181
Exemples:
182
183
<pre>
184
  # No project specified. Emails MUST contain the 'Project' keyword:
185
  rake redmine:email:read RAILS_ENV="production" < raw_email
186
187
  # Fixed project and default tracker specified, but emails can override
188
  # both tracker and priority attributes:
189
  rake redmine:email:read RAILS_ENV="production" \\
190
                  project=foo \\
191
                  tracker=bug \\
192
                  allow_override=tracker,priority < raw_email
193
</pre>
194
195 5 yannick quenec'hdu
L'option  _allow_override_ n'est pas seulement utilisée pour modifier la valeur par défaut donnée par rake, mais pour l'ensemble des attributs du courriel. Si vous voulez modifier un tracker dans votre courriel, vous devez ajouter add _allow_override=tracker_ as parameter.
196 4 yannick quenec'hdu
197
h3. Permettre aux utilisateurs anonymes de créer des demandes par courriels
198
199
Pour activer cette option, les paramètres supplémentaires doivent être ajoutés.
200
201
<pre>
202
unknown_user=ACTION     how to handle emails from an unknown user ACTION can be one of the following values:
203
                        ignore: email is ignored (default)
204
                        accept: accept as anonymous user
205
                        create: create a user account
206
207
no_permission_check=1   disable permission checking when receiving the email
208
</pre>
209
210 6 yannick quenec'hdu
Depuis la version 0.9,un projet n'est pas nécessairement public, dans ce cas l'authentification est obligatoire. Dans ce cas, aller dans Administration-> Configuration-> onglet Authentification, elle doit être décochée.
211 4 yannick quenec'hdu
212
h2. Comment ça marche
213
214 6 yannick quenec'hdu
Lorsque vous recevez un courriel, Redmine utilise l'adresse de la messagerie afin de trouver l'utilisateur correspondant. Les courriels reçus de personnes inconnues ou pour des utilisateurs bloqués sont ignorés.
215 4 yannick quenec'hdu
216
Si le courriel contient un sujet de ce type "Re: *[xxxxxxx !#123]*", le courriel est traité comme une réponse et une note est ajoutée à la demande! !#123. Sinon, une nouvelle demande est créée
217
218
h3. Le projet cible
219
220 6 yannick quenec'hdu
Le projet cible peut être spécifié à l'aide de l'option @project@ dans les courriels. Pour ce faire, ce doit être l'identificateur du projet qui doit être utilisé et *pas * le nom du projet. Vous pouvez facilement retrouver l'identifiant dans l'URL.
221 4 yannick quenec'hdu
222 6 yannick quenec'hdu
Si vous n'utilisez pas cette option, les utilisateurs doivent préciser dans le corps du message à quel projet la demande doit être ajoutée. Cela peut être fait en insérant une ligne dans le corps du message, de cette manière : @"Project: foo"@.
223 4 yannick quenec'hdu
224 6 yannick quenec'hdu
Exemple (corps d'un message):
225 4 yannick quenec'hdu
226
<pre>
227
C'est une nouvelle demande qui doit être ajoutée au projet foo
228
Vous trouverez à la suite une description de la demande
229
[...]
230
231
Project: foo
232
</pre>
233
234
Vous pouvez définir un projet par défaut en utilisant l'option @project@ et permettre aux utilisateurs de modifier ce projet par défaut en utilisant l'option @allow-override@ dans les courriels.
235
236
<pre>
237
  # Create issues on project foo by default
238
  rake redmine:email:receive_imap [...] project=foo allow_override=project
239
</pre>
240
241 6 yannick quenec'hdu
Bien entendu, les autorisations utilisateurs sont vérifiées et ce message sera ignoré si l'utilisateur qui a envoyé ce courriel n'est pas autorisé à ajouter des demandes au projet foo.
242
Assurez-vous que le projet cible n'utilise pas  des champs personnalisés *obligatoires* sans valeur par défaut pour les demandes, 
243 4 yannick quenec'hdu
sinon la création de la demande va échouer.
244 1 yannick quenec'hdu
245
h3. Attributs des demandes
246 5 yannick quenec'hdu
247 6 yannick quenec'hdu
Sur la base des options que vous utilisez lors de l'émission des courriels (voir l'option @allow-override@), les utilisateurs peuvent être en mesure de modifier un certain nombre attribut lors de la présentation d'une demande
248 5 yannick quenec'hdu
249 6 yannick quenec'hdu
Cela peut être réalisé en utilisant des mots clefs dans le corps du message (tels que l@Project@): @Tracker@, @Category@, @Priority@, @Status@.
250 5 yannick quenec'hdu
251
Exemple (Corps d'un message):
252
253
<pre>
254
C'est une nouvelle demande qui modifie certains attributs
255
[...]
256
257
Project: foo
258
Tracker: Bug
259
Priority: Urgent
260
Status: Resolved
261
</pre>
262
263
h3. Observateurs
264
265 6 yannick quenec'hdu
Si un utilisateur qui adresse un message possède les permissions "Ajouter des observateurs", les utilisateurs qui sont présents dans le champ A ou Cc du message sont automatiquement ajoutés comme observateurs de la demande créée
266 5 yannick quenec'hdu
267
h3. Format des courriels et pièces jointes
268
269 6 yannick quenec'hdu
Redmine essaie d'utiliser la partie textuelle (plain text) d'un courriel pour remplir la demande. Si un courriel au format HTML est reçu, les balises HTML sont retirées du corps du message.
270 5 yannick quenec'hdu
271 6 yannick quenec'hdu
Les pièces jointes présentes dans un courriel sont automatiquement ajoutées à la demande, seulement si la taille n'excède pas [[FrRedmineSettings#Taille-max-des-fichiers-attachés|la taille maximum]] définie dans le paramétrage de Redmine