Dumbster
Dumbster - a simple fake SMTP server for unit testing
Install / Use
/learn @kirviq/DumbsterREADME
dumbster
The Dumbster is a very simple fake SMTP server designed for unit and system testing applications that send email messages. It responds to all standard SMTP commands but does not deliver messages to the user. The messages are stored within the Dumbster for later extraction and verification.
This repository is a fork of http://quintanasoft.com/dumbster/.
I forked it for two reasons:
- I wanted to have typed lists as return values.
- I wanted the server to be able to just pick a port itself and then tell me which port it got.
And while I'm at it, using slf4j instead of stdout is also nice.
Aside from that, the actual smtp logic is completely unchanged.
Usage
Add maven dependency:
<dependency>
<groupId>com.github.kirviq</groupId>
<artifactId>dumbster</artifactId>
<version>1.7.1</version>
<scope>test</scope>
</dependency>
Start testing:
class SomeTest {
public void runTest() {
try (SimpleSmtpServer dumbster = SimpleSmtpServer.start(SimpleSmtpServer.AUTO_SMTP_PORT)) {
sendMessage(dumbster.getPort(), "sender@here.com", "Test", "Test Body", "receiver@there.com");
List<SmtpMessage> emails = dumbster.getReceivedEmails();
assertThat(emails, hasSize(1));
SmtpMessage email = emails.get(0);
assertThat(email.getHeaderValue("Subject"), is("Test"));
assertThat(email.getBody(), is("Test Body"));
assertThat(email.getHeaderValue("To"), is("receiver@there.com"));
}
}
}
See more examples in the included unit tests.
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
