mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-12 01:37:40 +02:00
feat(mails): send supplier document requests over each store's own SMTP
Replaces the mailto: link with a server-side send, so the message carries the store's signature and logo instead of depending on each workstation's Outlook. Store record (groups): - address, phone and logo (data URI, 200 KB cap) feed the mail signature - per-store SMTP settings: host, port, SSL/STARTTLS, credentials, sender address and display name, with an enable switch - "test connection" button verifies the server without sending anything - the empty-form literal, previously repeated five times, becomes one constant Sending: - nodemailer transport built per store from its own settings - multipart mail: plain-text alternative plus HTML whose signature embeds the logo as an inline CID attachment, which Outlook renders without the remote image blocking that a data: URI would hit - delivery details are HTML-escaped - Reply-To set to the store address; the row shows a spinner and refuses a second click while a send is in flight Credentials: - the SMTP password is never returned to the client; a response-layer sanitizer strips it from every /api payload and replaces it with a smtpPasswordSet flag, covering the ten-plus queries that join full group rows into deliveries, orders and user relations - an empty password field on save keeps the stored one rather than clearing it Verified end-to-end against a local SMTP server: transport, auth, From/Reply-To, multipart structure and the inline logo attachment. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHdE9nEh8zHhQNGpCgrtYe
This commit is contained in:
14 files changed
+994
-209
No files matched your search
@@ -46,6 +46,19 @@ CREATE TABLE IF NOT EXISTS "groups" (
|
||||
"nocodb_supplier_column_name" varchar,
|
||||
"nocodb_due_date_column_name" varchar,
|
||||
"webhook_url" varchar(500),
|
||||
-- Coordonnées du magasin (signature des mails fournisseurs)
|
||||
"address" text,
|
||||
"phone" varchar(50),
|
||||
"logo" text,
|
||||
-- Configuration SMTP propre au magasin
|
||||
"smtp_enabled" boolean DEFAULT false,
|
||||
"smtp_host" varchar(255),
|
||||
"smtp_port" integer,
|
||||
"smtp_secure" boolean DEFAULT false,
|
||||
"smtp_user" varchar(255),
|
||||
"smtp_password" varchar(255),
|
||||
"smtp_sender_email" varchar(255),
|
||||
"smtp_sender_name" varchar(255),
|
||||
"created_at" timestamp DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" timestamp DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user