La partie de la fonction InternetAddress.parse(String addressList, boolean strict)
du java-gmail-imap
est utilisé pour analyser les listes de courriel séparées par ,
de la forme [email protected]
et Personal Name <[email protected]>
qui sont conformes à la norme RFC822.InternetAddress Parse défaut sur en-têtes Mime en raison de certains e-mails
Ceci est généralement utilisé pour analyser les en-têtes mime d'un email (Ceci est présent dans le MessagePartHeader
dans l'objet Message
retourné par l'API gmail).
Question: La méthode parse
jette un AddressException
lorsqu'il rencontre une adresse e-mail ne peut pas analyser. Le problème avec ceci est qu'il est incapable d'analyser toute la liste d'adresses à cause d'une adresse email potentiellement défectueuse/mal formée/non-ascii. Existe-t-il un bon moyen de scinder les en-têtes mime (tels que to, bcc, cc) en adresses e-mail individuelles et de les analyser individuellement? (Ce n'est pas aussi simple qu'une scission sur ,
parce que les noms peuvent potentiellement contenir ,
). De cette façon, je peux localiser la mauvaise adresse e-mail.
De plus, y a-t-il de meilleurs analyseurs java mime capables d'analyser les emails contenant des caractères non-ascii dans les adresses email (RFC6530, RFC6531 et RFC6532)? De cette façon, je peux avoir une meilleure chance d'analyser cette adresse email défectueuse localisée qui n'est pas conforme à la RFC822.
Êtes-vous d'appeler la méthode InternetAddress.parse explicitement? Ou êtes-vous dépendant de l'analyse implicite effectuée par la classe MimeMessage? Si ce dernier, définissez le ['mail.mime.address.strict'] (https://javaee.github.io/javamail/docs/api/javax/mail/internet/package-summary.html#mail.mime. address.strict) La propriété de session est 'false', ce qui devrait garantir que vous n'obtiendrez jamais une exception AddressException. –
J'appelle explicitement la méthode 'InternetAddress.parse'. Que dois-je faire pour le scénario précédent? – iart
Appelez la méthode [parseHeader] (https://javaee.github.io/javamail/docs/api/javax/mail/internet/InternetAddress.html#parseHeader-java.lang.String-boolean-). –