FrRedmineReceivingEmails » History » Version 7
yannick quenec'hdu, 2011-09-08 14:19
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 | 7 | yannick quenec'hdu | h3. Lire des courriels depuis une entrée standard |
167 | 4 | yannick quenec'hdu | |
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 |