diff --git a/dev/Common/Html.js b/dev/Common/Html.js index 56afe8e84..4cbe5b29a 100644 --- a/dev/Common/Html.js +++ b/dev/Common/Html.js @@ -193,7 +193,9 @@ export const } if (oElement.hasAttribute('href')) { - let sHref = getAttribute('href'); + let sHref = getAttribute('href') + // Strip utm_* tracking + .replace(/(\?|&)utm_[a-z]+=[^&?#]*/si, '$1'); if (!/^([a-z]+):/i.test(sHref) && '//' !== sHref.slice(0, 2)) { oElement.setAttribute('data-x-broken-href', sHref); oElement.removeAttribute('href'); diff --git a/dev/Model/Message.js b/dev/Model/Message.js index 8e847d0b0..b8858cdb7 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -461,12 +461,16 @@ export class MessageModel extends AbstractModel { if (body && this.plain()) { body.classList.toggle('html', 0); body.classList.toggle('plain', 1); - body.innerHTML = plainToHtml(this.plain()) + body.innerHTML = plainToHtml( + this.plain() + .replace(/-----BEGIN PGP SIGNATURE-----[\s\S]*/, '') + .replace(/-----BEGIN PGP SIGNED MESSAGE-----(\r?\n[a-z][^\r\n]+)+/i, '') + .trim() + ) // Strip utm_* tracking - .replace(/(\\?|&|&)utm_[a-z]+=[a-z0-9_-]*/si, '$1') + .replace(/(\?|&|&)utm_[a-z]+=[^?&#]*/si, '$1') .replace(url, '$1$2') .replace(email, '$1$2'); - this.isHtml(false); this.hasImages(false); this.initView();