Les propriétés de /properties/config.properties de configuration de l'alimentation par courrier électronique (cf Configuration de l'alimentation par courrier électronique) sont utilisées dans le fichier de configuration /properties/domain/feed.xml.
Filtrage du spam
Il est possible de filtrer le spam de l'alimentation pour éviter que trop de tickets soient créés dans la base, ou bien de créer les tickets mais de les clore automatiquement.
Utilisation des filtres prédéfinis
Deux bean implémentant des filtres prédéfinis sont fournis dans la distribution :
- subjectStartsWithSpamFilter, qui considère qu'un message est un spam si le sujet du message commence par une chaîne de caractères particulière
- subjectContainsSpamFilter, qui considère qu'un message est un spam si le sujet du message contient une chaîne de caractères particulière
On pourra par exemple considérer comme spam tous les messages dont le sujet commence par [SPAM] et les supprimer :
#feed.imap.spamFilterBean=subjectStartsWithSpamFilter #feed.imap.deleteSpam=true
Autre exemple, on peut considérer comme spam tous les messages dont le sujet contient *SPAM*, les transférer dans la catégorie n°5 et les clore automatiquement :
#feed.imap.spamFilterBean=subjectContainsSpamFilter #feed.imap.deleteSpam=false #feed.imap.spamCategoryId=5
Utilisation de plusieurs filtres
Pour utiliser plusieurs filtres (prédéfinis ou ajoutés), il faut déclarer les filtres dans le fichier /properties/domain/feed.xml, par exemple :
<bean id="subjectStartsWithSpamFilter"
class="org.esupportail.helpdesk.services.feed.imap.SubjectStartsWithSpamFilterImpl"
lazy-init="true" >
<property name="pattern" value="SPAM" />
</bean>
<bean id="mySpamFilter"
class="edu.domain.helpdesk.services.feed.imap.MySpamFilterImpl"
lazy-init="true" />
On déclarera ensuite le filtre delegatingSpamFilter de la classe DelegatingSpamFilterImpl comme s'appuyant sur les filtres précédents :
<bean id="delegatingSpamFilter"
class="org.esupportail.helpdesk.services.feed.imap.DelegatingSpamFilterImpl"
lazy-init="true" >
<property name="filters" >
<list>
<ref bean="subjectStartsWithSpamFilter" />
<ref bean="mySpamFilter" />
</list>
</bean>
Il suffit alors de déclarer delegatingSpamFilter comme le bean utilisé pour le filtrage dans le fichier /properties/config.properties :
#feed.imap.spamFilterBean=delegatingSpamFilter
Ne pas oublier de permettre la récupération automatique du fichier /properties/feed/feed.xml lors des prochaines mises à jour (cf Conservation des personnalisations lors des mises à jour).
Lecture de plusieurs comptes IMAP
Pour lire plusieurs comptes IMAP, qui peuvent par exemple être dirigés dans des catégories différentes, il faudra déclarer dans le fichier /properties/domain/feed.xml autant de beans correspondants semblables au bean accountReader, et les insérer dans l'attribut mailReaders du bean feeder.
Pour des comptes IMAP situés sur le même serveur, on trouvera par exemple :
<bean id="feeder" class="org.esupportail.helpdesk.services.feed.FeederImpl" lazy-init="true" >
<property name="mailReaders" >
<list>
<ref bean="accountReader1" />
<ref bean="accountReader2" />
</list>
</property>
</bean>
<bean id="abstractAccountReader" abstract="true" >
<property name="server" value="${feed.imap.server}" />
<property name="folder" value="${feed.imap.folder}" />
<property name="messageReader" ref="messageReader" />
<property name="domainService" ref="domainService" />
</bean>
<bean id="accountReader1" class="org.esupportail.helpdesk.services.feed.imap.ImapAccountReaderImpl" lazy-init="true" >
<property name="address" value="${feed.imap.address1}" />
<property name="account" value="${feed.imap.account1}" />
<property name="password" value="${feed.imap.password1}" />
<property name="categoryId" value="${feed.imap.categoryId1}" />
</bean>
<bean id="accountReader2" class="org.esupportail.helpdesk.services.feed.imap.ImapAccountReaderImpl" lazy-init="true" >
<property name="address" value="${feed.imap.address2}" />
<property name="account" value="${feed.imap.account2}" />
<property name="password" value="${feed.imap.password2}" />
<property name="categoryId" value="${feed.imap.categoryId2}" />
</bean>
<bean id="messageReader" class="org.esupportail.helpdesk.services.feed.imap.MessageReaderImpl" lazy-init="true" >
<property name="domainService" ref="domainService" />
<property name="i18nService" ref="i18nService" />
</bean>
Les propriétés d'accès aux comptes pourront ainsi être gérées dans le fichier /properties/config.properties :
feed.imap.server=imap.domain.edu feed.imap.address1=support1@domain.edu feed.imap.account1=support1 feed.imap.password1=secret1 feed.imap.categoryId1=45 feed.imap.address1=support2@domain.edu feed.imap.account1=support2 feed.imap.password1=secret2 feed.imap.categoryId1=63
Ne pas oublier de permettre la récupération automatique du fichier /properties/feed/feed.xml lors des prochaines mises à jour (cf Conservation des personnalisations lors des mises à jour).
Autres modes d'alimentation
Les lecteurs de boites à lettres IMAP fournis par défaut sont de la classe org.esupportail.helpdesk.services.feed.imap.ImapAccountReaderImpl.
L'ajout d'un autre mode d'alimentation se fait de la manière suivante :
- développer une classe implémentant l'interface org.esupportail.helpdesk.services.feed.AccountReader
- déclarer un bean de cette classe dans le fichier /properties/domain/feed.xml
- permettre la récupération de la nouvelle classe et du fichier /properties/domain/feed.xml lors de la prochaine mise à jour (cf Conservation des personnalisations lors des mises à jour).
Voir également : Web services