diff --git a/src/UnicaenMail/Entity/HasMailsInterface.php b/src/UnicaenMail/Entity/HasMailsInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..2859ec8a8e88601f104690e71265f3a7bc4b01d9
--- /dev/null
+++ b/src/UnicaenMail/Entity/HasMailsInterface.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace UnicaenMail\Entity;
+
+use UnicaenMail\Entity\Db\Mail;
+use UnicaenRenderer\Entity\Db\Template;
+
+interface HasMailsInterface
+{
+
+    public function getMails(): array;
+    public function hasMail(Mail $mail): bool;
+    public function addMail(Mail $mail): void;
+    public function removeMail(Mail $mail): void;
+    public function hasMailWithTemplateCode(string|Template $template): bool;
+
+}
\ No newline at end of file
diff --git a/src/UnicaenMail/Entity/HasMailsTrait.php b/src/UnicaenMail/Entity/HasMailsTrait.php
new file mode 100644
index 0000000000000000000000000000000000000000..73663ef4158600c9d7b64c340377ed53bf09b9f2
--- /dev/null
+++ b/src/UnicaenMail/Entity/HasMailsTrait.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace UnicaenMail\Entity;
+
+use Doctrine\Common\Collections\Collection;
+use UnicaenMail\Entity\Db\Mail;
+use UnicaenRenderer\Entity\Db\Template;
+
+trait HasMailsTrait
+{
+
+    protected Collection $mails;
+
+    /** @return  Mail[]  */
+    public function getMails(): array
+    {
+        return $this->mails->toArray();
+    }
+
+    public function hasMail(Mail $mail): bool
+    {
+        return $this->mails->contains($mail);
+    }
+
+    public function addMail(Mail $mail): void
+    {
+        if (!$this->hasMail($mail)) { $this->mails->add($mail); }
+    }
+
+    public function removeMail(Mail $mail): void
+    {
+        $this->removeMail($mail);
+    }
+
+    public function hasMailWithTemplateCode(string|Template $template): bool
+    {
+        $code = ($template instanceof Template)?$template->generateTag():$template;
+
+        /** @var Mail $mail */
+        foreach ($this->mails as $mail) {
+            $motsClefs = explode("||",$mail->getMotsClefs());
+            if (in_array($code, $motsClefs)) return true;
+        }
+        return false;
+    }
+
+}
\ No newline at end of file