Matthias Endler
11c428d4ff
fix(ses): emit List-Unsubscribe inside the header section, not the body
...
The raw MIME template in sendRawEmail produced a blank line between Content-Type and List-Unsubscribe whenever no custom headers were passed, because the ternary for custom headers expanded to an empty string surrounded by newlines.
Per RFC 5322 §2.1 a blank line terminates the header section, so List-Unsubscribe ended up as the first line of the body. Lenient clients (Gmail, Outlook) recover; strict clients (Thunderbird) do not, breaking one-click unsubscribe and degrading Gmail/Yahoo bulk-sender deliverability signals.
Collect optional headers (custom + List-Unsubscribe) into an array, filter empties, and append them to the Content-Type line with a single newline separator. No codepath can now produce a blank line inside the header block.
2026-04-30 15:20:06 +02:00
Dries Augustyns
2eb407993b
feat: add configurable attachment limits for email service
...
Closes #358
2026-04-29 08:48:03 +02:00
Dries Augustyns
10946511b0
feat: enhance contact data handling by filtering empty strings and allowing null to delete fields
2026-04-27 16:59:18 +02:00
Dries Augustyns
5f741c66c7
fix: update project icon colors for improved visibility and consistency
2026-04-24 19:23:33 +02:00
Dries Augustyns
d7eb85ffdd
fix: update project disabled messages for clarity and consistency
2026-04-24 19:21:07 +02:00
Dries Augustyns
1c89ed083e
feat: implement CommandPalette for enhanced navigation and recent pages tracking
2026-04-24 18:42:04 +02:00
Dries Augustyns
f40cc86cec
fix: Harmonize rings and hover states
2026-04-24 16:01:18 +02:00
Dries Augustyns
6f31fa2503
feat: add updateActiveProject function for in-place project updates
2026-04-24 14:58:06 +02:00
Dries Augustyns
98f1e80fca
fix: prevent unnecessary state updates in search input effect
2026-04-24 13:49:16 +02:00
Dries Augustyns
c1bcd358cc
fix: Consistency across buttons and labels
2026-04-24 13:35:25 +02:00
Dries Augustyns
517753c420
fix: Consistency across cards
2026-04-24 12:54:43 +02:00
Dries Augustyns
ab3edd7dc9
fix: improve layout and accessibility of workflow header and buttons
2026-04-24 12:09:54 +02:00
Dries Augustyns
c910d20bb7
feat: Enhance ease of use of workflow editor
2026-04-24 11:56:43 +02:00
Dries Augustyns
bdc9b30ef2
fix: standardize step type labels and update visual styles in workflow components
2026-04-24 10:17:10 +02:00
Dries Augustyns
c8190b953f
fix: Content negotiation for xml and txt
2026-04-23 08:04:39 +02:00
Dries Augustyns
1637d54e1b
fix: add project name and sender email parameters to phishing content check
2026-04-22 22:03:57 +02:00
Dries Augustyns
15294a40d8
fix: add project name and sender email parameters to phishing content check
2026-04-22 22:03:53 +02:00
Dries Augustyns
bb78c86c40
fix: update phishing confidence threshold to 95%
2026-04-22 21:59:34 +02:00
Dries Augustyns
208c809a90
fix: Add in-memory cache for lower-confidence phishing checks
2026-04-22 07:40:23 +02:00
Dries Augustyns
b7eb2549d4
fix: turn warning into success log
2026-04-21 22:08:07 +02:00
Dries Augustyns
91d0d2d297
fix: update response format for phishing analysis and improve JSON parsing comment
2026-04-21 21:53:16 +02:00
Dries Augustyns
862875428d
fix: log message for projects passing phishing checks
2026-04-21 21:49:57 +02:00
Dries Augustyns
2da8b065d0
feat: implement phishing detection using OpenRouter API with configurable sampling rate
2026-04-21 21:28:31 +02:00
Dries Augustyns
60146fcc10
ui: replace custom loading spinners with IconSpinner component across multiple files
2026-04-21 16:28:03 +02:00
Dries Augustyns
c278a0fd94
feat: add className prop to EmptyState component for custom styling
2026-04-21 10:31:17 +02:00
Dries Augustyns
0b3aa28101
feat: add middleware support for .md file rewrites
2026-04-21 10:29:15 +02:00
Dries Augustyns
ecaf99665a
ui: Update empty states
2026-04-21 10:24:35 +02:00
Dries Augustyns
3d9b4e4eb3
ui: Update empty states
2026-04-21 10:22:05 +02:00
Dries Augustyns
e048fc1570
feat: implement meter event processing with queue for Stripe billing
2026-04-20 21:30:52 +02:00
Dries Augustyns
4322de929a
fix: reconcile totalRecipients in CampaignService to prevent stuck campaigns
...
closes #348
2026-04-20 20:15:56 +02:00
Dries Augustyns and GitHub
bfdfde68fb
Merge pull request #352 from wcatbb/next
2026-04-20 19:48:04 +02:00
Dries Augustyns
3649392b47
fix: Sync display name in TemplateSearchPicker when initialName changes
2026-04-20 19:47:39 +02:00
Dries Augustyns
cbde3cce3f
fix: Sync display name in TemplateSearchPicker when initialName changes
2026-04-20 19:38:20 +02:00
Dries Augustyns
b79d416667
feat: implement AWS SNS signature verification in SecurityService
2026-04-20 18:40:19 +02:00
Dries Augustyns
bf12392b88
feat: integrate DOMPurify for sanitizing HTML content
2026-04-20 18:33:23 +02:00
Dries Augustyns and GitHub
35a830fa7b
Merge pull request #350 from useplunk/dependabot/npm_and_yarn/next-16.2.3
2026-04-20 18:26:00 +02:00
Dries Augustyns
545d733794
docs: Add content negotiation to apps/wiki
2026-04-20 17:51:02 +02:00
Dries Augustyns
37ed1e49b7
fix: Implement content negotiation for markdown and html in middleware
2026-04-20 17:20:34 +02:00
Dries Augustyns
df76be1b87
feat: Add accept/markdown to apps/landing
2026-04-20 17:09:56 +02:00
Dries Augustyns
bd5a085802
feat: Add onboarding flow
2026-04-19 11:26:12 +02:00
Dries Augustyns
bc4c79235e
Resolve linting error
2026-04-19 10:03:14 +02:00
Dries Augustyns
f2ebce0ef2
feat: Enhance login forms with last used authentication method
2026-04-19 09:53:28 +02:00
Dries Augustyns
52fc7f73ce
ui: Use Link instead of a
2026-04-19 09:18:50 +02:00
Dries Augustyns
428079e632
ui: Transparent logo backgrounds
2026-04-19 09:09:46 +02:00
Dries Augustyns
19ea8b0122
ui: Polish details
2026-04-19 09:03:50 +02:00
Dries Augustyns
6fdc29fc0f
ui: Fix double period in SEO description
2026-04-18 20:19:17 +02:00
Dries Augustyns
c91d8c2e29
ui: Polish marketing website
2026-04-18 13:39:22 +02:00
Dries Augustyns
28fe7093f4
ui: Enhance contact details page with improved layout and loading indicators
2026-04-17 12:31:51 +02:00
Dries Augustyns
0803fd7bc4
ui: Clean up empty states, modals, animations
2026-04-17 12:27:40 +02:00
Dries Augustyns
03a058ad48
ui: Update user management pages
2026-04-17 11:03:12 +02:00