Мой вариант использования - отправить файл по почте, в котором есть китайские иероглифы. что-то вроде TW_TEST_1062054_COM_20191020_ 前端 離岸 風 電 設備 製造 股份有限公司 _N_20201117
Прочитав некоторые сообщения, я понял, что некоторые свойства отсутствуют, и он заработал на моем локальном компьютере. Тем не менее, я в Openshift, эти свойства не имеют никакого эффекта. Пожалуйста, смотрите мою конфигурацию ниже.
Properties properties = System.getProperties();
properties.put("mail.mime.splitlongparameters", "false");
properties.put("mail.mime.encodefilename", "true");
properties.put("mail.mime.encodeparameters", "false");
properties.put(SMTP_CONNECT_TMOUT.getName(), SMTP_CONNECT_TMOUT.getValue());
properties.put(SMTP_READ_TMOUT.getName(), SMTP_READ_TMOUT.getValue());
properties.put(SMTP_WRITE_TMOUT.getName(), SMTP_WRITE_TMOUT.getValue());
log.info("Create Mail Sender instance with: hostname: '{}', port: '{}'", hostname, port);
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setJavaMailProperties(properties);
mailSender.setHost(hostname);
mailSender.setPort(port);
Отправка электронной почты с вложением, как показано ниже
JavaMailSender mailSender = mailSenderRef.get();
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"UTF-8");
ExternalMimeMessageUtils.updateFrom(mail, helper);
DataSource dataSource = new ByteArrayDataSource(attachment, "application/pdf");
helper.addAttachment(MimeUtility.encodeWord(request.getFile()), dataSource);
mailSender.send(mimeMessage);
log.info("Email sent successfully");
mailBoxService.save(mailBoxItem.sentStatus());
Просто повторюсь, на моем локальном компьютере все выглядит хорошо. У меня возникла проблема после развертывания в openshift как приложение для весенней загрузки . Почтовое вложение отображается как
= ANSI_X3.4-1968QTW = 5F1062055 = 5F1062053 = 5FCOMFWD = 5F = = ANSI_X3
Благодарим за любые предложения. Спасибо.