n8n-nodes-emailmd
n8n community node do wysyłania emaili renderowanych z Markdown za pomocą emailmd.
Funkcje
- Pisz treść emaila w Markdown zamiast HTML
- Obsługa YAML frontmatter (
preheader,theme) - Wbudowane motywy:
default,light,dark - Nadpisywanie kolorów i typografii motywu
- Wsparcie dla: To, CC, BCC, Reply-To, attachments
- Automatyczna generacja wersji plain-text
- Dyrektywy emailmd:
{button},:::callout,:::hero,:::footer
Instalacja
Docker z lokalnym volume (zalecane)
Typowa konfiguracja n8n w Dockerze ma volume zamontowany w kontenerze pod /home/node/.n8n.
Na hoście odpowiada mu katalog, który przekazujesz przez -v lub w docker-compose.yml.
Krok 1 — sklonuj i zbuduj plugin na hoście
git clone ssh://gitea@git.cynarski.pl:65522/n8n/emailmd.git n8n-nodes-emailmd
cd n8n-nodes-emailmd
npm install
npm run build
Krok 2 — skopiuj zbudowany plugin do volume n8n
Zakładając, że volume hosta jest np. w ~/n8n-data:
mkdir -p ~/n8n-data/custom/node_modules/n8n-nodes-emailmd
cp -r dist package.json node_modules ~/n8n-data/custom/node_modules/n8n-nodes-emailmd/
Katalog
customwewnątrz volume jest automatycznie skanowany przez n8n jako lokalne node_modules.
Krok 3 — docker-compose.yml
Dodaj zmienną środowiskową N8N_CUSTOM_EXTENSIONS wskazującą na katalog custom wewnątrz kontenera:
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
volumes:
- ~/n8n-data:/home/node/.n8n
restart: unless-stopped
Następnie zrestartuj kontener:
docker compose down && docker compose up -d
Alternatywa — instalacja wewnątrz kontenera
Jeśli wolisz nie kopiować plików ręcznie, możesz zainstalować plugin bezpośrednio w działającym kontenerze:
# wejdź do kontenera
docker exec -it -u node <nazwa_kontenera> sh
# zainstaluj z lokalnej ścieżki (jeśli masz volume)
cd /home/node/.n8n
mkdir -p custom
cd custom
npm init -y
npm install /home/node/.n8n/n8n-nodes-emailmd # jeśli skopiowałeś katalog do volume
# lub z git (wymaga git w kontenerze)
npm install git+ssh://gitea@git.cynarski.pl:65522/n8n/emailmd.git
Po wyjściu z kontenera zrestartuj n8n:
docker compose restart n8n
Weryfikacja
Po uruchomieniu n8n wyszukaj w edytorze node o nazwie "Send Email (Markdown)" — jeśli się pojawi, instalacja przebiegła pomyślnie.
Opcja 1 — npm link (lokalny development)
# 1. Zbuduj node
cd /path/to/n8n-nodes-emailmd
npm install
npm run build
# 2. Zlinkuj lokalnie
npm link
# 3. W katalogu n8n
cd ~/.n8n
mkdir -p custom
cd custom
npm link n8n-nodes-emailmd
Opcja 2 — Ścieżka do custom nodes w n8n
Ustaw zmienną środowiskową przed uruchomieniem n8n:
export N8N_CUSTOM_EXTENSIONS="/path/to/n8n-nodes-emailmd"
n8n start
Opcja 3 — npm install (po opublikowaniu)
npm install n8n-nodes-emailmd
Konfiguracja
Credentials (SMTP)
Dodaj credentials typu SMTP:
- Host — serwer SMTP (np.
smtp.gmail.com) - Port —
465(SSL) lub587(STARTTLS) - Secure —
truedla portu 465 - User / Password
Parametry node
| Pole | Opis |
|---|---|
| From Name | Nazwa nadawcy |
| From Email | Adres nadawcy (wymagany) |
| To | Odbiorcy (przecinkami) |
| Subject | Temat (wymagany) |
| Markdown | Treść w Markdown (wymagany) |
| Theme | Motyw: default / light / dark |
| Theme Overrides | Nadpisanie kolorów i fontów |
| Attachments | Nazwy binary properties |
Przykładowy Markdown
---
preheader: Krótki podgląd w skrzynce odbiorczej
---
# Witaj {{$json.name}}!
Dziękujemy za rejestrację. Twoje konto jest gotowe.
:::callout
Twój kod aktywacyjny: **{{$json.code}}**
:::
[Aktywuj konto](https://example.com/activate){button}
---
Jeśli masz pytania, odpowiedz na tego emaila.
Obsługiwana składnia emailmd
- Przyciski:
[tekst](url){button}lub{button .success},{button .danger} - Callout:
:::callout ... ::: - Hero:
:::hero ... ::: - Header/Footer:
:::header ... :::,:::footer ... ::: - Wyrównanie:
:::centered ... ::: - Tabele, listy, kod, obrazy — standardowy Markdown