From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 8B00CD44D for ; Wed, 30 Nov 2022 16:19:50 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6A87020542 for ; Wed, 30 Nov 2022 16:19:20 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 30 Nov 2022 16:19:19 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 5449744099 for ; Wed, 30 Nov 2022 16:19:18 +0100 (CET) Message-ID: Date: Wed, 30 Nov 2022 16:19:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: Dominik Csapak , Proxmox Backup Server development discussion References: <20221129164019.1193392-1-s.sterz@proxmox.com> <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com> <798cf744-7051-8458-4a3e-67145e7741f8@proxmox.com> From: Stefan Sterz In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.258 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup] email_notifications: make html template more valid X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2022 15:19:50 -0000 On 11/30/22 16:14, Dominik Csapak wrote: > On 11/30/22 16:02, Stefan Sterz wrote: >> On 11/30/22 15:26, Dominik Csapak wrote: >>> some thoughts: >>> >>> i don't think 'more valid' is possible, either the markup is valid or >>> not >>> >> >> fair, but entirely valid html in emails is .. interesting. for example, >> it would be nice to add a doctype, but from what i found i am not 100% >> certain that all email clients can handle it well (e.g. outlook 2019 >> can't handle the html 5 doctype apparently and ignores it [1]). >> >> it seems that a common practice is to use an older html 4 doctype, >> though [2]. > > i checked my personal inbox for html mails, and i found everything from > html4/5 doctype, to no doctype, and even many mails that do not even > declare or but start direct with e.g.

> > so maybe just dropping that and directly using the

 here
> would also be ok?
> 

maybe, i can't tell you what will happen though, html emails are weird,
at least to me ^^'

i'll go with what you prefer :)

>>
>> [1]: https://www.caniemail.com/search/?s=doctype
>> [2]: https://stackoverflow.com/questions/34319889/doctype-for-html-email
>>
>>> On 11/29/22 17:40, Stefan Sterz wrote:
>>>> some webmail interfaces may behave unexpectedly if the html is
>>>> invalid. thus, close tags and declare a language.
>>>
>>> which webmail interfaces? and according to whom is the old invalid and
>>> the new valid?
>>>
>>
>> well i checked it against w3's nu validator [3]. i started out with
>> something the validator was happy with and then slowly removed things i
>> wasn't certain would render correctly due to html mail weirdness. lost
>> the doctype, because see above. lost the title, because apparently
>> android 4.4 used it in notifications. so if you used it for e.g. the
>> subject, in notifications the subject would display twice? couldn't
>> confirm that, but i thought it would be inconvenient.
> 
> yeah in the html spec it says that when there is a seperate
> 'title' in the document (e.g. in mails) one can omit the title
> 
> as for the doctype, i also could not really find any resource
> that would confirm the need for it in mails. when it renders
> correctly on (most) clients without though, it's fine to omit imo
> 
>>
>> the last part that valid html requires is a character encoding, but that
>> should be set in emails via the `Content-Type` header. so i wasn't sure
>> if it makes sense to add it to the html too.
>>
>> [3]: https://validator.w3.org/nu/#file
>>
>>> i checked the html spec of the whatwg[0] and it seems to me that
>>> empty tags ('head' too) can be omitted
>>>
>>
>> true, sorry, should have removed it when removing the title.
>>
>>> also the 'lang' attribute is only recommended, not required
>>>
>> yes, however, why not follow the recommendation? sorry maybe i am
>> missing something super obvious but is there are good reason? the
>> reasoning behind the recommendation is accessibility, making it easier
>> for speech synthesis to pick up the right intonation.
> 
> true, but it has nothing to do with validity, so it would
> at least deserve a sentences in the commit message ;)

ill add it if we go with the "keep the full html structure" option
instead of the "
-only" one :)

> 
>>
>>> the correct closing of the tags good though
>>>
>>> 0: https://html.spec.whatwg.org/multipage/semantics.html
>>>
>>>>
>>>> Signed-off-by: Stefan Sterz 
>>>> ---
>>>>    src/server/email_notifications.rs | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/server/email_notifications.rs
>>>> b/src/server/email_notifications.rs
>>>> index b3298cf9..378e805e 100644
>>>> --- a/src/server/email_notifications.rs
>>>> +++ b/src/server/email_notifications.rs
>>>> @@ -294,7 +294,7 @@ fn send_job_status_mail(email: &str, subject:
>>>> &str, text: &str) -> Result<(), Er
>>>>        // Note: OX has serious problems displaying text mails,
>>>>        // so we include html as well
>>>>        let html = format!(
>>>> -        "
\n{}\n
",
>>>> +        ">>> lang=\"en\">
\n{}\n
", >>>>            handlebars::html_escape(text) >>>>        ); >>>>    >>> >>> >> > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C9522D480 for ; Wed, 30 Nov 2022 16:15:24 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9700020446 for ; Wed, 30 Nov 2022 16:14:54 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 30 Nov 2022 16:14:53 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1EF4943FC5; Wed, 30 Nov 2022 16:14:53 +0100 (CET) Message-ID: Date: Wed, 30 Nov 2022 16:14:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101 Thunderbird/108.0 Content-Language: en-US To: Stefan Sterz , Proxmox Backup Server development discussion References: <20221129164019.1193392-1-s.sterz@proxmox.com> <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com> <798cf744-7051-8458-4a3e-67145e7741f8@proxmox.com> From: Dominik Csapak In-Reply-To: <798cf744-7051-8458-4a3e-67145e7741f8@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.193 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.258 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup] email_notifications: make html template more valid X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2022 15:15:24 -0000 On 11/30/22 16:02, Stefan Sterz wrote: > On 11/30/22 15:26, Dominik Csapak wrote: >> some thoughts: >> >> i don't think 'more valid' is possible, either the markup is valid or not >> > > fair, but entirely valid html in emails is .. interesting. for example, > it would be nice to add a doctype, but from what i found i am not 100% > certain that all email clients can handle it well (e.g. outlook 2019 > can't handle the html 5 doctype apparently and ignores it [1]). > > it seems that a common practice is to use an older html 4 doctype, > though [2]. i checked my personal inbox for html mails, and i found everything from html4/5 doctype, to no doctype, and even many mails that do not even declare or but start direct with e.g.

so maybe just dropping that and directly using the

 here
would also be ok?

> 
> [1]: https://www.caniemail.com/search/?s=doctype
> [2]: https://stackoverflow.com/questions/34319889/doctype-for-html-email
> 
>> On 11/29/22 17:40, Stefan Sterz wrote:
>>> some webmail interfaces may behave unexpectedly if the html is
>>> invalid. thus, close tags and declare a language.
>>
>> which webmail interfaces? and according to whom is the old invalid and
>> the new valid?
>>
> 
> well i checked it against w3's nu validator [3]. i started out with
> something the validator was happy with and then slowly removed things i
> wasn't certain would render correctly due to html mail weirdness. lost
> the doctype, because see above. lost the title, because apparently
> android 4.4 used it in notifications. so if you used it for e.g. the
> subject, in notifications the subject would display twice? couldn't
> confirm that, but i thought it would be inconvenient.

yeah in the html spec it says that when there is a seperate
'title' in the document (e.g. in mails) one can omit the title

as for the doctype, i also could not really find any resource
that would confirm the need for it in mails. when it renders
correctly on (most) clients without though, it's fine to omit imo

> 
> the last part that valid html requires is a character encoding, but that
> should be set in emails via the `Content-Type` header. so i wasn't sure
> if it makes sense to add it to the html too.
> 
> [3]: https://validator.w3.org/nu/#file
> 
>> i checked the html spec of the whatwg[0] and it seems to me that
>> empty tags ('head' too) can be omitted
>>
> 
> true, sorry, should have removed it when removing the title.
> 
>> also the 'lang' attribute is only recommended, not required
>>
> yes, however, why not follow the recommendation? sorry maybe i am
> missing something super obvious but is there are good reason? the
> reasoning behind the recommendation is accessibility, making it easier
> for speech synthesis to pick up the right intonation.

true, but it has nothing to do with validity, so it would
at least deserve a sentences in the commit message ;)

> 
>> the correct closing of the tags good though
>>
>> 0: https://html.spec.whatwg.org/multipage/semantics.html
>>
>>>
>>> Signed-off-by: Stefan Sterz 
>>> ---
>>>    src/server/email_notifications.rs | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/server/email_notifications.rs
>>> b/src/server/email_notifications.rs
>>> index b3298cf9..378e805e 100644
>>> --- a/src/server/email_notifications.rs
>>> +++ b/src/server/email_notifications.rs
>>> @@ -294,7 +294,7 @@ fn send_job_status_mail(email: &str, subject:
>>> &str, text: &str) -> Result<(), Er
>>>        // Note: OX has serious problems displaying text mails,
>>>        // so we include html as well
>>>        let html = format!(
>>> -        "
\n{}\n
",
>>> +        ">> lang=\"en\">
\n{}\n
", >>>           handlebars::html_escape(text) >>>       ); >>> >> >> > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 76AE4D49C for ; Wed, 30 Nov 2022 17:09:25 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5818420F91 for ; Wed, 30 Nov 2022 17:09:25 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 30 Nov 2022 17:09:24 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id E1B9E449B5 for ; Wed, 30 Nov 2022 17:09:23 +0100 (CET) Message-ID: <378ec591-f9e8-6263-2aae-bfdcc3c1797d@proxmox.com> Date: Wed, 30 Nov 2022 17:09:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101 Thunderbird/108.0 Content-Language: en-GB To: Proxmox Backup Server development discussion , Stefan Sterz , Dominik Csapak References: <20221129164019.1193392-1-s.sterz@proxmox.com> <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com> <798cf744-7051-8458-4a3e-67145e7741f8@proxmox.com> From: Thomas Lamprecht In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL 0.101 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.258 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup] email_notifications: make html template more valid X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2022 16:09:25 -0000 Am 30/11/2022 um 16:19 schrieb Stefan Sterz: > ill add it if we go with the "keep the full html structure" option > instead of the "
-only" one =F0=9F=98=84

If we change this I'd prefer a "full" HTML structure. Not much of a point=
 in
over-optimization here, and _if_ some client renders this badly, and the =
user
checks the source of the mail and sees missing tags or the like, the tech=
nicality
of it being valid w3c; we highly probably still will be the one blamed fi=
rst.

Anyhow, if there's no known (and not totally obscure) MUA that has issues=
 with the
current form I'd avoid touching it.




From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: 
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 7FF31D386
 for ; Wed, 30 Nov 2022 15:26:43 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 616541EA83
 for ; Wed, 30 Nov 2022 15:26:13 +0100 (CET)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for ; Wed, 30 Nov 2022 15:26:12 +0100 (CET)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 145F743E13;
 Wed, 30 Nov 2022 15:26:12 +0100 (CET)
Message-ID: <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com>
Date: Wed, 30 Nov 2022 15:26:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101
 Thunderbird/108.0
Content-Language: en-US
To: Proxmox Backup Server development discussion
 , Stefan Sterz 
References: <20221129164019.1193392-1-s.sterz@proxmox.com>
From: Dominik Csapak 
In-Reply-To: <20221129164019.1193392-1-s.sterz@proxmox.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.193 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 NICE_REPLY_A           -0.258 Looks like a legit reply (A)
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pbs-devel] [PATCH proxmox-backup] email_notifications: make
 html template more valid
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 
List-Unsubscribe: , 
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
 
X-List-Received-Date: Wed, 30 Nov 2022 14:26:43 -0000

some thoughts:

i don't think 'more valid' is possible, either the markup is valid or not

On 11/29/22 17:40, Stefan Sterz wrote:
> some webmail interfaces may behave unexpectedly if the html is
> invalid. thus, close tags and declare a language.

which webmail interfaces? and according to whom is the old invalid and the new valid?

i checked the html spec of the whatwg[0] and it seems to me that
empty tags ('head' too) can be omitted

also the 'lang' attribute is only recommended, not required

the correct closing of the tags good though

0: https://html.spec.whatwg.org/multipage/semantics.html

> 
> Signed-off-by: Stefan Sterz 
> ---
>   src/server/email_notifications.rs | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs
> index b3298cf9..378e805e 100644
> --- a/src/server/email_notifications.rs
> +++ b/src/server/email_notifications.rs
> @@ -294,7 +294,7 @@ fn send_job_status_mail(email: &str, subject: &str, text: &str) -> Result<(), Er
>       // Note: OX has serious problems displaying text mails,
>       // so we include html as well
>       let html = format!(
> -        "
\n{}\n
",
> +        "
\n{}\n
", > handlebars::html_escape(text) > ); > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 7096DD470 for ; Wed, 30 Nov 2022 16:03:21 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5421720324 for ; Wed, 30 Nov 2022 16:02:51 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 30 Nov 2022 16:02:50 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1844D440C4 for ; Wed, 30 Nov 2022 16:02:50 +0100 (CET) Message-ID: <798cf744-7051-8458-4a3e-67145e7741f8@proxmox.com> Date: Wed, 30 Nov 2022 16:02:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: Dominik Csapak , Proxmox Backup Server development discussion References: <20221129164019.1193392-1-s.sterz@proxmox.com> <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com> From: Stefan Sterz In-Reply-To: <16d7b3cb-7887-58c9-6514-9fc18400a78e@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.258 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup] email_notifications: make html template more valid X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2022 15:03:21 -0000 On 11/30/22 15:26, Dominik Csapak wrote: > some thoughts: > > i don't think 'more valid' is possible, either the markup is valid or not > fair, but entirely valid html in emails is .. interesting. for example, it would be nice to add a doctype, but from what i found i am not 100% certain that all email clients can handle it well (e.g. outlook 2019 can't handle the html 5 doctype apparently and ignores it [1]). it seems that a common practice is to use an older html 4 doctype, though [2]. [1]: https://www.caniemail.com/search/?s=doctype [2]: https://stackoverflow.com/questions/34319889/doctype-for-html-email > On 11/29/22 17:40, Stefan Sterz wrote: >> some webmail interfaces may behave unexpectedly if the html is >> invalid. thus, close tags and declare a language. > > which webmail interfaces? and according to whom is the old invalid and > the new valid? > well i checked it against w3's nu validator [3]. i started out with something the validator was happy with and then slowly removed things i wasn't certain would render correctly due to html mail weirdness. lost the doctype, because see above. lost the title, because apparently android 4.4 used it in notifications. so if you used it for e.g. the subject, in notifications the subject would display twice? couldn't confirm that, but i thought it would be inconvenient. the last part that valid html requires is a character encoding, but that should be set in emails via the `Content-Type` header. so i wasn't sure if it makes sense to add it to the html too. [3]: https://validator.w3.org/nu/#file > i checked the html spec of the whatwg[0] and it seems to me that > empty tags ('head' too) can be omitted > true, sorry, should have removed it when removing the title. > also the 'lang' attribute is only recommended, not required > yes, however, why not follow the recommendation? sorry maybe i am missing something super obvious but is there are good reason? the reasoning behind the recommendation is accessibility, making it easier for speech synthesis to pick up the right intonation. > the correct closing of the tags good though > > 0: https://html.spec.whatwg.org/multipage/semantics.html > >> >> Signed-off-by: Stefan Sterz >> --- >>   src/server/email_notifications.rs | 2 +- >>   1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/src/server/email_notifications.rs >> b/src/server/email_notifications.rs >> index b3298cf9..378e805e 100644 >> --- a/src/server/email_notifications.rs >> +++ b/src/server/email_notifications.rs >> @@ -294,7 +294,7 @@ fn send_job_status_mail(email: &str, subject: >> &str, text: &str) -> Result<(), Er >>       // Note: OX has serious problems displaying text mails, >>       // so we include html as well >>       let html = format!( >> -        "
\n{}\n
",
>> +        "> lang=\"en\">
\n{}\n
", >>           handlebars::html_escape(text) >>       ); >>   > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 6EC5FC818 for ; Tue, 29 Nov 2022 17:40:57 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 483B718F06 for ; Tue, 29 Nov 2022 17:40:27 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 29 Nov 2022 17:40:26 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id E608C44B7C for ; Tue, 29 Nov 2022 17:40:25 +0100 (CET) From: Stefan Sterz To: pbs-devel@lists.proxmox.com Date: Tue, 29 Nov 2022 17:40:19 +0100 Message-Id: <20221129164019.1193392-1-s.sterz@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.083 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup] email_notifications: make html template more valid X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Nov 2022 16:40:57 -0000 some webmail interfaces may behave unexpectedly if the html is invalid. thus, close tags and declare a language. Signed-off-by: Stefan Sterz --- src/server/email_notifications.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs index b3298cf9..378e805e 100644 --- a/src/server/email_notifications.rs +++ b/src/server/email_notifications.rs @@ -294,7 +294,7 @@ fn send_job_status_mail(email: &str, subject: &str, text: &str) -> Result<(), Er // Note: OX has serious problems displaying text mails, // so we include html as well let html = format!( - "
\n{}\n
",
+        "
\n{}\n
", handlebars::html_escape(text) ); -- 2.30.2