Combien de caractères sont autorisés à figurer dans la ligne d'objet du courrier électronique Internet? J'ai eu une analyse du RFC pour le courrier électronique, mais je ne pouvais pas voir précisément combien de temps il était autorisé à être. J'ai un collègue qui veut le valider par programme.
S'il n'y a pas de limite formelle, quelle longueur suggérer dans la pratique?
Réponses:
Voir RFC 2822 , section 2.1.1 pour commencer.
Comme le RFC l'indique plus tard, vous pouvez contourner cette limite (pas que vous devriez) en pliant le sujet sur plusieurs lignes.
La recommandation pour un maximum de 78 caractères dans l'en-tête du sujet semble raisonnable. Personne ne veut faire défiler pour voir la ligne d'objet entière, et quelque chose d'important pourrait être coupé à droite.
la source
La RFC2322 indique que l'en-tête du sujet "n'a pas de restriction de longueur"
mais pour produire de longs en-têtes, mais vous devez le diviser sur plusieurs lignes, un processus appelé "pliage".
le sujet est défini comme "non structuré" dans la RFC 5322
voici quelques citations ([...] indiquent des choses que j'ai omises)
la source
c-client
après quelques tests: si vous envoyez un e-mail à un client Outlook et que le sujet est> 77 caractères, et qu'il doit être utilisé
"=?ISO"
à l'intérieur du sujet (dans mon cas à cause des accents), alors OutLook "coupera" le sujet au milieu de et maillez tout ce qui vient après, y compris le corps du texte, les pièces jointes, etc ... tout un maillage!J'ai plusieurs exemples comme celui-ci:
À:
Comme vous le voyez, dans la ligne d'objet, il a coupé le caractère 78 avec un "=" suivi de 2 ou 3 sauts de ligne, puis a continué avec le reste du sujet.
Il m'a été signalé par plusieurs clients qui utilisaient tous OutLook, d'autres clients de messagerie s'occupent de ces sujets.
Si vous n'avez pas d'ISO dessus, ça ne fait pas de mal, mais si vous l'ajoutez à votre sujet pour être sympa avec RFC, alors vous obtenez cette surprise d'OutLook. Si vous n'ajoutez pas les ISO, les e-mails de l'iPhone ne le comprendront pas (et joindre des fichiers avec des noms utilisant de tels caractères ne fonctionnera pas sur les iPhones).
la source
Je ne crois pas qu'il y ait une limite formelle ici, et je suis à peu près sûr qu'il n'y a pas non plus de limite stricte spécifiée dans la RFC, comme vous l'avez constaté.
Je pense que certaines limitations assez courantes pour les lignes d'objet en général (pas seulement les e-mails) sont:
Évidemment, vous voulez trouver quelque chose de raisonnable. Si vous écrivez un client de messagerie, vous voudrez peut-être utiliser quelque chose comme 256 caractères, et évidemment tester minutieusement contre les gros serveurs commerciaux là-bas pour vous assurer qu'ils servent correctement votre courrier.
J'espère que cela t'aides!
la source
Ce qui est important, c'est le mécanisme que vous utilisez pour envoyer l'e-mail. La plupart des bibliothèques modernes (c'est-à-dire System.Net.Mail) vous cacheront le pliage. Vous venez de mettre une très longue ligne d'objet de courrier électronique sans (CR, LF, HTAB). Si vous commencez à essayer de faire votre propre pliage, tous les paris sont désactivés. Il commencera à signaler des erreurs. Donc, si vous rencontrez ce problème, filtrez le CR, LF, HTAB et laissez la bibliothèque faire le travail pour vous. Vous pouvez généralement également définir le type de texte d'encodage comme un champ distinct. Pas besoin d'encodage iso dans la ligne d'objet.
la source