Hello. In the code I send the letter from two different parts of the code. The first version of the code (sendMail code) sends it with the attachment empty, the file name is Noname. The second version of the code, does not send any attachments already. I can not understand what the problem is.
public JavaMailSenderImpl mailSender() { JavaMailSenderImpl javaMailSenderImpl = new JavaMailSenderImpl(); javaMailSenderImpl.setHost("smtp.gmail.com"); javaMailSenderImpl.setPort(567); javaMailSenderImpl.setUsername("************"); javaMailSenderImpl.setPassword("***********"); javaMailSenderImpl.getJavaMailProperties().put("mail.smtp.host", "smtp.gmail.com"); javaMailSenderImpl.getJavaMailProperties().put("mail.smtp.port", "465"); javaMailSenderImpl.getJavaMailProperties().put("mail.debug", "true"); javaMailSenderImpl.getJavaMailProperties().put("mail.smtp.auth", "true"); javaMailSenderImpl.getJavaMailProperties().put("mail.smtp.starttls.enable", "true"); javaMailSenderImpl.getJavaMailProperties().setProperty("mail.smtp.socketFactory.port", "465"); javaMailSenderImpl.getJavaMailProperties().setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); javaMailSenderImpl.getJavaMailProperties().setProperty("mail.smtp.socketFactory.fallback", "false"); return javaMailSenderImpl; } The code that sends the attachment:
public void sendMail(String to, String userName) throws MessagingException { StringTokenizer tokenizer = new StringTokenizer(to + ";", ";,"); MimeMessage message2 = javaMailSenderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message2, true); Formatter formatter = new Formatter(); formatter.format("************* %S в: %s", userName, new Date()); helper.setTo(tokenizer.nextToken()); while (tokenizer.hasMoreTokens()) { helper.addCc(tokenizer.nextToken()); } helper.setFrom("**************"); helper.setSubject(formatter.toString()); javaMailSenderImpl.send(message2); } Call:
utilService.sendMail("*****" , SecurityContextHolder.getContext().getAuthentication().getName().toString()); 