Сохранить письмо в отправленную папку, используя Spring Mail - PullRequest
0 голосов
/ 04 марта 2020

У меня есть функция для отправки электронного письма клиенту для подтверждения заказа, заказанного клиентом.

Код:

@Bean
public JavaMailSender orderMailSender() {
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    mailSender.setHost("mail.myserver.vn");
    mailSender.setPort(25);

    mailSender.setUsername(SystemParams.ORDER_EMAIL_ADDRESS);
    mailSender.setPassword(SystemParams.ORDER_EMAIL_PASSWORD);

    Properties props = mailSender.getJavaMailProperties();
    props.put("mail.transport.protocol", "smtp");
    props.put("mail.smtp.auth", "true");
    props.put("mail.store.protocol", "imaps");
    props.put("mail.smtp.starttls.enable", "false");
    props.put("mail.debug", "true");

 return mailSender;
}



private void sendEmailConfirm(HttpSession session) {
    try {
        MimeMessage message = emailSender.createMimeMessage();
        boolean multipart = true;
        MimeMessageHelper helper = new MimeMessageHelper(message, multipart);
        Object object = session.getAttribute(Constants.CART_CONFIRM_ATTRIBUTE_NAME);
        String htmlMsg = "<h4>Đơn hàng #" + object + " đã được tạo thành công.<h4>";
        message.setContent(htmlMsg, "text/html; charset=utf-8");
        message.setSubject("Xác nhận đơn hàng #" + object, StandardCharsets.UTF_8.displayName());
        message.setFrom(SystemParams.ORDER_EMAIL_ADDRESS);
        helper.setTo("customeremail@gmail.com");
        // helper.setSubject();
        this.emailSender.send(message);
    } catch (Exception e) {
        e.printStackTrace();
    }
 }

Все данные, которые я в данный момент храню в сеансе , С этим кодом электронное письмо успешно отправлено, но оно не сохраняется в отправленной папке. Как я могу сохранить отправленное письмо в отправленную папку на почтовом сервере?

1 Ответ

1 голос
/ 04 марта 2020

Возможно, вам придется сделать это явно

Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imap");
store.connect(host, "user", "userpwd");

Folder folder = (Folder) store.getFolder("Sent");
if (!folder.exists()) {
   folder.create(Folder.HOLDS_MESSAGES);
}
folder.open(Folder.READ_WRITE);
System.out.println("appending...");
try {
    folder.appendMessages(new Message[]{message});
     // Message[] msgs = folder.getMessages();
     message.setFlag(FLAGS.Flag.RECENT, true);
    } catch (Exception ignore) {
       System.out.println("error processing message " + ignore.getMessage());
    } finally {
        store.close();
        folder.close(false);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...