JavaMail verwendet MimeMessage InternetAddress :
Diese Klasse repräsentiert eine Internet-E-Mail-Adresse mit der Syntax von RFC822. Die typische Adressensyntax hat die Form "[email protected]" oder "Persönlicher Name & lt; [email protected] & gt;".
RFC822-Format sagt:
Beachten Sie, dass RFC 822 das Zeichenrepertoire auf ASCII beschränkt. Im Üblicherweise arbeiten andere Zeichen (wie ä oder é) in der Regel in Anführungszeichen Zeichenfolgen, die für Kommentare (und Kommentare) verwendet werden, aber nicht in den richtigen Adressen verwendet werden.
Internetadresse verwendet einen persönlichen Namen:
Wenn der Name Nicht-US-ASCII-Zeichen enthält, dann wird der Name mit dem angegebenen Zeichensatz gemäß RFC codiert 2047. Wenn der Name nur US-ASCII-Zeichen enthält, wird keine Codierung vorgenommen und der Name wird unverändert verwendet.
Um den Zeichensatz für die Codierung festzulegen, gibt es einen InternetAddress # -Konstruktor . Quellen betrachten:
%Vor%es ruft einfach setPersonal (..) , also wähle es aus der Weg, der für dich am bequemsten ist.
Um nach einem Zeichensatz zu suchen, verwenden Sie Charset.forName () .
Ich mache das, wo addressString eine Email-Adresse mit NLS-Zeichen ist:
%Vor% getPersonal()
erhält den rohen persönlichen Namen, wenn es einen gibt, denn wenn Sie die Internetadresse mit einer einzelnen Zeichenfolge oder mit InternetAddress.parse()
erstellt haben, haben Sie den persönlichen Namensteil nicht in einer separaten Zeichenfolge:
public java.lang.String getPersonal ()
Erhalte den persönlichen Namen. Wenn der Name gemäß RFC 2047 kodiert ist, wird er entschlüsselt und in Unicode konvertiert. Wenn die Decodierung oder Konvertierung fehlschlägt, werden die Rohdaten unverändert zurückgegeben.
Dann setzt setPersonal()
die Zeichenkette wieder zurück, aber diesmal mit InternetAddress
, um sie zu codieren:
public void setPersonal (java.lang.String-Name, java.lang.String-Zeichensatz)
Legen Sie den persönlichen Namen fest. Wenn der Name Nicht-US-ASCII-Zeichen enthält, wird der Name mit dem angegebenen Zeichensatz gemäß RFC 2047 codiert. Wenn der Name nur US-ASCII-Zeichen enthält, wird keine Codierung durchgeführt und der Name wird unverändert verwendet.
Tags und Links java email mime-message