diff --git a/tests/camel-kamelets-itest/pom.xml b/tests/camel-kamelets-itest/pom.xml
index 922f4370c..4b734d8bc 100644
--- a/tests/camel-kamelets-itest/pom.xml
+++ b/tests/camel-kamelets-itest/pom.xml
@@ -35,6 +35,8 @@
*IT
+
+ ${project.basedir}/../../kamelets
diff --git a/tests/camel-kamelets-itest/src/test/resources-filtered/citrus-application.properties b/tests/camel-kamelets-itest/src/test/resources-filtered/citrus-application.properties
index 033b35468..cec34f39a 100644
--- a/tests/camel-kamelets-itest/src/test/resources-filtered/citrus-application.properties
+++ b/tests/camel-kamelets-itest/src/test/resources-filtered/citrus-application.properties
@@ -28,6 +28,13 @@ citrus.camel.cli.max.attempts=10
citrus.camel.cli.version=${camel.version}
# Kamelets version (should point to the current snapshot release version)
citrus.camel.cli.kamelets.version=${project.version}
+# Load the Kamelets from this working tree rather than from a resolved
+# camel-kamelets artifact, so the tests actually exercise the catalog built in
+# the same run. The version property above is not sufficient on its own: Camel
+# JBang consumes camel-kamelets.version as a JBang script property (the //DEPS
+# line in CamelJBang.java), which Citrus' system property cannot reach, so the
+# run silently falls back to the released catalog. See #2984.
+citrus.camel.cli.kamelets.local.dir=${kamelets.local.dir}
# Enable dump of Camel CLI integration output
citrus.camel.cli.dump.integration.output=true
diff --git a/tests/camel-kamelets-itest/src/test/resources/mail/mail-sink-pipe.yaml b/tests/camel-kamelets-itest/src/test/resources/mail/mail-sink-pipe.yaml
index c021891a6..baba0f504 100644
--- a/tests/camel-kamelets-itest/src/test/resources/mail/mail-sink-pipe.yaml
+++ b/tests/camel-kamelets-itest/src/test/resources/mail/mail-sink-pipe.yaml
@@ -33,6 +33,11 @@ spec:
kind: Kamelet
name: mail-sink
properties:
+ # The Citrus mail server this test starts is a plaintext SMTP server, so
+ # the protocol has to be pinned. mail-sink defaults to smtps (implicit
+ # TLS) since #2956, which is the right default for real deployments but
+ # cannot complete a handshake against the mock.
+ protocol: "smtp"
connectionHost: "{{mail.host}}"
connectionPort: "{{mail.port}}"
username: "{{mail.username}}"