2016-11-04 3 views
0

Я пытался много вещей из нескольких ресурсов, такие как Read Inbox Java2s и How to get the list of available folders in a mail account using JavaMailчтение послало почту с помощью SMTP Java

Я посылаю электронную почту успешно, , но быть уверенными в почте отправляется успешно, я должен читать электронную почту из папки отправленных товаров Возможно ли это с помощью smtp? если да, то как?

В настоящее время я застрял даже в соединении с строкой. Я не нахожу никакого способа, чтобы пройти этапы Store store = session.getStore(); и store.connect();

Я не имею ни малейшего представления о imap или pop3. Возможно, на нашем сервере они даже не были настроены, но если 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

Обратитесь к [link] (https://stackoverflow.com/questions/14730384/how-to-save-sent-items-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?

Sent Mail Service с помощью JavaMail API

Следует также отметить, что в зависимости от почтового сервера, который вы используете, отправленные сообщения автоматически не появляются в " Отправленные сообщения "; вам может потребоваться скопировать их самостоятельно после отправки сообщения. (Gmail делает это автоматически, но не все остальные серверы делают.)

Смежные вопросы