(no subject)
Peter Occil <[email protected]> Tue, 24 Jul 2018 00:02:04 -0400
| Newsgroups | gmane.ietf.rfc822 |
|---|---|
| Message-ID | <[email protected]> |
--===============8958342309624107648==
Content-Type: multipart/alternative;
boundary="_90526788-B888-4660-B007-0467FFAF91A5_"
--_90526788-B888-4660-B007-0467FFAF91A5_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
>Remember that MUST means "do this if you want to interoperate", not "do th=
is or die."
>
> Plan A: update RFC 2369 to say MAY add spaces, send out a press release, =
wait for
everyone in the world to update their software to remove spaces when parsin=
g List-x
headers.
>
> Plan B: figure out how to make your URLs short enough that your List-Unsu=
bscribe
headers are under 998 characters.
>
> I know what I'd do.
Plan A is not what I suggest at all; I suggest rather that whitespace "SHOU=
LD NOT" be generated between the angle brackets (compare with RFC 2557 sec.=
4.4, which applies to the Content-Location header field, which uses URLs s=
imilarly to how List-Unsubscribe and certain other list header fields do).
Plan B is only feasible if the same person provides the URL _and_ writes th=
e code to generate the List-Unsubscribe header field (or any other list hea=
der field) for the corresponding message; not so if a software library gene=
rates a message containing the value of a List-Unsubscribe (or other) heade=
r field provided by a (third-party) user that, while otherwise syntacticall=
y valid, could exceed 998 characters in length. The software library would=
then have to either=E2=80=94
- reject the user-provided value (even though it=E2=80=99s otherwise syntac=
tically valid =E2=80=93 note that RFC 2369 neither specifies nor mandates a=
character limit), or=20
- be forced to generate a message with a line exceeding 998 characters or t=
o fold lines to fit that character limit, or
- take some other error-handling action.
--Peter
--_90526788-B888-4660-B007-0467FFAF91A5_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of=
fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta ht=
tp-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta name=
=3DGenerator content=3D"Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
..MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:377166631;
mso-list-type:hybrid;
mso-list-template-ids:-748398316 -1 67698691 67698693 67698689 67698691 67=
698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style></head><body lang=3DEN-US link=3Dblue vlink=3D"#954F72"><div cla=
ss=3DWordSection1><p class=3DMsoNormal>>Remember that MUST means "d=
o this if you want to interoperate", not "do this or die."</=
p><p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>> P=
lan A: update RFC 2369 to say MAY add spaces, send out a press release, wai=
t for</p><p class=3DMsoNormal>everyone in the world to update their softwar=
e to remove spaces when parsing List-x</p><p class=3DMsoNormal>headers.</p>=
<p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>> Pla=
n B: figure out how to make your URLs short enough that your List-Unsubscri=
be</p><p class=3DMsoNormal>headers are under 998 characters.</p><p class=3D=
MsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>> I know what I'=
d do.</p><p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Pla=
n A is not what I suggest at all; I suggest rather that whitespace "SH=
OULD NOT" be generated between the angle brackets (compare with RFC 25=
57 sec. 4.4, which applies to the Content-Location header field, which uses=
URLs similarly to how List-Unsubscribe and certain other list header field=
s do).</p><p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Pl=
an B is only feasible if the same person provides the URL _and_ writes the =
code to generate the List-Unsubscribe header field (or any other list heade=
r field) for the corresponding message; not so if a software library genera=
tes a message containing the value of a List-Unsubscribe (or other) header =
field provided by a (third-party) user that, while otherwise syntactically =
valid, could exceed 998 characters in length.=C2=A0 The software library wo=
uld then have to either=E2=80=94</p><p class=3DMsoNormal><o:p> </o:p><=
/p><ul style=3D'margin-top:0in' type=3Ddisc><li class=3DMsoListParagraph st=
yle=3D'margin-left:0in;mso-list:l0 level1 lfo1'>reject the user-provided va=
lue (even though it=E2=80=99s otherwise syntactically valid =E2=80=93 note =
that RFC 2369 neither specifies nor mandates a character limit), or </li><l=
i class=3DMsoListParagraph style=3D'margin-left:0in;mso-list:l0 level1 lfo1=
'>be forced to generate a message with a line exceeding 998 characters or t=
o fold lines to fit that character limit, or</li><li class=3DMsoListParagra=
ph style=3D'margin-left:0in;mso-list:l0 level1 lfo1'>take some other error-=
handling action.</li></ul><p class=3DMsoNormal><o:p> </o:p></p><p clas=
s=3DMsoNormal>--Peter</p></div></body></html>=
--_90526788-B888-4660-B007-0467FFAF91A5_--
--===============8958342309624107648==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
ietf-822 mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ietf-822
--===============8958342309624107648==--