Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring mail将电子邮件保存到已发送文件夹_Java_Spring_Email - Fatal编程技术网

Java 使用spring mail将电子邮件保存到已发送文件夹

Java 使用spring mail将电子邮件保存到已发送文件夹,java,spring,email,Java,Spring,Email,我有一个功能,发送电子邮件给客户,以确认客户已订购的订单 代码: @Bean public JavaMailSender orderMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost("mail.myserver.vn"); mailSender.setPort(25); mailSender.setUsername(SystemP

我有一个功能,发送电子邮件给客户,以确认客户已订购的订单

代码:

@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();
    }
 }
@Bean
公共JavaMailSender orderMailSender(){
JavaMailSenderImpl mailSender=新的JavaMailSenderImpl();
setHost(“mail.myserver.vn”);
mailssender.setPort(25);
mailSender.setUsername(SystemParams.ORDER\u电子邮件地址);
mailssender.setPassword(SystemParams.ORDER\u EMAIL\u密码);
Properties=mailssender.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”);
返回邮件发送者;
}
私有void sendmailconfirm(HttpSession会话){
试一试{
MimeMessage message=emailSender.createMimeMessage();
布尔多部分=真;
mimessagehelper=新的mimessagehelper(消息,多部分);
Object Object=session.getAttribute(Constants.CART\u CONFIRM\u ATTRIBUTE\u NAME);
字符串htmlMsg=“Đơn háng#”+object+“đđư”ợCTạo thánh công。”;
message.setContent(htmlMsg,“text/html;charset=utf-8”);
message.setSubject(“Xác nhậnđn háng#“+对象,StandardCharsets.UTFơu 8.displayName());
message.setFrom(SystemParams.ORDER\u电子邮件地址);
helper.setTo(“customeremail@gmail.com");
//helper.setSubject();
this.emailSender.send(message);
}捕获(例外e){
e、 printStackTrace();
}
}

我当前存储在会话中的所有数据。使用此代码,电子邮件已成功发送,但未存储在“已发送”文件夹中,如何将已发送的电子邮件保存到电子邮件服务器的“已发送”文件夹中?

您可能需要明确执行此操作

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);
}

如何在您的第一行代码中创建
session
对象?更新答案。FYI props只是属性的变量名我可以使用mailSender bean的属性吗?是的,您可以用相同的方法集成上面的内容