java - 模拟 javax.mail.Transport

标签 java jakarta-mail java-ee-7

无需创建另一个我可以注入(inject)的类。是否可以模拟 javax.mail.Transport,以便我可以在 Java EE 7 上对 Transport.send() 方法进行一些模拟测试?

最佳答案

由于 Dumbster 没有当前正在运行的 Maven Central 工件,因此根据 Bill Shanon 的解决方案,我使用了 GreenMail。

然后我使用了以下代码:

final GreenMail mailServer = new GreenMail();
mailServer.start();

final Properties mailSessionProperties = new Properties();
mailSessionProperties.put("mail.smtp.port", String.valueOf(mailServer.getSmtp().getPort()));

final javax.mail.Session mailSession = javax.mail.Session.getInstance(mailSessionProperties);

testObject.setMailSession(mailSession);

这样,即使 testObject 有静态调用 Transport.send(message),也不需要更改。

关于java - 模拟 javax.mail.Transport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457386/

相关文章:

java - 使用带有 'SELECT OBJECt(var) FROM EntityName var 的 @NamedQuery 实现查询

java - Spring - 使用@Configurable 和@Value 注释用新运算符创建对象

java - 在 Java 中解析 RFC 2822 电子邮件地址

java - 为什么 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 不提交?

mongodb - Wildfly 8 中用于 CDI 的自定义 jndi 对象工厂

java - 如何在paintComponent()方法之外访问Graphics对象

java - 运行时异常 : Unable to start activity android listview

java - 使用java邮件将图像嵌入到html电子邮件中

java - 如何连接到共享邮箱?

java - JEE7 + WildFly (HornetQ) - 从应用程序暂停队列