一个简单的本地 SMTP 服务器 [关闭]

Posted

技术标签:

【中文标题】一个简单的本地 SMTP 服务器 [关闭]【英文标题】:A simple local SMTP server [closed] 【发布时间】:2012-01-25 20:29:02 【问题描述】:

我想测试一个用于发送电子邮件的 Java 代码。我不想使用任何商业邮件客户端或连接到任何外部邮件提供商(如 Gmail 或 Yahoo)。我想知道是否有任何软件允许用户配置虚拟电子邮件地址和服务器(本地),可以在我的软件中用于发送和接收邮件。我只是想测试一下Java代码的功能。

【问题讨论】:

检查这个.. enbiso.github.io/dummy-smtp-server 【参考方案1】:

试试GreenMail。它适用于 JUnit 的使用,但它应该可以满足您的需求。您可以在 JBoss 实例中运行它,或者让您的 JUnit 测试向自己发送邮件,具体取决于您的具体需求。

还有一些其他类似的软件,但那是我用过的那个,并且对它相当满意。

【讨论】:

【参考方案2】:

对于电子邮件测试,请尝试 Dumbster。从他们的页面:

Dumbster 是一个非常简单的伪造 SMTP 服务器,专为单位和 系统测试发送电子邮件的应用程序。它回应 所有标准 SMTP 命令,但不向用户传递消息。 消息存储在 Dumbster 中以供以后提取和 验证。

Dumbster 很容易将自己纳入您的测试策略。作为 只要您的应用程序使用 SMTP 与电子邮件服务器通信,那么 Dumbster 可用于测试应用程序,无需更改代码。

由于原始页面不再可用,因此存在各种分叉:

https://github.com/kirviq/dumbster https://github.com/rjo1970/dumbster

可以使用Github Search找到更多信息

【讨论】:

啊,那是我想记住的另一个!我知道我一看到它就会认出它,但我就是想不出名字。 笨蛋是broken。 附带说明:原来的“Dumbster”有several forks,以不同的方式改进其功能。 你能更新这个答案中的链接吗?原来的现在重定向到 agoda(一个酒店预订网站)。 github.com/kirviq/dumbster 和 github.com/rjo1970/dumbster 在我看来都很有前途,但我还没有尝试过。 我发现原来的链接已经失效了。这里有一个对我有用的叉子:github.com/kirviq/dumbster【参考方案3】:

你可以在SubEthaSMTP库中使用Wiser,Wiser的目的正是你想要的,单元测试。

【讨论】:

更明智的示例代码:code.google.com/p/subethasmtp/wiki/Wiser 也坏了,当我的单元测试发送 2 封 html 电子邮件时,更明​​智地收到了 3 封邮件。幸运的是,GreenMail 正确地处理了这个问题。 okutane:我猜你发了两封邮件,总共有三个收件人。 Wiser API 按收件人返回邮件。确实不是在最后发布的版本中,但是主干包含一个更新的 JavaDoc 以使这一点更加明显:“邮件事务的数量和邮件的数量可能不同。如果在单个邮件中收到多个收件人的消息事务,则列表将包含更多 WiserMessage 实例,每个接收者一个。" @HontváriLevente:不,事实并非如此。【参考方案4】:

在 Leopard 上,您可以在 OS-X Leopard 上启动本地 SMTP 服务器(Postfix)

sudo vi /System/Library/LaunchDaemons/org.postfix.master.plist

在结束标记之前:

<key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/>

然后开始

sudo postfix start

现在您检查服务是否正在运行:

telnet localhost 25

【讨论】:

【参考方案5】:

javamail-file-transport 将电子邮件保存到文件中,而不是通过 SMTP 服务器发送。

查看 GitHub 上的 javaMail extensions 项目。

它添加了文件传输,允许:

将邮件保存到text 格式的文件中,而不是发送它们 将邮件保存到mbox 格式的文件中,而不是发送它们 添加日志信息而不是发送电子邮件

【讨论】:

【参考方案6】:

我更喜欢Fake SMTP。这是一个桌面应用程序(打包到 jar 文件中)。由于它是用 Java 编写的,因此您可以在 Linux/Mac/Windows 上运行它

【讨论】:

这是非侵入性和干净的解决方案,至少在弹簧应用中是这样【参考方案7】:

Mailtrap我用过几次,可以推荐一下。

【讨论】:

Mailnest.io 是一个更好、更实惠的电子邮件测试解决方案。【参考方案8】:

您可以使用smtp4dev。请了解更多详情here。

【讨论】:

这是我拥有的最好的假邮件服务器,想知道那个页面说它包含病毒!【参考方案9】:

use the Aspirin 来自文档:Aspirin 是面向 Java 开发人员的嵌入式仅发送 SMTP 服务器。

【讨论】:

【参考方案10】:

选项 A。 令人惊叹的码头工人https://hub.docker.com/r/mailhog/mailhog/ (gitHub - https://github.com/mailhog/MailHog) 这个 docker 有两个端口: 一个用于发送 SMTP 电子邮件的端口 (smtp://0.0.0.0:1025/) 网络上显示电子邮件的第二个端口 (http://0.0.0.0:8025/)

运行泊坞窗:docker pull mailhog/mailhogdocker run --name=mailhog -d -p 1025:1025 -p 8025:8025 mailhog/mailhog

选项 B。 如果您与bamboo.mailer 一起使用 添加adapter: Bamboo.LocalAdapter 见Bamboo.SentEmailViewerPlug.

【讨论】:

见A Test Mail Server for a php Docker Container

以上是关于一个简单的本地 SMTP 服务器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于开发目的的虚拟 SMTP 服务器 [关闭]

在本地计算机上测试的邮件服务选项有哪些? [关闭]

Python - smtp 需要身份验证 [关闭]

SMTP简单邮件协议的服务配置

一个简单的 SMTP 服务器(在 Python 中)

SMTP协议详解