Dumbsterを統合して、送信メールの JavaMail ベースの通知機能をテストしようとしています。電子メールは送信されますが、私のテストでは Dumbster は受信しません。これを機能させるために追加の構成が必要かどうかはわかりませんが、ダムスターのホームページには、ポート 25 の smtp 経由で送信されたメールを自動的にリッスンすると書かれています。
これは私たちの Java メール設定です:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.somewhere.com" />
<property name="port" value="25" />
<property name="username" value="theUserName" />
<property name="password" value="thePassword" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
Mailer クラスは、JavaMailer を注入するだけです。
@Component
public class OurMailer {
@Inject
private MailSender mailSender;
public void sendMail(String from, String to, String subject, String msg) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(msg);
mailSender.send(message);
}
彼らのページに示されているように、テストは非常に簡単です。
@Inject
private OurMailer ourMailer;
@Test
public void ourMailer_should_send_mail() {
SimpleSmtpServer server = SimpleSmtpServer.start();
ourMailer.sendMail(FROM_EMAIL, TO_EMAIL, SUBJECT, MESSAGE);
server.stop();
Assert.assertTrue(server.getReceivedEmailSize() == 1);
}
私が言ったように、メールは送信されますが、Assert は失敗します。
何か案は?
ところで:Greenmailも試しましたが、同じ結果になりました:
Maven はわずかに異なります:
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>1.3.1b</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
テスト
GreenMail greenMail = new GreenMail(); //uses test ports by default
greenMail.start();
// send mail
Assert.assertEquals("subject", greenMail.getReceivedMessages()[0].getSubject());
greenMail.stop();