feat: improve compatibility with iCloud web and legacy clients

This commit is contained in:
limes 2025-11-10 17:49:52 +01:00
parent 660adbd4bf
commit e848cc5f35
5 changed files with 14 additions and 7 deletions

View File

@ -50,11 +50,15 @@
color: #fff !important;
font-weight: 700 !important;
}
strong {
strong, b {
font-weight: 700 !important;
color: #9D6FF3 !important;
}
img.logo {
content: url("https://assets.pretendo.cc/images/wordmark-white.png") !important;
}
}
@media (prefers-color-scheme: dark) {
body.email-body,
table.centerer,
@ -98,14 +102,17 @@
td.notice a {
color: #fff !important;
}
strong {
strong, b {
font-weight: 700 !important;
color: #fff !important;
}
/* isn't this redundant? no. icloud web doesn't display the logo correctly without this. */
img.logo {
content: url("https://assets.pretendo.cc/images/pretendo-wordmark-multicolor-purple+white.png") !important;
content: url("https://assets.pretendo.cc/images/wordmark-purple-white.png") !important;
}
}
</style>
</head>
<body class="email-body" bgcolor="#1B1F3B" style="margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; font-family: Poppins, Arial, Helvetica, sans-serif;">
@ -130,7 +137,7 @@
<tr>
<td>
<a href="https://pretendo.network">
<img class="logo" width="auto" height="48px" src="https://assets.pretendo.cc/images/pretendo-wordmark-singlecolor-white.png" alt="Pretendo">
<img class="logo" width="auto" height="48px" src="https://assets.pretendo.cc/images/wordmark-purple-white.png" alt="Pretendo">
</a>
</td>
</tr>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -116,7 +116,7 @@ export class CreateEmail {
if (plainText) {
c.text = c.text.replace(linkRegex, `$<linkText> ($<linkAddress>)`);
} else {
c.text = c.text.replace(linkRegex, `<a href="$<linkAddress>" style="text-decoration: none; font-weight: 700; color: #ffffff; ">$<linkText></a>`);
c.text = c.text.replace(linkRegex, `<a href="$<linkAddress>" style="text-decoration: underline; font-weight: 700; color: #ffffff; "><u>$<linkText></u></a>`);
}
}
}
@ -139,7 +139,7 @@ export class CreateEmail {
innerHTML += `\n<tr><td>${c.text}</td></tr>`;
break;
case 'button':
innerHTML += `\n<tr><td class="${c.primary ? 'primary' : 'secondary'}" bgcolor="#673db6" style="font-weight: 700; border-radius: 10px; padding: 12px" align="center"><a href="${c.link || ''}" style="color: #ffffff; " width="100%">${c.text}</a></td></tr>`;
innerHTML += `\n<tr><td ${c.primary ? 'class="primary" bgcolor="#673db6"' : 'class="secondary" bgcolor="#373C65"'} style="font-weight: 700; border-radius: 10px; padding: 12px" align="center"><a href="${c.link || ''}" style="color: #ffffff; " width="100%">${c.text}</a></td></tr>`;
break;
}
});

View File

@ -203,7 +203,7 @@ export function nascError(errorCode: string): URLSearchParams {
export async function sendConfirmationEmail(pnid: mongoose.HydratedDocument<IPNID, IPNIDMethods>): Promise<void> {
const email = new CreateEmail()
.addHeader('Hello {{pnid}}!', { pnid: pnid.username })
.addParagraph('Your <strong>Pretendo Network ID</strong> activation is almost complete. Please click the link below to confirm your e-mail address and complete the activation process.')
.addParagraph('Your <b>Pretendo Network ID</b> activation is almost complete. Please click the link below to confirm your e-mail address and complete the activation process.')
.addButton('Confirm email address', `https://api.pretendo.cc/v1/email/verify?token=${pnid.identification.email_token}`)
.addParagraph('You may also enter the following 6-digit code on your console:')
.addButton(pnid.identification.email_code, '', false)