diff --git a/templates/MagicLink.tsx b/templates/MagicLink.tsx
new file mode 100644
index 0000000..1a4f5b4
--- /dev/null
+++ b/templates/MagicLink.tsx
@@ -0,0 +1,140 @@
+import {
+ Body,
+ Button,
+ Container,
+ Heading,
+ Html,
+ Preview,
+ Section,
+ Text,
+} from 'jsx-email'
+import { Signature } from './components/Signature.tsx'
+import type { Template } from '../types.ts'
+import type { JSX } from 'preact'
+import {
+ bodyCss,
+ buttonCss,
+ headingCss,
+ messageCss,
+ rootCss,
+ textCss,
+} from './styles/base.tsx'
+import { BaseStyle } from './styles/base.tsx'
+
+function MagicLink(
+ { message, device, ip, endpoint }: {
+ message?: string
+ device?: string
+ ip?: string
+ endpoint: string
+ },
+) {
+ return (
+
+
+ Nouveau lien de connection
+
+
+
+
+ Nouveau lien de connection
+
+
+ Une nouvelle demande de connection à été effectuée sur votre
+ compte.
+
+
+
+ {'Date : '}
+ {dateNow()}
+
+
+
+ {'Appareil : '}
+ {device?.length ? device : 'Iconnue'}
+
+
+
+ {'Ip : '}
+ {ip?.length ? ip : 'Inconnue'}
+
+
+ {message?.length ? {message} : ''}
+
+ Si vous n'êtes pas à l'origine de cette demande vous pouvez
+ ignorer ce mail en toute sécurité.
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+function dateNow() {
+ return new Date().toLocaleString('fr', {
+ weekday: 'long',
+ day: 'numeric',
+ month: 'long',
+ year: 'numeric',
+ hour: 'numeric',
+ minute: 'numeric',
+ })
+}
+
+const infoCss: JSX.CSSProperties = {
+ ...textCss,
+ opacity: 0.7,
+}
+
+const detailsCss: JSX.CSSProperties = {
+ ...textCss,
+ backgroundColor: rootCss.backgroundColor,
+ padding: '0.5rem',
+ borderRadius: '0.4rem',
+}
+
+const template: Template[0]> = {
+ props: [
+ {
+ name: 'Message',
+ description: "Message à afficher à l'utilisateur.",
+ required: false,
+ multiline: false,
+ tag: 'message',
+ },
+ {
+ name: 'Device',
+ description: 'User-Agent (ou equiv.) de la demande.',
+ required: false,
+ multiline: false,
+ tag: 'device',
+ },
+ {
+ name: 'Ip',
+ description: 'Addresse ip de la demande.',
+ required: false,
+ multiline: false,
+ tag: 'ip',
+ },
+ {
+ name: 'Endpoint',
+ description: 'Endpoint du lien "Me connecter".',
+ required: true,
+ multiline: false,
+ tag: 'endpoint',
+ },
+ ],
+ name: 'magic-link',
+ description: 'Coh@bit connection magic link.',
+ builder: MagicLink,
+}
+
+export default template
diff --git a/templates/mod.ts b/templates/mod.ts
index 8b0ed66..4a1ef74 100644
--- a/templates/mod.ts
+++ b/templates/mod.ts
@@ -1,2 +1,3 @@
+export { default as magicLinkTemplate } from './MagicLink.tsx'
export { default as messageTemplate } from './Message.tsx'
export { default as welcomeTemplate } from './Welcome.tsx'