My Unit Test for class for email through Greenmail
public class GreenMailTest {
private GreenMail greenMail; private EmailServiceImpl emailService = new EmailServiceImpl(); private MessageTemplateService messageTemplateService; private EmailProperties emailProperties; private Properties props; private static final String USER_PASSWORD = "abcdef123"; private static final String USER_NAME = "hascode"; private static final String EMAIL_USER_ADDRESS = "hascode@localhost"; private static final String EMAIL_TO = "[email protected]"; private static final String EMAIL_SUBJECT = "Test E-Mail"; private static final String EMAIL_TEXT = "This is a test e-mail."; private static final String LOCALHOST = "localhost"; // private GreenMail mailServer; @Before public void testSmtpInit() { //ServerSetup setup = new ServerSetup(); greenMail = new GreenMail(ServerSetupTest.SMTP); greenMail.start(); messageTemplateService = mock(MessageTemplateService.class); emailProperties = mock(EmailProperties.class); emailService.setEmailProperties(emailProperties); } @Test public void testEmail() throws InterruptedException, IOException { greenMail.setUser(EMAIL_USER_ADDRESS, USER_NAME, USER_PASSWORD); // create the javax.mail stack with session, message and transport .. Properties props = System.getProperties(); props.put("mail.smtp.host", LOCALHOST); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", ServerSetupTest.SMTP.getPort()); Session session = Session.getInstance(props, null); Message msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(EMAIL_TO)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(EMAIL_USER_ADDRESS, false)); msg.setSubject(EMAIL_SUBJECT); msg.setText(EMAIL_TEXT); msg.setSentDate(new Date()); Transport t = session.getTransport("smtp"); t.connect(EMAIL_USER_ADDRESS, USER_PASSWORD); t.sendMessage(msg, msg.getAllRecipients()); // assertEquals("250 OK\n", t.getLastServerResponse()); t.close(); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } // fetch messages from server MimeMessage[] messages = greenMail.getReceivedMessages();
I used this code to test the email server on junit.
But the server does not return any message
what i did wrong.
I change the code please review it
greenmail server not receiving the mail
1.9k Views Asked by PRITAM MOHAPATRA At
1
GreenMail is running at localhost. Adjust your smtp host accordingly:
Edit
To summarize the large number of comments: The additional problem came from fact that
mock-javamail
was on the classpath.