【发布时间】:2021-03-11 23:56:12
【问题描述】:
我想创建一个应用程序来向多个收件人发送电子邮件。它从 csv 文件中提供电子邮件地址并向每个收件人发送电子邮件,但我在执行此操作时遇到了一些麻烦。 你能帮帮我吗?
这是我的 CSVHelper.java
@Component
public class CSVHelper
{
public static String TYPE = "text/csv";
static String[] HEADERs = { "id", "email", "dateEcheance"};
//This method is used to filter the csv file and get only the emails
public List<ContactsFile> csvToEmails() throws NumberFormatException, ParseException
{
InputStream is = null;
try (BufferedReader fileReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
CSVParser csvParser = new CSVParser(fileReader, CSVFormat.DEFAULT.withFirstRecordAsHeader().withIgnoreHeaderCase().withTrim());)
{
List<ContactsFile> emailsList = new ArrayList<>();
Iterable<CSVRecord> csvRecords = csvParser.getRecords();
for (CSVRecord csvRecord : csvRecords)
{
ContactsFile contact = new ContactsFile(csvRecord.get("email"));
emailsList.add(contact);
}
System.out.println(emailsList);
return emailsList;
}
catch (IOException e) { throw new RuntimeException("fail to get emails: " + e.getMessage()); }
}
我们在控制器中调用 csvToEmails() 方法来发送电子邮件
@Autowired
private CSVHelper csvHelper;
@PostMapping("/getdetails")
public @ResponseBody EmailNotification sendMail(@RequestBody EmailNotification details) throws Exception {
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
StandardCharsets.UTF_8.name());
try {
helper.setTo((InternetAddress) csvHelper.csvToEmails());
helper.setText(details.getMessage(),true);
helper.setSubject("Test Mail");
} catch (javax.mail.MessagingException e) {
e.printStackTrace();
}
sender.send(message);
return details;
这是 csv 文件的示例:
id,email,dateEcheance
1,address@email.com,10/05/2021
2,address2@email.com,10/02/2021
我是 Spring Boot 新手,我无法完成这个项目。
【问题讨论】:
-
您遇到了什么问题?
-
我在过滤 csv 文件并仅从中获取电子邮件时遇到了麻烦。我不知道如何继续
-
我已添加我的回复。
-
非常感谢您的帮助,但是一旦我想将电子邮件发送给收件人,我就会收到此异常: .mmaExceptionHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error : 无法从 VALUE_STRING 令牌中反序列化 java.util.ArrayList
的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList out of VALUE_STRING token
标签: spring-boot csvhelper