From 292182fa7f895688a63b970bb33866ee358a3e7f Mon Sep 17 00:00:00 2001 From: Tim Van Onckelen <2817556+TimVanOnckelen@users.noreply.github.com> Date: Wed, 4 Dec 2024 21:26:02 +0100 Subject: [PATCH] feat: Notification Email Templates (#13940) --- .../administration/email-notification.mdx | 6 + .../img/user-notifications-templates.png | Bin 0 -> 199469 bytes docs/docs/administration/system-settings.md | 4 + i18n/en.json | 12 +- i18n/nl.json | 10 ++ mobile/openapi/README.md | Bin 32070 -> 32447 bytes mobile/openapi/lib/api.dart | Bin 11620 -> 11793 bytes mobile/openapi/lib/api/notifications_api.dart | Bin 2154 -> 3978 bytes mobile/openapi/lib/api_client.dart | Bin 29819 -> 30193 bytes .../openapi/lib/model/system_config_dto.dart | Bin 7877 -> 8165 bytes .../system_config_template_emails_dto.dart | Bin 0 -> 3945 bytes .../model/system_config_templates_dto.dart | Bin 0 -> 3011 bytes mobile/openapi/lib/model/template_dto.dart | Bin 0 -> 2761 bytes .../lib/model/template_response_dto.dart | Bin 0 -> 3064 bytes open-api/immich-openapi-specs.json | 111 +++++++++++++++ open-api/typescript-sdk/src/fetch-client.ts | 29 ++++ server/src/config.ts | 14 ++ .../controllers/notification.controller.ts | 16 ++- server/src/dtos/notification.dto.ts | 10 ++ server/src/dtos/system-config.dto.ts | 23 +++ server/src/emails/album-invite.email.tsx | 84 +++++++---- server/src/emails/album-update.email.tsx | 93 +++++++++---- server/src/emails/welcome.email.tsx | 74 ++++++---- .../src/interfaces/notification.interface.ts | 5 + .../notification.repository.spec.ts | 4 + .../repositories/notification.repository.ts | 10 +- server/src/services/notification.service.ts | 76 +++++++++- .../services/system-config.service.spec.ts | 7 + server/src/utils/replace-template-tags.ts | 5 + web/package-lock.json | 2 +- .../notification-settings.svelte | 16 ++- .../template-settings.svelte | 131 ++++++++++++++++++ 32 files changed, 638 insertions(+), 104 deletions(-) create mode 100644 docs/docs/administration/img/user-notifications-templates.png create mode 100644 mobile/openapi/lib/model/system_config_template_emails_dto.dart create mode 100644 mobile/openapi/lib/model/system_config_templates_dto.dart create mode 100644 mobile/openapi/lib/model/template_dto.dart create mode 100644 mobile/openapi/lib/model/template_response_dto.dart create mode 100644 server/src/utils/replace-template-tags.ts create mode 100644 web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte diff --git a/docs/docs/administration/email-notification.mdx b/docs/docs/administration/email-notification.mdx index 93b105105..2f244f335 100644 --- a/docs/docs/administration/email-notification.mdx +++ b/docs/docs/administration/email-notification.mdx @@ -19,3 +19,9 @@ You can use [this guide](/docs/guides/smtp-gmail) to use Gmail's SMTP server. Users can manage their email notification settings from their account settings page on the web. They can choose to turn email notifications on or off for the following events: + +## Notification templates + +You can override the default notification text with custom templates in HTML format. You can use tags to show dynamic tags in your templates. + + diff --git a/docs/docs/administration/img/user-notifications-templates.png b/docs/docs/administration/img/user-notifications-templates.png new file mode 100644 index 0000000000000000000000000000000000000000..150d39b7a6a2a0e499bd7d5e793f07179495afd7 GIT binary patch literal 199469 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

6~#=|P$bc} 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 is the user's Storage Label", "system_settings": "System Settings", "tag_cleanup_job": "Tag cleanup", + "template_email_preview": "Preview", + "template_email_settings": "Email Templates", + "template_email_settings_description": "Manage custom email notification templates", + "template_email_welcome": "Welcome email template", + "template_email_invite_album": "Invite Album Template", + "template_email_update_album": "Update Album Template", + "template_settings": "Notification Templates", + "template_settings_description": "Manage custom templates for notifications.", + "template_email_if_empty": "If the template is empty, the default email will be used.", + "template_email_available_tags": "You can use the following variables in your template: {tags}", "theme_custom_css_settings": "Custom CSS", "theme_custom_css_settings_description": "Cascading Style Sheets allow the design of Immich to be customized.", "theme_settings": "Theme Settings", @@ -1325,4 +1335,4 @@ "zoom_image": "Zoom Image", "timeline": "Timeline", "total": "Total" -} +} \ No newline at end of file diff --git a/i18n/nl.json b/i18n/nl.json index ade7a5092..3420c5d10 100644 --- a/i18n/nl.json +++ b/i18n/nl.json @@ -247,6 +247,16 @@ "storage_template_user_label": "{label} is het opslaglabel van de gebruiker", "system_settings": "Systeeminstellingen", "tag_cleanup_job": "Tag opschoning", + "template_email_settings": "Email", + "template_email_settings_description": "Beheer aangepaste email melding sjablonen", + "template_email_preview": "Voorbeeld", + "template_email_welcome": "Welkom email sjabloon", + "template_email_invite_album": "Uitgenodigd in album sjabloon", + "template_email_update_album": "Update in album sjabloon", + "template_settings": "Melding sjablonen", + "template_settings_description": "Beheer aangepast sjablonen voor meldingen.", + "template_email_if_empty": "Wanneer het sjabloon leeg is, wordt de standaard mail gebruikt.", + "template_email_available_tags": "Je kan de volgende tags gebruiken in een template: {tags}", "theme_custom_css_settings": "Aangepaste CSS", "theme_custom_css_settings_description": "Met Cascading Style Sheets kan het ontwerp van Immich worden aangepast.", "theme_settings": "Thema instellingen", diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 77809359023ba5fb9585545f3f20beb7cb360230..b97ff5411cbba160d4e4b6fa5c3da223a3e3c2f9 100644 GIT binary patch delta 225 zcmX^1i*f&7#tj!$#M4tt{PIgO(=wA2OEUBGLQ-=JauQ2YC*M<%1dF{vMnwyxJQ#|=%kr*G$7^sk8p2Xzo#gQCP1Hfw7p=u^C%#+&u zzW5KLGsH-jlKfbWl>B6UeV8FY5xv|LO)dppg=m;qP-<~OeqM1Zn(E0Pe8o4vERAIc E0C*o+vj6}9 delta 28 kcmdo0m+{yy#tj!$Hm9hb^P5~#61bVS^f%+?l=5hH0M=s-aR2}S diff --git a/mobile/openapi/lib/api.dart b/mobile/openapi/lib/api.dart index e1c343ad50d1df8fdc0f4581e70d8e62053c4e6d..73eb02d89ed7a568bc94067df317179576373af9 100644 GIT binary patch delta 59 zcmaD7H8Ezx1{Jo{+{DbB;>nFFDIBS}1v!Z&sUVK}=BFxC7@2_rlN&jtSxZ1tlN+Q} KHkYftWdi`w?H3;a delta 21 dcmbOj^CW7+29?QARZKT~s!n0ttfu~&4FGTn2`B&n diff --git a/mobile/openapi/lib/api/notifications_api.dart b/mobile/openapi/lib/api/notifications_api.dart index 0681d582479ad88460ab072c0c8ae390c9bd8dc1..323fbcc3d6bc025b2d06b6923ffc93cdb57d99f1 100644 GIT binary patch delta 486 zcmaDQ&?Ud&0V7{-K~7>xYO#KGUSe))?c^7XUN$8~nR)543LpUmjiS`T(#)dN6iq8G z1qFS5eF&+br4SvG3eoFQk{_#30_98&V^VfaPc8AwFUd^HOinDx%+G@<49_gd@F*!M z@XSlg*9ZpN0=7g)0j2_I6vCwKOwop@u2TnE4gz{bsX$jJr#j~3XsAORuC4<%N^`O_ zvn>bAF`F}(S2EU9;vJBKP=mm&w4}5s)duF`pw!}m{Ji2+ph9~)1#BKy1qLq>zMamh pX@pHXP&Z1rfnr4m9!Q&CvFbCiK|*P=0*45UY0aU#c_ZUaHUNcPtOWo7 delta 11 ScmeB@eP#tj#v*<5oIGjob3GsY_OhNR{eRxAZkC8`XWs0bxK0EBmop0t diff --git a/mobile/openapi/lib/model/system_config_dto.dart b/mobile/openapi/lib/model/system_config_dto.dart index 4215953906601ddd420ffe7dfc89a2ab668db0c1..59d5f09fc94678a77b9800a8dae3fd25c0105fb1 100644 GIT binary patch delta 215 zcmX?V`_z6z0y9TyZb43BNow)r049;m@yz>}L}4N>CHV>^FwSOfHhyNfl!C1-vJ__s z6WpB5KHSe3g<;xkRS+iV^BOTr!z9#W6@W%$WESfo6a)&aWs`>~uu=%FEC$Ls=jWwm ariZ|UCr=a?;Y4V8FSd>yZuR6Ta)to7S5C12 delta 46 zcmV+}0MY;DKgB(;U<0##1HA&XVFvvIvw{gl0<+=^(*d)~4KD+;B@vwlvke%Z2a~-Y ED8G0SoB#j- diff --git a/mobile/openapi/lib/model/system_config_template_emails_dto.dart b/mobile/openapi/lib/model/system_config_template_emails_dto.dart new file mode 100644 index 0000000000000000000000000000000000000000..9db85509f58ebb7fc43ca5d4fc11b1abafee9973 GIT binary patch literal 3945 zcmbVPQE%He5PtWsxD-XLV5+?BsYqw9MdJ+V+8Aiv0)r6eIx3)>wVv9Eb}YG09X?AI={_UkOS{5tiM zPiN_N5iwv7a9u~Orn#K+g@`OwJrxwot7xVJYu z?wv9ZuAL3%rmR}o%xU4Crv2wt3|JO}lX(roXt-r*!8IgGZp*+cyM)4*puw1Aa)l6F z`;ZkWjz7)%PH3x#4VLGMCn(ld=T#A*KAVr%Cc-ZFeEJ1+`q4|b;v5N zi_}kMzB&NOgV&)~o+EeoWU!`({fb_eSD3?K zu>sAZtrJTsdq`j(xO+0Sv)GJJ?+z+3U~%ji-tcq?kakd<79ORSkyN8sHSr9pPd19x zoD!_28V{B+BXajbR^{y)hE^68`+)I>TQjSaoO)5AgBcBiW9_C6yoW{_6}5aMpF#be z4e?2dFK2ooyW6@2G_Iv6;$;8zlS+cN1McROJ=xI_a;&+b9YUpgNQQC=)~PoppW7@^QezaAD5 z^Bx(0%O$ew<&zIjlK{-1$+V}O`!jrdB9)#(%kuJQ$jhUw!y?;U7z8XJSnH-X$miDz zaL@w3W@L|$;JFPVO<=j1Gn!!&O*4E!`*xVpXN93ZvQz$ zGqQZ03gaffN58!q(W6=y+Q>N5CeBnYub?U_E7Mr!aw`iLHqUBXYU6r6M7|Sy8<&-f zjr^}t2Hgv>#lNL6_}@umF}Sh)?ujm}6NQUaiV0Pwq+xg4n=Ds_v~jMBHJZ7NDB@SY z#>qw)I~rj+2RZ{?%0iSX!r$xBD9MGjaKE=sZr|!6Q|pD?mbq}!-Z%}9BY-gi@madc z6cz*&atF&H`xPiIH<1xK4p{{h6`+9w+(y|*ZiUK2{NiwlW%WDH$cF1;Yqoo>ze-~e z9rSt7I;Z}OaN59R63idI$OOA~8)+_KG6j!fBJzNehRrwMzWGm}et^aKIhW1Be7Tqc z`YTa|gSB+95q9%drxJ6sbE_$mQXvy*tuT9%0y;;ycnYG1@caVf}MCx zV8r$v#-89Bfm?dVf90OGEc<)S9w~09J|P@k+kwOO@sai-qow^3xl?X~uV~Kbk}yQ_ zOK*L{U*{J&GZf4bL{~hD>_3^W6Ey^-S43M}qZk?Cg#w z6^8wtl0U>yL=?7Ac7ztT<9!_TuvK5rmcW!9(TriSk*z-3yBkW;;&CsK{tBh@AOTNO pi)m?G1iZhW-_cdDRs|og?Zxi{`L-8}=_A8Z-y--Xcs;@;^gpZz;4J_E literal 0 HcmV?d00001 diff --git a/mobile/openapi/lib/model/template_dto.dart b/mobile/openapi/lib/model/template_dto.dart new file mode 100644 index 0000000000000000000000000000000000000000..f818e0508acab012ad6836c723bfb90f04058179 GIT binary patch literal 2761 zcmbVOU2oeq6n*!vxG9E20aSV0Q<2nOi^Un*wK33o1qQTmj$)rY7HH_5%efN^0 zOe1a^EI<;8yr1WsOKLnGjmPl%uf_cNAG5pJhu4eQ4cxwYH%sAW4tMhfyr18^x&8YL z&B*dq$+VsPn*H)(M6Y5kmF9V+bY6*uUqL53!^@mEe8Z(p!@JnDO52kjtl6@i$=lB6 zn*ZAgjqZ|d@NdgB{O` ziYj=9w$VmHz5t<5u(dFm?PI67x4*=c03WRuat&d}t-VrTxYpPu?%ylbP@S4trC~Bj z=J%g@fz{iZ>r0qS!J|>ICZQZ@*!lX^KY=*z>HORk=KP0(Fz~la5Yob$Td0|-e^({P zq%OoD3etk)1viH29dU{D)Z7T;%#zSs76SOr<1PaV%0DEov5N@KWe76)DLkz%99ZvJ z`_g-*Q0`DpqL_kJZ;g@|#>uMM4UI&P7cnR z7WTyBQ)L27mf&Z^fUpL>u%_b%Dy=qsn5A1nWmRZ!L8@C~ldBYD*Ps@N_^mKba1jNq z<`pX44T)=n6-AEYRjZOH@e8q7e{<;_WIcqwtbkwFt~D!ZBobF!3eO^L zo*|#4b*$HKljN}C;0A`_Q{_5wdwuwm^d!f#$Jb}jGY zO%q}|g^0+@Ga5Pi>1*A)*Pckibs(}w=bga%q9&)%;L0tsbOe*n^x&p+t<{#@H#i?q zvBvOp9}w{UYi_#6k^<7pl)|fF$n32+44_I!G1_5(m?`-0f7DuCljEc`#S$d8mPmd+d0mV5&w)e7%I!XdS zR}h|D6gNLT?C~^5MNf(8li-IcJs4<3_=fW!ju57t`V2T@w(r91>?WRuZwVGBzrP!= zV7SI|yh-rFq>IrXf=86$s@?_CGI|r-ghmKM-^_Q(b1^b!5>fF35)q!Icl?L%=x}rX zUVjJf0*6OTqU$gs*fGA+!Q=o^{zlpgTjLUq3Eiy`_RqZqI`qdKp3i7W-xm}JWpjdk zQq0kyI1SM1Ngbr{v?0WNu|gha`9C^&q6D5Ir~a6V2K$%n}J;42zl%Tn}G4C@X_ECPQ93l)*g*yp{~6CABkn`*D6p-$^~)?yed> Yk^Us#VR)wx4vE8E?7o?WzfA68~j@fga12eECx3=?4Ie$I#Ib)<(N>dlr-#agUL!&Nt>3sTBDgOM3uh! zKFtbY>|lWD9OxD3T2`V~3I4kr46;&K3v;=tOX1|Lv^6G_S5CwI0APd|+)CG&%7TDO zZebBHU4r5wGnt@Iz#yVn0Nwe)70M=s+mvx&pTMF0{W+Eg@X;Ant%0nM*JQ=(*ZPYz z2GK#=JFQDPpAk+Q7>}db-6xshsa+w>IgBUZQOracQ4MkTCmx za4rc>zEDy0C0LxQ9IT~-LfGOLoulD|gZ45bbyYHx)(W#Dbs*t|w92wsLd;dQSTv5rZ%cP_&@%Iy@8 zc2}wrC49my7{deW`~4*s3~aG5L&`KONe;82ug8{9)fnhyz7~0sANdBu%K~y>T zrnR7)g)gFPq=l8yn>O5nw@}(EG#HZn7l^_#hN>x1WTdFAvaI+c25Tc%*m~TxrpZu- zHYI_k*u+j{DfWAzb7ItQgu3NtE`zacvG(P4KsWW;h@5&f;u>Rk79jK)whuKO*6+1EMk{9fUy0uW80#4p##`3cy*#(N$nYooW~uEb`A zl_;%@_Z@y7JtJ*XIud*+{$hFHfT9uwR18iH)^DQhjds&b?RH&QqyHxcd?iWYlE^X;J9wvd}C#0PqDP6T59JC_byRj6C)D0avcZWY_|5y0gZtUs#Ry*Ll zX`coc(BI-IUZnV5pm%|v*e6utuGw{DCbUx0b_XI%{h^*jD#uFL^oXKI$VIpo-tjNF zqq)oeUY`d}J8n-HM%TWj@Z`9pamYYvf5C2*D{zb2iJlk%E?#;|bZmz$ULWW|&n*gw zvI?k!6cubN)(CwK>LiAzH818pR?xSz{U04YQ6f)~TRU2h2E(Ij!lRwC9iSv3x_SVQ zL>2eFd+6f0S6W~MV74QHj9^~KUJL!B4`pZZvKPpAgEG03fS0AkwA2*>-hG_i(DSjC h0pFngi}5$|?VEja&xrUZgugM> literal 0 HcmV?d00001 diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index bc32a32e0..43985cae8 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -3430,6 +3430,57 @@ ] } }, + "/notifications/templates/{name}": { + "post": { + "operationId": "getNotificationTemplate", + "parameters": [ + { + "name": "name", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateResponseDto" + } + } + }, + "description": "" + } + }, + "security": [ + { + "bearer": [] + }, + { + "cookie": [] + }, + { + "api_key": [] + } + ], + "tags": [ + "Notifications" + ] + } + }, "/notifications/test-email": { "post": { "operationId": "sendTestEmail", @@ -11538,6 +11589,9 @@ "storageTemplate": { "$ref": "#/components/schemas/SystemConfigStorageTemplateDto" }, + "templates": { + "$ref": "#/components/schemas/SystemConfigTemplatesDto" + }, "theme": { "$ref": "#/components/schemas/SystemConfigThemeDto" }, @@ -11565,6 +11619,7 @@ "reverseGeocoding", "server", "storageTemplate", + "templates", "theme", "trash", "user" @@ -12111,6 +12166,25 @@ ], "type": "object" }, + "SystemConfigTemplateEmailsDto": { + "properties": { + "albumInviteTemplate": { + "type": "string" + }, + "albumUpdateTemplate": { + "type": "string" + }, + "welcomeTemplate": { + "type": "string" + } + }, + "required": [ + "albumInviteTemplate", + "albumUpdateTemplate", + "welcomeTemplate" + ], + "type": "object" + }, "SystemConfigTemplateStorageOptionDto": { "properties": { "dayOptions": { @@ -12174,6 +12248,17 @@ ], "type": "object" }, + "SystemConfigTemplatesDto": { + "properties": { + "email": { + "$ref": "#/components/schemas/SystemConfigTemplateEmailsDto" + } + }, + "required": [ + "email" + ], + "type": "object" + }, "SystemConfigThemeDto": { "properties": { "customCss": { @@ -12352,6 +12437,32 @@ }, "type": "object" }, + "TemplateDto": { + "properties": { + "template": { + "type": "string" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "TemplateResponseDto": { + "properties": { + "html": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "html", + "name" + ], + "type": "object" + }, "TestEmailResponseDto": { "properties": { "messageId": { diff --git a/open-api/typescript-sdk/src/fetch-client.ts b/open-api/typescript-sdk/src/fetch-client.ts index d786139ab..20d0c5715 100644 --- a/open-api/typescript-sdk/src/fetch-client.ts +++ b/open-api/typescript-sdk/src/fetch-client.ts @@ -634,6 +634,13 @@ export type MemoryUpdateDto = { memoryAt?: string; seenAt?: string; }; +export type TemplateDto = { + template: string; +}; +export type TemplateResponseDto = { + html: string; + name: string; +}; export type SystemConfigSmtpTransportDto = { host: string; ignoreCert: boolean; @@ -1232,6 +1239,14 @@ export type SystemConfigStorageTemplateDto = { hashVerificationEnabled: boolean; template: string; }; +export type SystemConfigTemplateEmailsDto = { + albumInviteTemplate: string; + albumUpdateTemplate: string; + welcomeTemplate: string; +}; +export type SystemConfigTemplatesDto = { + email: SystemConfigTemplateEmailsDto; +}; export type SystemConfigThemeDto = { customCss: string; }; @@ -1259,6 +1274,7 @@ export type SystemConfigDto = { reverseGeocoding: SystemConfigReverseGeocodingDto; server: SystemConfigServerDto; storageTemplate: SystemConfigStorageTemplateDto; + templates: SystemConfigTemplatesDto; theme: SystemConfigThemeDto; trash: SystemConfigTrashDto; user: SystemConfigUserDto; @@ -2227,6 +2243,19 @@ export function addMemoryAssets({ id, bulkIdsDto }: { body: bulkIdsDto }))); } +export function getNotificationTemplate({ name, templateDto }: { + name: string; + templateDto: TemplateDto; +}, opts?: Oazapfts.RequestOpts) { + return oazapfts.ok(oazapfts.fetchJson<{ + status: 200; + data: TemplateResponseDto; + }>(`/notifications/templates/${encodeURIComponent(name)}`, oazapfts.json({ + ...opts, + method: "POST", + body: templateDto + }))); +} export function sendTestEmail({ systemConfigSmtpDto }: { systemConfigSmtpDto: SystemConfigSmtpDto; }, opts?: Oazapfts.RequestOpts) { diff --git a/server/src/config.ts b/server/src/config.ts index dd850e063..265897420 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -146,6 +146,13 @@ export interface SystemConfig { }; }; }; + templates: { + email: { + welcomeTemplate: string; + albumInviteTemplate: string; + albumUpdateTemplate: string; + }; + }; server: { externalDomain: string; loginPageMessage: string; @@ -313,6 +320,13 @@ export const defaults = Object.freeze({ }, }, }, + templates: { + email: { + welcomeTemplate: '', + albumInviteTemplate: '', + albumUpdateTemplate: '', + }, + }, user: { deleteDelay: 7, }, diff --git a/server/src/controllers/notification.controller.ts b/server/src/controllers/notification.controller.ts index 3dd72dd73..27034fd63 100644 --- a/server/src/controllers/notification.controller.ts +++ b/server/src/controllers/notification.controller.ts @@ -1,8 +1,9 @@ -import { Body, Controller, HttpCode, HttpStatus, Post } from '@nestjs/common'; +import { Body, Controller, HttpCode, HttpStatus, Param, Post } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { AuthDto } from 'src/dtos/auth.dto'; -import { TestEmailResponseDto } from 'src/dtos/notification.dto'; +import { TemplateDto, TemplateResponseDto, TestEmailResponseDto } from 'src/dtos/notification.dto'; import { SystemConfigSmtpDto } from 'src/dtos/system-config.dto'; +import { EmailTemplate } from 'src/interfaces/notification.interface'; import { Auth, Authenticated } from 'src/middleware/auth.guard'; import { NotificationService } from 'src/services/notification.service'; @@ -17,4 +18,15 @@ export class NotificationController { sendTestEmail(@Auth() auth: AuthDto, @Body() dto: SystemConfigSmtpDto): Promise { return this.service.sendTestEmail(auth.user.id, dto); } + + @Post('templates/:name') + @HttpCode(HttpStatus.OK) + @Authenticated({ admin: true }) + getNotificationTemplate( + @Auth() auth: AuthDto, + @Param('name') name: EmailTemplate, + @Body() dto: TemplateDto, + ): Promise { + return this.service.getTemplate(name, dto.template); + } } diff --git a/server/src/dtos/notification.dto.ts b/server/src/dtos/notification.dto.ts index 34b392358..c1a09c801 100644 --- a/server/src/dtos/notification.dto.ts +++ b/server/src/dtos/notification.dto.ts @@ -1,3 +1,13 @@ +import { IsString } from 'class-validator'; + export class TestEmailResponseDto { messageId!: string; } +export class TemplateResponseDto { + name!: string; + html!: string; +} +export class TemplateDto { + @IsString() + template!: string; +} diff --git a/server/src/dtos/system-config.dto.ts b/server/src/dtos/system-config.dto.ts index 894f4c794..350918254 100644 --- a/server/src/dtos/system-config.dto.ts +++ b/server/src/dtos/system-config.dto.ts @@ -465,6 +465,24 @@ class SystemConfigNotificationsDto { smtp!: SystemConfigSmtpDto; } +class SystemConfigTemplateEmailsDto { + @IsString() + albumInviteTemplate!: string; + + @IsString() + welcomeTemplate!: string; + + @IsString() + albumUpdateTemplate!: string; +} + +class SystemConfigTemplatesDto { + @Type(() => SystemConfigTemplateEmailsDto) + @ValidateNested() + @IsObject() + email!: SystemConfigTemplateEmailsDto; +} + class SystemConfigStorageTemplateDto { @ValidateBoolean() enabled!: boolean; @@ -636,6 +654,11 @@ export class SystemConfigDto implements SystemConfig { @IsObject() notifications!: SystemConfigNotificationsDto; + @Type(() => SystemConfigTemplatesDto) + @ValidateNested() + @IsObject() + templates!: SystemConfigTemplatesDto; + @Type(() => SystemConfigServerDto) @ValidateNested() @IsObject() diff --git a/server/src/emails/album-invite.email.tsx b/server/src/emails/album-invite.email.tsx index 232ef5290..0b3819b33 100644 --- a/server/src/emails/album-invite.email.tsx +++ b/server/src/emails/album-invite.email.tsx @@ -3,6 +3,7 @@ import * as React from 'react'; import { ImmichButton } from 'src/emails/components/button.component'; import ImmichLayout from 'src/emails/components/immich.layout'; import { AlbumInviteEmailProps } from 'src/interfaces/notification.interface'; +import { replaceTemplateTags } from 'src/utils/replace-template-tags'; export const AlbumInviteEmail = ({ baseUrl, @@ -11,39 +12,64 @@ export const AlbumInviteEmail = ({ senderName, albumId, cid, -}: AlbumInviteEmailProps) => ( - - - Hey {recipientName}! - + customTemplate, +}: AlbumInviteEmailProps) => { + const variables = { + albumName, + recipientName, + senderName, + albumId, + baseUrl, + }; - - {senderName} has added you to the album {albumName}. - + const emailContent = customTemplate ? ( + replaceTemplateTags(customTemplate, variables) + ) : ( + <> + + Hey {recipientName}! + - {cid && ( -

- + + {senderName} has added you to the album {albumName}. + + + ); + + return ( + + {customTemplate && ( + +
+
+ )} + + {!customTemplate && emailContent} + + {cid && ( +
+ +
+ )} + +
+ View Album
- )} -
- View Album -
- - - If you cannot click the button use the link below to view the album. -
- {`${baseUrl}/albums/${albumId}`} -
-
-); + + If you cannot click the button use the link below to view the album. +
+ {`${baseUrl}/albums/${albumId}`} +
+ + ); +}; AlbumInviteEmail.PreviewProps = { baseUrl: 'https://demo.immich.app', diff --git a/server/src/emails/album-update.email.tsx b/server/src/emails/album-update.email.tsx index 0fb5ad931..9dcd858e9 100644 --- a/server/src/emails/album-update.email.tsx +++ b/server/src/emails/album-update.email.tsx @@ -3,47 +3,80 @@ import * as React from 'react'; import { ImmichButton } from 'src/emails/components/button.component'; import ImmichLayout from 'src/emails/components/immich.layout'; import { AlbumUpdateEmailProps } from 'src/interfaces/notification.interface'; +import { replaceTemplateTags } from 'src/utils/replace-template-tags'; -export const AlbumUpdateEmail = ({ baseUrl, albumName, recipientName, albumId, cid }: AlbumUpdateEmailProps) => ( - - - Hey {recipientName}! - +export const AlbumUpdateEmail = ({ + baseUrl, + albumName, + recipientName, + albumId, + cid, + customTemplate, +}: AlbumUpdateEmailProps) => { + const usableTemplateVariables = { + albumName, + recipientName, + albumId, + baseUrl, + }; - - New media has been added to {albumName}, -
check it out! -
+ const emailContent = customTemplate ? ( + replaceTemplateTags(customTemplate, usableTemplateVariables) + ) : ( + <> + + Hey {recipientName}! + - {cid && ( -
- + + New media has been added to {albumName}, +
check it out! +
+ + ); + + return ( + + {customTemplate && ( + +
+
+ )} + + {!customTemplate && emailContent} + + {cid && ( +
+ +
+ )} + +
+ View Album
- )} -
- View Album -
- - - If you cannot click the button use the link below to view the album. -
- {`${baseUrl}/albums/${albumId}`} -
-
-); + + If you cannot click the button use the link below to view the album. +
+ {`${baseUrl}/albums/${albumId}`} +
+ + ); +}; AlbumUpdateEmail.PreviewProps = { baseUrl: 'https://demo.immich.app', albumName: 'Trip to Europe', albumId: 'b63f6dae-e1c9-401b-9a85-9dbbf5612539', recipientName: 'Alan Turing', + cid: '', + customTemplate: '', } as AlbumUpdateEmailProps; export default AlbumUpdateEmail; diff --git a/server/src/emails/welcome.email.tsx b/server/src/emails/welcome.email.tsx index e031ac6b9..ced0b7769 100644 --- a/server/src/emails/welcome.email.tsx +++ b/server/src/emails/welcome.email.tsx @@ -3,36 +3,62 @@ import * as React from 'react'; import { ImmichButton } from 'src/emails/components/button.component'; import ImmichLayout from 'src/emails/components/immich.layout'; import { WelcomeEmailProps } from 'src/interfaces/notification.interface'; +import { replaceTemplateTags } from 'src/utils/replace-template-tags'; -export const WelcomeEmail = ({ baseUrl, displayName, username, password }: WelcomeEmailProps) => ( - - - Hey {displayName}! - +export const WelcomeEmail = ({ baseUrl, displayName, username, password, customTemplate }: WelcomeEmailProps) => { + const usableTemplateVariables = { + displayName, + username, + password, + baseUrl, + }; - A new account has been created for you. + const emailContent = customTemplate ? ( + replaceTemplateTags(customTemplate, usableTemplateVariables) + ) : ( + <> + + Hey {displayName}! + - - Username: {username} - {password && ( - <> -
- Password: {password} - + A new account has been created for you. + + + Username: {username} + {password && ( + <> +
+ Password: {password} + + )} +
+ + ); + + return ( + + {customTemplate && ( + +
+
)} -
-
- Login -
+ {!customTemplate && emailContent} - - If you cannot click the button use the link below to proceed with first login. -
- {baseUrl} -
-
-); +
+ Login +
+ + + If you cannot click the button use the link below to proceed with first login. +
+ {baseUrl} +
+ + ); +}; WelcomeEmail.PreviewProps = { baseUrl: 'https://demo.immich.app/auth/login', diff --git a/server/src/interfaces/notification.interface.ts b/server/src/interfaces/notification.interface.ts index ec0ecc534..b20b3c50a 100644 --- a/server/src/interfaces/notification.interface.ts +++ b/server/src/interfaces/notification.interface.ts @@ -39,6 +39,7 @@ export enum EmailTemplate { interface BaseEmailProps { baseUrl: string; + customTemplate?: string; } export interface TestEmailProps extends BaseEmailProps { @@ -70,18 +71,22 @@ export type EmailRenderRequest = | { template: EmailTemplate.TEST_EMAIL; data: TestEmailProps; + customTemplate: string; } | { template: EmailTemplate.WELCOME; data: WelcomeEmailProps; + customTemplate: string; } | { template: EmailTemplate.ALBUM_INVITE; data: AlbumInviteEmailProps; + customTemplate: string; } | { template: EmailTemplate.ALBUM_UPDATE; data: AlbumUpdateEmailProps; + customTemplate: string; }; export type SendEmailResponse = { diff --git a/server/src/repositories/notification.repository.spec.ts b/server/src/repositories/notification.repository.spec.ts index 983be21d2..368ba3f0c 100644 --- a/server/src/repositories/notification.repository.spec.ts +++ b/server/src/repositories/notification.repository.spec.ts @@ -21,6 +21,7 @@ describe(NotificationRepository.name, () => { const request: EmailRenderRequest = { template: EmailTemplate.TEST_EMAIL, data: { displayName: 'Alen Turing', baseUrl: 'http://localhost' }, + customTemplate: '', }; const result = await sut.renderEmail(request); @@ -33,6 +34,7 @@ describe(NotificationRepository.name, () => { const request: EmailRenderRequest = { template: EmailTemplate.WELCOME, data: { displayName: 'Alen Turing', username: 'turing', baseUrl: 'http://localhost' }, + customTemplate: '', }; const result = await sut.renderEmail(request); @@ -51,6 +53,7 @@ describe(NotificationRepository.name, () => { recipientName: 'Jane', baseUrl: 'http://localhost', }, + customTemplate: '', }; const result = await sut.renderEmail(request); @@ -63,6 +66,7 @@ describe(NotificationRepository.name, () => { const request: EmailRenderRequest = { template: EmailTemplate.ALBUM_UPDATE, data: { albumName: 'Holiday', albumId: '123', recipientName: 'Jane', baseUrl: 'http://localhost' }, + customTemplate: '', }; const result = await sut.renderEmail(request); diff --git a/server/src/repositories/notification.repository.ts b/server/src/repositories/notification.repository.ts index 293a80576..b2444301e 100644 --- a/server/src/repositories/notification.repository.ts +++ b/server/src/repositories/notification.repository.ts @@ -55,22 +55,22 @@ export class NotificationRepository implements INotificationRepository { } } - private render({ template, data }: EmailRenderRequest): React.FunctionComponentElement { + private render({ template, data, customTemplate }: EmailRenderRequest): React.FunctionComponentElement { switch (template) { case EmailTemplate.TEST_EMAIL: { - return React.createElement(TestEmail, data); + return React.createElement(TestEmail, { ...data, customTemplate }); } case EmailTemplate.WELCOME: { - return React.createElement(WelcomeEmail, data); + return React.createElement(WelcomeEmail, { ...data, customTemplate }); } case EmailTemplate.ALBUM_INVITE: { - return React.createElement(AlbumInviteEmail, data); + return React.createElement(AlbumInviteEmail, { ...data, customTemplate }); } case EmailTemplate.ALBUM_UPDATE: { - return React.createElement(AlbumUpdateEmail, data); + return React.createElement(AlbumUpdateEmail, { ...data, customTemplate }); } } } diff --git a/server/src/services/notification.service.ts b/server/src/services/notification.service.ts index e7c020196..37b265c6a 100644 --- a/server/src/services/notification.service.ts +++ b/server/src/services/notification.service.ts @@ -140,7 +140,7 @@ export class NotificationService extends BaseService { setTimeout(() => this.eventRepository.clientSend('on_session_delete', sessionId, sessionId), 500); } - async sendTestEmail(id: string, dto: SystemConfigSmtpDto) { + async sendTestEmail(id: string, dto: SystemConfigSmtpDto, tempTemplate?: string) { const user = await this.userRepository.get(id, { withDeleted: false }); if (!user) { throw new Error('User not found'); @@ -160,8 +160,8 @@ export class NotificationService extends BaseService { baseUrl: getExternalDomain(server, port), displayName: user.name, }, + customTemplate: tempTemplate!, }); - const { messageId } = await this.notificationRepository.sendEmail({ to: user.email, subject: 'Test email from Immich', @@ -175,6 +175,69 @@ export class NotificationService extends BaseService { return { messageId }; } + async getTemplate(name: EmailTemplate, customTemplate: string) { + const { server, templates } = await this.getConfig({ withCache: false }); + const { port } = this.configRepository.getEnv(); + + let templateResponse = ''; + + switch (name) { + case EmailTemplate.WELCOME: { + const { html: _welcomeHtml } = await this.notificationRepository.renderEmail({ + template: EmailTemplate.WELCOME, + data: { + baseUrl: getExternalDomain(server, port), + displayName: 'John Doe', + username: 'john@doe.com', + password: 'thisIsAPassword123', + }, + customTemplate: customTemplate || templates.email.welcomeTemplate, + }); + + templateResponse = _welcomeHtml; + break; + } + case EmailTemplate.ALBUM_UPDATE: { + const { html: _updateAlbumHtml } = await this.notificationRepository.renderEmail({ + template: EmailTemplate.ALBUM_UPDATE, + data: { + baseUrl: getExternalDomain(server, port), + albumId: '1', + albumName: 'Favorite Photos', + recipientName: 'Jane Doe', + cid: undefined, + }, + customTemplate: customTemplate || templates.email.albumInviteTemplate, + }); + templateResponse = _updateAlbumHtml; + break; + } + + case EmailTemplate.ALBUM_INVITE: { + const { html } = await this.notificationRepository.renderEmail({ + template: EmailTemplate.ALBUM_INVITE, + data: { + baseUrl: getExternalDomain(server, port), + albumId: '1', + albumName: "John Doe's Favorites", + senderName: 'John Doe', + recipientName: 'Jane Doe', + cid: undefined, + }, + customTemplate: customTemplate || templates.email.albumInviteTemplate, + }); + templateResponse = html; + break; + } + default: { + templateResponse = ''; + break; + } + } + + return { name, html: templateResponse }; + } + @OnJob({ name: JobName.NOTIFY_SIGNUP, queue: QueueName.NOTIFICATION }) async handleUserSignup({ id, tempPassword }: JobOf) { const user = await this.userRepository.get(id, { withDeleted: false }); @@ -182,7 +245,7 @@ export class NotificationService extends BaseService { return JobStatus.SKIPPED; } - const { server } = await this.getConfig({ withCache: true }); + const { server, templates } = await this.getConfig({ withCache: true }); const { port } = this.configRepository.getEnv(); const { html, text } = await this.notificationRepository.renderEmail({ template: EmailTemplate.WELCOME, @@ -192,6 +255,7 @@ export class NotificationService extends BaseService { username: user.email, password: tempPassword, }, + customTemplate: templates.email.welcomeTemplate, }); await this.jobRepository.queue({ @@ -227,7 +291,7 @@ export class NotificationService extends BaseService { const attachment = await this.getAlbumThumbnailAttachment(album); - const { server } = await this.getConfig({ withCache: false }); + const { server, templates } = await this.getConfig({ withCache: false }); const { port } = this.configRepository.getEnv(); const { html, text } = await this.notificationRepository.renderEmail({ template: EmailTemplate.ALBUM_INVITE, @@ -239,6 +303,7 @@ export class NotificationService extends BaseService { recipientName: recipient.name, cid: attachment ? attachment.cid : undefined, }, + customTemplate: templates.email.albumInviteTemplate, }); await this.jobRepository.queue({ @@ -273,7 +338,7 @@ export class NotificationService extends BaseService { ); const attachment = await this.getAlbumThumbnailAttachment(album); - const { server } = await this.getConfig({ withCache: false }); + const { server, templates } = await this.getConfig({ withCache: false }); const { port } = this.configRepository.getEnv(); for (const recipient of recipients) { @@ -297,6 +362,7 @@ export class NotificationService extends BaseService { recipientName: recipient.name, cid: attachment ? attachment.cid : undefined, }, + customTemplate: templates.email.albumUpdateTemplate, }); await this.jobRepository.queue({ diff --git a/server/src/services/system-config.service.spec.ts b/server/src/services/system-config.service.spec.ts index 2550c15de..2a20f3293 100644 --- a/server/src/services/system-config.service.spec.ts +++ b/server/src/services/system-config.service.spec.ts @@ -190,6 +190,13 @@ const updatedConfig = Object.freeze({ }, }, }, + templates: { + email: { + albumInviteTemplate: '', + welcomeTemplate: '', + albumUpdateTemplate: '', + }, + }, }); describe(SystemConfigService.name, () => { diff --git a/server/src/utils/replace-template-tags.ts b/server/src/utils/replace-template-tags.ts new file mode 100644 index 000000000..70333d7df --- /dev/null +++ b/server/src/utils/replace-template-tags.ts @@ -0,0 +1,5 @@ +export const replaceTemplateTags = (template: string, variables: Record) => { + return template.replaceAll(/{(.*?)}/g, (_, key) => { + return variables[key] || `{${key}}`; + }); +}; diff --git a/web/package-lock.json b/web/package-lock.json index f06484fe8..15edeb0c2 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -23,7 +23,7 @@ "justified-layout": "^4.1.0", "lodash-es": "^4.17.21", "luxon": "^3.4.4", - "socket.io-client": "^4.7.5", + "socket.io-client": "~4.7.5", "svelte-gestures": "^5.0.4", "svelte-i18n": "^4.0.1", "svelte-local-storage-store": "^0.6.4", diff --git a/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte b/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte index 28187978f..30a9fbad5 100644 --- a/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte +++ b/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte @@ -17,6 +17,7 @@ import LoadingSpinner from '$lib/components/shared-components/loading-spinner.svelte'; import { handleError } from '$lib/utils/handle-error'; import { SettingInputFieldType } from '$lib/constants'; + import TemplateSettings from '$lib/components/admin-page/settings/template-settings/template-settings.svelte'; interface Props { savedConfig: SystemConfigDto; @@ -162,13 +163,14 @@ - - onReset({ ...options, configKeys: ['notifications'] })} - onSave={() => onSave({ notifications: config.notifications })} - showResetToDefault={!isEqual(savedConfig, defaultConfig)} - {disabled} - /> + + + onReset({ ...options, configKeys: ['notifications', 'templates'] })} + onSave={() => onSave({ notifications: config.notifications, templates: config.templates })} + showResetToDefault={!isEqual(savedConfig, defaultConfig)} + {disabled} + /> diff --git a/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte new file mode 100644 index 000000000..c27df817c --- /dev/null +++ b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte @@ -0,0 +1,131 @@ + + +
+
+
+
+ +
+

+ + {$t('admin.template_email_if_empty')} + +

+
+ {#if loadingPreview} + + {/if} + + {#each templateConfigs as { label, templateKey, descriptionTags, templateName }} + +
+ +
+ {/each} +
+
+
+ + {#if htmlPreview} + +
+ +
+
+ {/if} +
+
+