我试图模拟发送电子邮件(出于JUnit,V4.8.1,测试的目的),并决定使用Dumbster,我通过SO找到了它。我用的是1.6版。我在JUnit测试中有这个…
SimpleSmtpServer server = SimpleSmtpServer.start();
boolean ret = m_emailSvc.sendEmail("me@me.com",
"you@you.com",
"localhost",
"Test",
"Test Body");
Assert.assertTrue(ret);
server.stop();
我用这种方式发邮件…
public boolean sendEmail(final String toEmail,
final String fromEmail,
final String smtpHost,
final String subject,
final String body)
{
boolean ret = true;
// Get system properties
Properties properties = System.getProperties();
// Setup mail server
properties.setProperty("mail.smtp.host", smtpHost);
// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(fromEmail));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(toEmail));
// Set Subject: header field
message.setSubject(subject);
// Now set the actual message
message.setText(body);
// Send message
Transport.send(message);
}catch (MessagingException mex) {
ret = false;
LOG.error(mex.getMessage(), mex);
} // try
return ret;
} // sendEmail
此操作失败,但以下情况例外。有没有人知道我做错了什么,或者有没有更简单的方法在JUnit测试中模拟发送电子邮件?
java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.socketBind(PlainSocketImpl.java:521)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:414)
at java.net.ServerSocket.bind(ServerSocket.java:326)
at java.net.ServerSocket.<init>(ServerSocket.java:192)
at java.net.ServerSocket.<init>(ServerSocket.java:104)
at com.dumbster.smtp.SimpleSmtpServer.run(Unknown Source)
at java.lang.Thread.run(Thread.java:680)
[ERROR]: org.mainco.subco.email.service.EmailServiceImpl - Could not connect to SMTP host: localhost, port: 25
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
我决定使用PowerMock(V.1.5.1)来模拟Transport类的静态调用。
@RunWith(PowerMockRunner.class)
public class EmailServiceTest
{
@Autowired
private EmailService m_emailSvc = new EmailServiceImpl();
@Test
@PrepareForTest( Transport.class )
public final void testSendEmail()
{
suppress(methodsDeclaredIn(Transport.class));
boolean ret = m_emailSvc.sendEmail("me@me.com",
"you@you.com",
"localhost",
"Test",
"Test Body");
Assert.assertTrue(ret);
} // testSendEmail
然后我尝试通过以下操作来测试这一点: 有没有人知道这是怎么回事!任何提示都很感激!
我一直试图通过spring boot发送电子邮件,我似乎不能成功。我已经使用javamail api很长时间了,但是我想把springboot和spring邮件一起使用。 这是我的邮件 我的pom文件中已经有sprint-boot-starter-mail,但我一直收到这个错误消息。我甚至看过youtube上关于如何做到这一点的教程视频,但它并不起作用。我使用的是spring工具套件版本:3.9.
最近,我看到一篇博文说,“出于文档的目的,我们在服务层使用mocking(在使用spring rest doc的环境中)”,所以这篇博文使用了类似spring的@MockBean到服务层对象的注释。 但我认为,如果我模仿服务层- 所以我觉得这是不对的但是, 我想知道什么更好,或者如何将service object与spring rest文档一起使用 恳求回答
问题内容: 我从服务器使用IMAP协议就像是接收电子邮件描述了这里。这工作得很好,我可以将电子邮件和附件存储在磁盘上。 问题: 当客户端尝试接收所有电子邮件时,是否可以从服务器删除文件,以使它们不再可用? 如果是这样,请告诉我如何。 问题答案: 您应该能够通过标准API来执行此操作。 首先,您需要获取Message要删除的(或消息)的引用-如果您成功阅读它们,那么您已经可以做到 这一点。现在,没有
我试图发送电子邮件使用gmail smtp使用javax.mail.下面是我的代码 代码工作正常当我在本地服务器上运行它时,但当我尝试在Elastic beanstek上运行它时(我的服务器在AWS EBS上运行),身份验证失败异常即将到来注意:我已打开从Google A/c设置访问不太安全的应用程序,但我仍然收到此错误 javax.mail.身份验证失败异常:534-5.7.14请通过您的网络浏
我目前正在为某人做一个网站,我想在联系我们页面上添加一个表单,使用他们没有Php的网络托管服务器向他们的电子邮件地址发送消息。有人能帮我吗?我无法理解这个过程,以及如何使它安全并真正发挥作用。我必须在服务器上部署一些东西吗?或者我可以使用他们在那里的smpt服务器吗?如果是这样,我如何确保smtp服务器身份验证在客户端的devols上不可见。谢谢你!