Advertisement
Guest User

Untitled

a guest
Apr 18th, 2016
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. package greenmailtest;
  2.  
  3. import java.io.IOException;
  4. import java.util.Properties;
  5.  
  6. import javax.mail.Folder;
  7. import javax.mail.Message;
  8. import javax.mail.MessagingException;
  9. import javax.mail.Session;
  10. import javax.mail.Store;
  11. import javax.mail.URLName;
  12. import javax.mail.internet.InternetAddress;
  13. import javax.mail.internet.MimeMessage;
  14.  
  15. import com.icegreen.greenmail.user.GreenMailUser;
  16. import com.icegreen.greenmail.user.UserException;
  17. import com.icegreen.greenmail.util.GreenMail;
  18. import com.icegreen.greenmail.util.GreenMailUtil;
  19. import com.icegreen.greenmail.util.ServerSetupTest;
  20.  
  21. public class ImapIT {
  22. private static final String USER_PASSWORD = "abcdef123";
  23. private static final String USER_NAME = "hascode";
  24. private static final String EMAIL_USER_ADDRESS = "hascode@localhost";
  25. private static final String EMAIL_TO = "someone@localhost.com";
  26. private static final String EMAIL_SUBJECT = "Test E-Mail";
  27. private static final String EMAIL_TEXT = "This is a test e-mail.";
  28. private static final String LOCALHOST = "127.0.0.1";
  29. private GreenMail mailServer;
  30.  
  31.  
  32. public void setUp() {
  33. mailServer = new GreenMail(ServerSetupTest.IMAP);
  34. mailServer.start();
  35. }
  36.  
  37.  
  38. public void tearDown() {
  39. mailServer.stop();
  40. }
  41.  
  42.  
  43. public void getMails() throws IOException, MessagingException,
  44. UserException, InterruptedException {
  45. // create user on mail server
  46. GreenMailUser user = mailServer.setUser(EMAIL_USER_ADDRESS, USER_NAME,
  47. USER_PASSWORD);
  48.  
  49. // create an e-mail message using javax.mail ..
  50. MimeMessage message = new MimeMessage((Session) null);
  51. message.setFrom(new InternetAddress(EMAIL_TO));
  52. message.addRecipient(Message.RecipientType.TO, new InternetAddress(
  53. EMAIL_USER_ADDRESS));
  54. message.setSubject(EMAIL_SUBJECT);
  55. message.setText(EMAIL_TEXT);
  56.  
  57. // use greenmail to store the message
  58. user.deliver(message);
  59.  
  60. // fetch the e-mail via imap using javax.mail ..
  61. Properties props = new Properties();
  62. props.put("mail.store.protocol", "imap");
  63. Session session = Session.getInstance(props);
  64.  
  65. Store store = session.getStore();
  66. store.connect(ServerSetupTest.IMAP.getBindAddress(), ServerSetupTest.IMAP.getPort(), user.getLogin(),
  67. user.getPassword());
  68. // store.connect();
  69.  
  70. Folder folder = store.getFolder("INBOX");
  71. folder.open(Folder.READ_ONLY);
  72. Message[] messages = folder.getMessages();
  73. for (Message m : messages) {
  74. System.out.println("*** Class: " + m.getClass() + " ***");
  75. System.out.println("From: " + m.getFrom()[0]);
  76. System.out.println("To: " + m.getRecipients(Message.RecipientType.TO)[0]);
  77. System.out.println("Subject: " + m.getSubject());
  78. System.out.println("Content: " + m.getContent());
  79. }
  80. folder.close(true);
  81. // assertNotNull(messages);
  82. // assertThat(1, equalTo(messages.length));
  83. // assertEquals(EMAIL_SUBJECT, messages[0].getSubject());
  84. // assertTrue(String.valueOf(messages[0].getContent())
  85. // .contains(EMAIL_TEXT));
  86. // assertEquals(EMAIL_TO, messages[0].getFrom()[0].toString());
  87. }
  88.  
  89. public static void main(String[]args){
  90. ImapIT imap=new ImapIT();
  91. imap.setUp();
  92. try {
  93. imap.getMails();
  94. imap.tearDown();
  95. } catch (IOException | MessagingException | UserException
  96. | InterruptedException e) {
  97. e.printStackTrace();
  98. }
  99.  
  100. }
  101. }
  102.  
  103. javax.mail.FolderClosedException: * BYE JavaMail
  104. Exception:java.io.IOException: Connection dropped by server?
  105. at com.sun.mail.imap.IMAPMessage.loadEnvelope(IMAPMessage.java:1428)
  106. at com.sun.mail.imap.IMAPMessage.getFrom(IMAPMessage.java:321)
  107. at greenmailtest.ImapIT.getMails(ImapIT.java:75)
  108. at greenmailtest.ImapIT.main(ImapIT.java:93)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement