Я отправляю электронную почту с помощью Spring MVC, но она отображается по-разному в браузере и электронной почте Outlook

    @Service("emailService")
    public class EmailService {  
    @Autowired
     private JavaMailSender mailSender;
     StringBuilder ResponseTable=new StringBuilder();
       public void sendMail(String emailid,String subject,int 
         tracking_id,String classification_type){


      MimeMessage message=mailSender.createMimeMessage();
      MimeMessageHelper helper=new MimeMessageHelper(message,true,"UTF- 8");    

     helper.setTo(emailid);
     helper.setText(ResponseTable.toString(),true);

     helper.setSubject(subject);

     mailSender.send(message);


   }
  }

when i am open browser email

when I open outlook

-1
Deepak Singh 16 Дек 2019 в 12:49
Пожалуйста, повторно отметьте свой вопрос. Этот вопрос вряд ли связан с каким-либо из этих тегов. В основном это связано с тем, «как форматировать таблицы в Mails / Outlook».
 – 
Alexander
16 Дек 2019 в 13:07
С помощью всего 2 скриншотов на этот вопрос невозможно ответить. Добавьте код, который подготавливает и отправляет электронное письмо, вашу конфигурацию и т. д. Пожалуйста, прочтите stackoverflow.com/help/how-to-ask о том, как задать хороший вопрос.
 – 
M. Deinum
16 Дек 2019 в 13:15

1 ответ

Вы можете использовать шаблон Velocity Engine для создания пользовательского шаблона:

  1. создайте свой шаблон mailTemplate.vm

  2. создайте метод, в который вы можете вставить данные в модель

  3. создайте метод для вставки этой модели в ваш шаблон

    1.mailTemplate.vm

    <html> 
    <head></head>
    <body>
        <p>hello,</p>
        <p>${variable}</p>
    </body>
    </html>
    
    1. Создать модель для отправки уведомления по электронной почте

       public Boolean NotificationMail (отправитель строки, получатель строки, URL-адрес строки,            Тема строки, нижний колонтитул строки) {           LOG.info(" ... Отправка нового письма с уведомлением о подписке ");          пытаться {            JavaMailSenderImpl mailSender = new JavaMailSenderImpl();            mailSender.setHost(mailHost);            mailSender.setPort(порт);            mailSender.setJavaMailProperties(setMailProperties());             Map model = new HashMap();            model.put("переменная", "привет это текст будет отображаться в почте");              Тело строки = getVelocityTemplate (модель);            LOG.info("Почтовый хост {}, порт {}, URL-адрес {}, отправитель {}, получатель {}, тема {}, тело {}",                mailHost, порт, URL, отправитель, получатель, тема, тело);            Логическое значение send = mailService.sendMailWithImg (отправитель, получатель, тема, тело);            вернуть истину;          } поймать (IllegalArgumentException e) {            LOG.error("IllegalArgumentException , Отсутствует конфигурация", e);          } поймать (Исключение e) {            LOG.error("Общее исключение: {}", e);          }          вернуть ложь;        }    
    2. вставить модель в шаблон

       protected String getVelocityTemplateContent (модель Map) {  StringWriter stringWriter = новый StringWriter();  Построитель StringBuilder = новый StringBuilder();  builder.append("/template/mailTemplate.vm");  пытаться {    VelocityEngineUtils.mergeTemplate(velocityEngine, builder.toString(), "UTF8", модель,        СтроковыйПрайтер);    вернуть stringWriter.toString();  } поймать (Исключение e) {    ЛОГ.ошибка("Ошибка",е);  }  вернуть ноль;      }      }  
0
BENMOHAMED Charfeddine 16 Дек 2019 в 16:07