blob: fe1043b0d33e8a35af624b597120438406c4f8cf [file] [log] [blame] [view]
# James' extensions for ClamAV
This module is for developing and delivering extensions to James for the [ClamAV](https://www.clamav.net/) (the antivirus engine) integration.
Currently, this module provides `ClamAVScan` mailet that talks directly with ClamAV via unix socket to scan virus for every
incoming mail. Upon having virus, mail will be redirected to `virus` processor with configurable behavior for further processing.
E.g:
```xml
<processor state="local-delivery" enableJmx="true">
<mailet match="All" class="org.apache.james.clamav.ClamAVScan">
<host>clamav</host>
<port>3310</port>
<onMailetException>ignore</onMailetException>
</mailet>
<!-- If infected go to virus processor -->
<mailet match="HasMailAttributeWithValue=org.apache.james.infected, true" class="ToProcessor">
<processor>virus</processor>
</mailet>
</processor>
<processor state="virus" enableJmx="false">
<mailet match="All" class="ToRepository">
<repositoryPath>cassandra://var/mail/virus/</repositoryPath>
</mailet>
</processor>
```
To run James with this ClamAV integration, please use James's jar extension mechanism.
We also provide a sample [docker-compose.yml](docker-compose.yml) on how to setup the James <-> ClamAV integration.