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) >>>       ); >>> >> >> >