问题描述
我在向收件人列表发送电子邮件时遇到问题。
这是例外。
javax.mail.internet.AddressException: Illegal semicolon,not in group in string ``[email protected];[email protected]'' at position 23
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:1021)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:728)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:705)
at org.springframework.mail.javamail.MimeMessageHelper.parseAddress(MimeMessageHelper.java:735)
at org.springframework.mail.javamail.MimeMessageHelper.setTo(MimeMessageHelper.java:614)
at com.vyzor.emailmanager.service.impl.EmailServiceImpl.sendEmail(EmailServiceImpl.java:166)
at com.vyzor.emailmanager.restapi.EmailController.sendEmail(EmailController.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
public Email sendEmail(Email email){
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
List<EmailConfig> emailConfigs = emailConfigRepository.findAllByClientWebId(email.getClient().getWebId());
EmailConfig emailConfig;
if (emailConfigs.iterator().hasNext()){
emailConfig = emailConfigs.iterator().next();
}else{
throw new ResourceNotFoundException(HttpStatus.NOT_FOUND.getReasonPhrase());
}
javaMailSender.setHost(emailConfig.getHostName());
javaMailSender.setPort(emailConfig.getPortNo());
javaMailSender.setUsername(emailConfig.getEmail());
javaMailSender.setPassword(emailConfig.getpassword());
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.starttls.enable","true");
javaMailProperties.put("mail.smtp.auth","true");
javaMailProperties.put("mail.transport.protocol","smtp");
javaMailProperties.put("mail.debug","true");
try{
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(email.getFromEmail());
String recipients = email.getEmailRecipient().stream()
.map(EmailRecipient::getEmailAddress)
.collect( Collectors.joining( ";" ) );
helper.setTo(recipients); // I am having issue here
helper.setSubject(email.getSubject());
helper.setText(email.getBody());
javaMailSender.setJavaMailProperties(javaMailProperties);
javaMailSender.send(message);
}catch (Exception exception){
exception.printstacktrace();
email.setStatus(EmailStatus.Failed);
return null;
}
return email;
}
我也尝试过逗号分隔,但异常仍然存在。如果我尝试使用一个硬编码的电子邮件地址,它就可以正常工作。
将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)