我的单元测试通过Greenmail发送电子邮件课程
公共课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 = "someone@localhost.com";
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();
我使用此代码在junit上测试电子邮件服务器。
但服务器不会返回任何消息
我做错了什么。
我更改了代码,请查看
答案 0 :(得分:1)
GreenMail正在localhost上运行。相应地调整smtp主机:
props.put("mail.smtp.host", "localhost");
修改
总结大量评论:附加问题来自mock-javamail
在类路径上的事实。