Я использую Spring MVC для своего веб-приложения и использую applicationContext.xml
файл для настройки моих электронных писем, которые я добавляю в мои контроллеры в моем файле spring-servlet.xml .
Некоторые из писем, которые мне нужно отправить, должны быть адаптированы к клиенту, которому они отправляются. Определенная информация в электронном письме (имя, фамилия, номер телефона и т. Д.) Должна быть заполнена после того, как текст электронного письма будет введен в контроллер и отправляется.
Примером этого является приведенный ниже компонент
<bean id="customeMailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="from" value="from@no-spam.com" />
<property name="to" value="to@no-spam.com" />
<property name="subject" value="Testing Subject" />
<property name="text">
<value>
Dear %FIRST_NAME%
Blah Blah Blah Blah Blah...
We Understand that we can reach you at the following information
Phone:%PHONE%
Address:%ADDRESS%
</value>
</property>
</bean>
Это будет пользовательское сообщение электронной почты, которое я определю и добавлю в свой контроллер. Затем код в моем контроллере будет заполнять значения на основе входных данных, полученных от клиента, чтобы у контроллера был код, подобный следующему
//SimpleMailMessage property is injected into controller
private SimpleMailMessage simpleMailMessage;
//Getters and Setters for simpleMailMessage;
MimeMessage message = mailSender.createMimeMessage();
try{
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(simpleMailMessage.getFrom());
helper.setTo(simpleMailMessage.getTo());
helper.setSubject(simpleMailMessage.getSubject());
String text = simpleMailMessage.getText();
text.replace("%FIRST_NAME%",model.getFirstName());
text.replace("%PHONE%",model.getPhone());
text.replace("%ADDRESS%",model.getAddress());
helper.setText(simpleMailMessage.getText());
}
catch (MessagingException e) {
throw new MailParseException(e);
}
mailSender.send(message);**strong text**
Проблема, с которой я столкнулся, заключается в том, что при попытке заменить значения, такие как % FIRST_NAME% , % PHONE% и % ADDRESS%> , это не заменяет это. Я не уверен, если это потому, что я использую replace () неправильно, или это потому, что он обрабатывает это по-другому, потому что значение вводится. Я также попытался использовать replaceAll (), и это тоже не работает. Если у кого-нибудь есть идеи, как это сделать, пожалуйста, дайте мне знать.
Спасибо