Javaを介してメールを送信する必要があります。InternetAddressのPersonal(送信者名)は任意のUTF8文字列にすることができます。私の電子メールアドレス文字列には個人が含まれる場合と含まれない場合があるため、適切なInternetAddressを構築するためにInternetAddress(String)コンストラクターのみを使用しています。
InternetAddress sender = new InternetAddress( "s\u00E8nder <from@example.org>" );
sender.setPersonal( sender.getPersonal(), Charsets.UTF_8.name() );
私の理解では(テストはこれをサポートしているようです)、基本的なInternetAddressコンストラクターはPersonalエンコーディングを実行しないため、MIMEに準拠してPersonalをエンコードする追加の手順でこれを実行しています。
私の質問は、この手順が特定の状況で失敗する可能性があるかどうかです。javadocは、デコードが失敗した場合、.getPersonal()が生データを返す可能性があると述べています。しかし、これは本当に起こり得るのでしょうか?そして、失敗した場合、javadocがsetPersonalにASCII以外のコードが含まれている場合にのみエンコードを行うように指示しているように、問題が発生しますが、rawdataはそれを行いません。