2016-11-04 50 views
0

我一直在尝试很多来自多个资源之类的东西Read Inbox Java2sHow to get the list of available folders in a mail account using JavaMail读取发送的邮件使用SMTP的Java

我成功地发送电子邮件,但可以肯定的邮件发送成功,我需要阅读电子邮件从发送项目文件夹这是可能的与smtp?如果是的话,怎么样?

目前我甚至在与stroe连接中卡住了。我发现没办法通过的步骤 Store store = session.getStore();store.connect();

我不知道imappop3想法。他们可能没有被配置在我们的服务器上,但是如果smtp没有问题,那么我准备好使用这些协议来处理,但我仍然使用stmp发送邮件。我已经试过很多编辑在我下面的代码,但没有什么帮助

 String host = "mysite.smtp.com"; 
     Properties props = new Properties(); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", host); 
     props.put("mail.smtp.port", "myport"); 
     props.put("mail.smtp.auth", "true"); 


     Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       String user = "myname"; 
       String password = "mypassword"; 
       return new PasswordAuthentication(user, password); 
      } 
     }); 
     Store store = session.getStore(); // had tried writing "imaps" here 
     store.connect(host, null, null); 
     //store.connect(); also tried this 

     Folder inbox = store.getFolder("INBOX"); //actually i need "SENT" 
     if (inbox == null) { 
      System.out.println("No INBOX"); 
      System.exit(1); 
     } 
     inbox.open(Folder.READ_ONLY); 

     Message[] messages = inbox.getMessages(); 
     for (int i = 0; i < messages.length; i++) { 
      System.out.println("Message " + (i + 1)); 
      messages[i].writeTo(System.out); 
     } 
     inbox.close(false); 
     store.close(); 
+0

请参阅此链接(https://stackoverflow.com/questions/14730384/how-to-save-sent-ite-ms-mail-using-the -java-mail-api/48658249#48658249)使用JAVA MAIL API保存已发邮件 – Deepanjan

回答

1

不能使用SMTP来阅读电子邮件,你需要使用IMAP。 pop3不会帮助,因为它只能让你阅读收件箱。

根据“发送成功”的意思,发送方法的成功返回将告诉你你想知道什么。

还要注意,根据您使用的邮件服务器,发送的邮件不会自动出现在“已发送邮件”文件夹中;您可能需要在发送消息后自己复制它们。 (Gmail自动执行此操作,但不是所有其他服务器都这样做。)

如果您确实想知道邮件已成功传送到目标邮件服务器并且所有地址都有效,那就更难了。 JavaMail FAQ有更多信息。

0

我知道我回答迟到。在维护使用广泛的邮件发送功能的软件时,我遇到了非常类似的问题。我最终创建了一个JUnit扩展来编写带有SMTP服务器仿真的集成测试。

请看github.com/sleroy/fakesmtp-junit-runner/。顺便说它是开源的。

0

请参考以下链接:

How to save sent items mail using the Java mail API?

使用JavaMail API

还请注意,根据您所使用的邮件服务器上发送邮件服务,发送的邮件不会自动出现在“已发信息“文件夹;您可能需要在发送消息后自己复制它们。 (Gmail自动执行此操作,但不是所有其他服务器都这样做。)