JavaMailSender
Web アプリケーションからメールを送信するためにSpring を使用しています。これまでは問題なく機能していましたが、この場合を除いて: 顧客の 1 人が、電子メール クライアントが電子メールの文字を読み取ることができず、次のように表示されたと報告しました。
このメッセージは、インターネット サービスでサポートされていない文字セットを使用しています。元のメッセージの内容を表示するには、添付されたメッセージを開きます。テキストが正しく表示されない場合は、添付ファイルをディスクに保存し、元の文字セットを表示できるビューアを使用して開きます。
奇妙なことに、このエラーが表示されるのは 1 人だけです。他の人はメールを問題なく見ることができます。問題のあるユーザーは Hotmail を使用しています。
いくつかのフォーラムを検索しましたが、そのほとんどはメール クライアントに不満を抱いている顧客に関するものですが、サーバー側の解決策や回避策はあまりありません。邪魔なSMTPサーバーがUnicodeをサポートしていないためだと言う人もいますが、そうではないと思います...
これが私の(簡略化された)コードです:
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(new InternetAddress("abc@abc.abc","Hoang Long"));
helper.setReplyTo("abc@abc.abc");
helper.setTo(student.getEmail());
helper.setSubject(emailSubject);
helper.setCc(studioParameterService.getAllCCEmailAddress(studio.getId()));
helper.setSentDate(new Date());
helper.setText(emailContent, true);
for (String filePath : attachFileList) {
FileSystemResource attachFile = new FileSystemResource(filePath);
helper.addAttachment(attachFile.getFilename(), attachFile);
}
mailSender.send(helper.getMimeMessage());