You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by GitBox <gi...@apache.org> on 2022/08/15 09:47:22 UTC

[GitHub] [james-project] quantranhong1999 opened a new pull request, #1126: JAMES-3775 ClamAV integration

quantranhong1999 opened a new pull request, #1126:
URL: https://github.com/apache/james-project/pull/1126

   As a user, I should NEVER receive an email containing a Virus.
   RSpamDScanner mailet should push virus mail to `spamProcessor` for further processing (configurable).
   
   E.g:
   - Hard reject processing (store them in a mail repository and not deliver them):
   ```xml
         <processor state="spam" enableJmx="false">
           <mailet match="All" class="ToRepository">
             <repositoryPath>file://var/mail/spam/</repositoryPath>
           </mailet>
         </processor>
   ```
   - Soft reject processing (Remove attachment, modify the subject with [VIRUS] and add headers...):
   ```xml
         <processor state="spam" enableJmx="false">
           <mailet match="All" class="StripAttachment">
             <remove>all</remove>
             <pattern>.*</pattern>
           </mailet>
           <mailet match="All" class="AddSubjectPrefix">
             <subjectPrefix>[VIRUS]</subjectPrefix>
           </mailet>
         </processor>
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] vttranlina commented on a diff in pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
vttranlina commented on code in PR #1126:
URL: https://github.com/apache/james-project/pull/1126#discussion_r946466733


##########
third-party/rspamd/src/main/java/org/apache/james/rspamd/model/AnalysisResult.java:
##########
@@ -121,6 +132,10 @@ public Optional<String> getDesiredRewriteSubject() {
         return desiredRewriteSubject;
     }
 
+    public boolean getHasVirus() {

Review Comment:
   `hasVirus()` 
   I bet Benoit will suggest that



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] chibenwa merged pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
chibenwa merged PR #1126:
URL: https://github.com/apache/james-project/pull/1126


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] vttranlina commented on a diff in pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
vttranlina commented on code in PR #1126:
URL: https://github.com/apache/james-project/pull/1126#discussion_r946476062


##########
third-party/rspamd/src/main/java/org/apache/james/rspamd/model/AnalysisResult.java:
##########
@@ -94,15 +102,18 @@ public String getDescription() {
     private final float score;
     private final float requiredScore;
     private final Optional<String> desiredRewriteSubject;
+    private final boolean hasVirus;
 
     public AnalysisResult(@JsonProperty("action") Action action,
                           @JsonProperty("score") float score,
                           @JsonProperty("required_score") float requiredScore,
-                          @JsonProperty("subject") Optional<String> desiredRewriteSubject) {
+                          @JsonProperty("subject") Optional<String> desiredRewriteSubject,

Review Comment:
   Do we still need `@JsonProperty` here?
   I see `AnalysisResultDeserializer` already



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] chibenwa commented on pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
chibenwa commented on PR #1126:
URL: https://github.com/apache/james-project/pull/1126#issuecomment-1214842237

   Don't forget to document the ClamAV set up (docker compose + README)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] quantranhong1999 commented on pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
quantranhong1999 commented on PR #1126:
URL: https://github.com/apache/james-project/pull/1126#issuecomment-1216484102

   The latest 3 fixup commits solved the concerns.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] chibenwa commented on a diff in pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
chibenwa commented on code in PR #1126:
URL: https://github.com/apache/james-project/pull/1126#discussion_r945577074


##########
third-party/rspamd/src/test/resources/mail/attachment/inlineVirusTextAttachment.eml:
##########
@@ -0,0 +1,24 @@
+To: me@linagora.com
+From: Benoit Tellier <me...@linagora.com>
+Subject: Mail with text attachment
+Message-ID: <be...@any.com>
+Date: Thu, 13 Oct 2016 10:26:20 +0200
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------4FD2D252DB453546C22C25B2"
+
+This is a multi-part message in MIME format.
+--------------4FD2D252DB453546C22C25B2
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 7bit
+
+I'm the body!
+
+--------------4FD2D252DB453546C22C25B2
+Content-Disposition: inline
+Content-Type: text/plain; charset=UTF-8;
+ name="attachment.txt"
+Content-ID: <id>
+
+X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Review Comment:
   Told you <3



##########
third-party/rspamd/src/main/java/org/apache/james/rspamd/RSpamDScanner.java:
##########
@@ -35,26 +36,42 @@
 import org.apache.mailet.Mail;
 import org.apache.mailet.PerRecipientHeaders;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class RSpamDScanner extends GenericMailet {
     public static final AttributeName FLAG_MAIL = AttributeName.of("org.apache.james.rspamd.flag");
     public static final AttributeName STATUS_MAIL = AttributeName.of("org.apache.james.rspamd.status");
+    private static final Logger LOGGER = LoggerFactory.getLogger(RSpamDScanner.class);
 
     private final RSpamDHttpClient rSpamDHttpClient;
+    private Optional<String> spamProcessor;
 
     @Inject
     public RSpamDScanner(RSpamDHttpClient rSpamDHttpClient) {
         this.rSpamDHttpClient = rSpamDHttpClient;
     }
 
+    @Override
+    public void init() {
+        spamProcessor = getInitParameterAsOptional("spamProcessor");
+    }
+
     @Override
     public void service(Mail mail) throws MessagingException {
         AnalysisResult rSpamDResult = rSpamDHttpClient.checkV2(new MimeMessageInputStream(mail.getMessage())).block();
 
         mail.getRecipients()
             .forEach(recipient -> appendRSpamDResultHeader(mail, recipient, rSpamDResult));
+
+        if (rSpamDResult.getHasVirus()) {
+            if (isDebug()) {
+                LOGGER.debug("Detected a mail containing virus. Sending mail {} to {}", mail, spamProcessor);

Review Comment:
   You should not be logging this if spamProcessor is not specified: this is very confusing...



##########
third-party/rspamd/src/main/java/org/apache/james/rspamd/RSpamDScanner.java:
##########
@@ -35,26 +36,42 @@
 import org.apache.mailet.Mail;
 import org.apache.mailet.PerRecipientHeaders;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class RSpamDScanner extends GenericMailet {
     public static final AttributeName FLAG_MAIL = AttributeName.of("org.apache.james.rspamd.flag");
     public static final AttributeName STATUS_MAIL = AttributeName.of("org.apache.james.rspamd.status");
+    private static final Logger LOGGER = LoggerFactory.getLogger(RSpamDScanner.class);
 
     private final RSpamDHttpClient rSpamDHttpClient;
+    private Optional<String> spamProcessor;
 
     @Inject
     public RSpamDScanner(RSpamDHttpClient rSpamDHttpClient) {
         this.rSpamDHttpClient = rSpamDHttpClient;
     }
 
+    @Override
+    public void init() {
+        spamProcessor = getInitParameterAsOptional("spamProcessor");
+    }
+
     @Override
     public void service(Mail mail) throws MessagingException {
         AnalysisResult rSpamDResult = rSpamDHttpClient.checkV2(new MimeMessageInputStream(mail.getMessage())).block();
 
         mail.getRecipients()
             .forEach(recipient -> appendRSpamDResultHeader(mail, recipient, rSpamDResult));
+
+        if (rSpamDResult.getHasVirus()) {
+            if (isDebug()) {
+                LOGGER.debug("Detected a mail containing virus. Sending mail {} to {}", mail, spamProcessor);

Review Comment:
   Also I'm in favor of always adding this helpful debug log, when a virus is detected: this is very valuable information! I would go as far as logging at the INFO level.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] quantranhong1999 commented on a diff in pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
quantranhong1999 commented on code in PR #1126:
URL: https://github.com/apache/james-project/pull/1126#discussion_r946619479


##########
third-party/rspamd/README.md:
##########
@@ -24,13 +25,39 @@ guice.extension.task=org.apache.james.rspamd.module.RSpamDTaskExtensionModule
 </listener>
 ```
 
-- Declare the RSpamD mailet for custom mail processing. Mailet pipeline Eg:
-
-```
-<mailet match="All" class="org.apache.james.rspamd.RSpamDScanner"></mailet>
-<mailet match="IsMarkedAsSpam=org.apache.james.rspamd.status" class="WithStorageDirective">
-    <targetFolderName>Spam</targetFolderName>
-</mailet>
+- Declare the RSpamD mailet for custom mail processing. 

Review Comment:
   I will remain the threads here as a reminder in case Tung PR got merged first.
   TBH I prefer that got merged eventually.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] quantranhong1999 commented on pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
quantranhong1999 commented on PR #1126:
URL: https://github.com/apache/james-project/pull/1126#issuecomment-1216133840

   The latest 2 commits solved the comments.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[GitHub] [james-project] Arsnael commented on a diff in pull request #1126: JAMES-3775 ClamAV integration

Posted by GitBox <gi...@apache.org>.
Arsnael commented on code in PR #1126:
URL: https://github.com/apache/james-project/pull/1126#discussion_r946456386


##########
third-party/rspamd/README.md:
##########
@@ -24,13 +25,39 @@ guice.extension.task=org.apache.james.rspamd.module.RSpamDTaskExtensionModule
 </listener>
 ```
 
-- Declare the RSpamD mailet for custom mail processing. Mailet pipeline Eg:
-
-```
-<mailet match="All" class="org.apache.james.rspamd.RSpamDScanner"></mailet>
-<mailet match="IsMarkedAsSpam=org.apache.james.rspamd.status" class="WithStorageDirective">
-    <targetFolderName>Spam</targetFolderName>
-</mailet>
+- Declare the RSpamD mailet for custom mail processing. 

Review Comment:
   ```suggestion
   - Declare the Rspamd mailet for custom mail processing.
   ```
   Now that Tung started to fix the typo... :)



##########
third-party/rspamd/sample-configuration/mailetcontainer_distributed.xml:
##########
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+
+<!-- Read https://james.apache.org/server/config-mailetcontainer.html for further details -->
+
+<mailetcontainer enableJmx="true">
+
+    <context>
+        <!-- When the domain part of the postmaster mailAddress is missing, the default domain is appended.
+        You can configure it to (for example) <postmaster>postmaster@myDomain.com</postmaster> -->
+        <postmaster>postmaster</postmaster>
+    </context>
+
+    <spooler>
+        <threads>20</threads>
+        <errorRepository>cassandra://var/mail/error/</errorRepository>
+    </spooler>
+
+    <processors>
+        <processor state="root" enableJmx="true">
+            <mailet match="All" class="PostmasterAlias"/>
+            <mailet match="RelayLimit=30" class="Null"/>
+            <mailet match="All" class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+        </processor>
+
+        <processor state="error" enableJmx="true">
+            <mailet match="All" class="MetricsMailet">
+                <metricName>mailetContainerErrors</metricName>
+            </mailet>
+            <mailet match="All" class="Bounce">
+                <onMailetException>ignore</onMailetException>
+            </mailet>
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>cassandra://var/mail/error/</repositoryPath>
+                <onMailetException>propagate</onMailetException>
+            </mailet>
+        </processor>
+
+        <processor state="transport" enableJmx="true">
+            <matcher name="relay-allowed" match="org.apache.james.mailetcontainer.impl.matchers.Or">
+                <matcher match="SMTPAuthSuccessful"/>
+                <matcher match="SMTPIsAuthNetwork"/>
+                <matcher match="SentByMailet"/>
+                <matcher match="org.apache.james.jmap.mailet.SentByJmap"/>
+            </matcher>
+
+            <mailet match="All" class="RemoveMimeHeader">
+                <name>bcc</name>
+                <onMailetException>ignore</onMailetException>
+            </mailet>
+            <mailet match="All" class="RecipientRewriteTable">
+                <errorProcessor>rrt-error</errorProcessor>
+            </mailet>
+            <mailet match="RecipientIsLocal" class="ToProcessor">
+                <processor>local-delivery</processor>
+            </mailet>
+            <mailet match="HostIsLocal" class="ToProcessor">
+                <processor>local-address-error</processor>
+                <notice>550 - Requested action not taken: no such user here</notice>
+            </mailet>
+            <mailet match="relay-allowed" class="ToProcessor">
+                <processor>relay</processor>
+            </mailet>
+            <mailet match="All" class="ToProcessor">
+                <processor>relay-denied</processor>
+            </mailet>
+        </processor>
+
+        <processor state="local-delivery" enableJmx="true">
+            <mailet match="All" class="org.apache.james.rspamd.RSpamDScanner">

Review Comment:
   same remark, we should not forget to change it later



##########
third-party/rspamd/README.md:
##########
@@ -24,13 +25,39 @@ guice.extension.task=org.apache.james.rspamd.module.RSpamDTaskExtensionModule
 </listener>
 ```
 
-- Declare the RSpamD mailet for custom mail processing. Mailet pipeline Eg:
-
-```
-<mailet match="All" class="org.apache.james.rspamd.RSpamDScanner"></mailet>
-<mailet match="IsMarkedAsSpam=org.apache.james.rspamd.status" class="WithStorageDirective">
-    <targetFolderName>Spam</targetFolderName>
-</mailet>
+- Declare the RSpamD mailet for custom mail processing. 
+
+  You can specify the `virusProcessor` if you want to enable virus scanning for mail. Upon configurable `virusProcessor`
+you can specify how James process mail virus. We provide a sample Rspamd mailet and `virusProcessor` configuration:
+
+```xml
+<processor state="local-delivery" enableJmx="true">
+    <mailet match="All" class="org.apache.james.rspamd.RSpamDScanner">

Review Comment:
   Need to see with #1127 (depending which gets merged first^^)



##########
third-party/rspamd/docker-compose-distributed.yml:
##########
@@ -0,0 +1,82 @@
+version: '3'
+
+services:
+
+  james:
+    depends_on:
+      - elasticsearch
+      - cassandra
+      - tika
+      - rabbitmq
+      - s3
+      - rspamd
+    image: apache/james:distributed-latest
+    container_name: james
+    hostname: james.local
+    volumes:
+      - $PWD/target/apache-james-rspamd-3.8.0-SNAPSHOT-jar-with-dependencies.jar:/root/extensions-jars/james-server-rspamd.jar
+      - $PWD/sample-configuration/keystore:/root/conf/keystore
+      - $PWD/sample-configuration/extensions.properties:/root/conf/extensions.properties
+      - $PWD/sample-configuration/mailetcontainer_distributed.xml:/root/conf/mailetcontainer.xml
+      - $PWD/sample-configuration/listeners.xml:/root/conf/listeners.xml
+      - $PWD/sample-configuration/rspamd.properties:/root/conf/rspamd.properties
+      - $PWD/sample-configuration/webadmin.properties:/root/conf/webadmin.properties
+    ports:
+      - "80:80"
+      - "25:25"
+      - "110:110"
+      - "143:143"
+      - "465:465"
+      - "587:587"
+      - "993:993"
+      - "8000:8000"
+
+  elasticsearch:
+    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2

Review Comment:
   Still elasticsearch?



##########
third-party/rspamd/sample-configuration/mailetcontainer_memory.xml:
##########
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+
+<!-- Read https://james.apache.org/server/config-mailetcontainer.html for further details -->
+
+<mailetcontainer enableJmx="true">
+
+    <context>
+        <!-- When the domain part of the postmaster mailAddress is missing, the default domain is appended.
+        You can configure it to (for example) <postmaster>postmaster@myDomain.com</postmaster> -->
+        <postmaster>postmaster</postmaster>
+    </context>
+
+    <spooler>
+        <threads>20</threads>
+        <errorRepository>memory://var/mail/error/</errorRepository>
+    </spooler>
+
+    <processors>
+        <processor state="root" enableJmx="true">
+            <mailet match="All" class="PostmasterAlias"/>
+            <mailet match="RelayLimit=30" class="Null"/>
+            <mailet match="All" class="ToProcessor">
+                <processor>transport</processor>
+            </mailet>
+        </processor>
+
+        <processor state="error" enableJmx="true">
+            <mailet match="All" class="MetricsMailet">
+                <metricName>mailetContainerErrors</metricName>
+            </mailet>
+            <mailet match="All" class="Bounce">
+                <onMailetException>ignore</onMailetException>
+            </mailet>
+            <mailet match="All" class="ToRepository">
+                <repositoryPath>memory://var/mail/error/</repositoryPath>
+                <onMailetException>propagate</onMailetException>
+            </mailet>
+        </processor>
+
+        <processor state="transport" enableJmx="true">
+            <matcher name="relay-allowed" match="org.apache.james.mailetcontainer.impl.matchers.Or">
+                <matcher match="SMTPAuthSuccessful"/>
+                <matcher match="SMTPIsAuthNetwork"/>
+                <matcher match="SentByMailet"/>
+                <matcher match="org.apache.james.jmap.mailet.SentByJmap"/>
+            </matcher>
+
+            <mailet match="All" class="RemoveMimeHeader">
+                <name>bcc</name>
+                <onMailetException>ignore</onMailetException>
+            </mailet>
+            <mailet match="All" class="RecipientRewriteTable">
+                <errorProcessor>rrt-error</errorProcessor>
+            </mailet>
+            <mailet match="RecipientIsLocal" class="ToProcessor">
+                <processor>local-delivery</processor>
+            </mailet>
+            <mailet match="HostIsLocal" class="ToProcessor">
+                <processor>local-address-error</processor>
+                <notice>550 - Requested action not taken: no such user here</notice>
+            </mailet>
+            <mailet match="relay-allowed" class="ToProcessor">
+                <processor>relay</processor>
+            </mailet>
+            <mailet match="All" class="ToProcessor">
+                <processor>relay-denied</processor>
+            </mailet>
+        </processor>
+
+        <processor state="local-delivery" enableJmx="true">
+            <mailet match="All" class="org.apache.james.rspamd.RSpamDScanner">

Review Comment:
   idem



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org