问题标签 [apache-james]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Java 中创建模拟电子邮件服务?
我正在编写一个带有不同模拟服务(例如 HTTP、SFTP、Buckets、Email)的小型测试库。
当谈到电子邮件模拟服务时,我有一个思维障碍。我找到了Apace James 文档和一篇文章,但我不知道如何将其调整到我的界面,并且使用 SMTP 服务器会令人困惑。
这个想法是创建一个实现,所以整个设置将在构造函数中,我只需要在设置和拆卸阶段启动和停止 Mock。
我如何使用 Apache James 服务来做到这一点?
我使用 Java 11、Spring Boot 和 JUnit 5。
james - 让 apache james 接受发往任何子域的传入邮件
我有一个 apache james 服务器,并在 domainlist.xml 中使用以下内容:
目前,如果我将邮件发送到这个地址为 a@foo.bar.com 的 james 服务器,则该邮件被接受。如果我向 a@baz.bar.com 发送内容,邮件将被拒绝。如果我添加了一个额外的域,如下所示:
发送至 a@baz.bar.com 的电子邮件被接受。我真正想要的是某种方式让 james 服务器只接受发送给 bar.com 的任何子域的邮件,尽管我也可以接受任何东西。
我检查了 fetchmail.xml 中的所有配置,并将除黑名单过滤器之外的所有内容的“拒绝”设置为“假”,但这不允许我的 a@baz.bar.com 电子邮件通过。
我正在运行默认配置,并在处理器链的头部添加了一个新类:
此 LogIncoming 只是将有关电子邮件的一堆详细信息打印到日志中,但当入站电子邮件的“收件人”域不在 domainlist.xml 中时,它不会被调用。
我认为对 DomainList 类进行自定义实现可能会起作用,但我希望可能存在允许通配符子域的东西。
spring-boot - 如何在 Spring Boot 中使用 Apache James 创建邮件服务器?
其实这个话题对我来说是新的。那么有人可以就这个话题提供建议吗?或者正确的工作路径。
必须创建自己的邮件服务器来处理测试邮件请求
例如 username@<company_name>.com
提前致谢。
spring - 无论如何要在添加之前拦截来自 james 服务器的电子邮件?
我们正在构建一个简单的电子邮件服务提供商,并且我们使用 Apache James 作为邮件服务器。我们想要对电子邮件进行分类并运行一些其他逻辑。但是,我们无法弄清楚当电子邮件进来时是否有任何方法可以做到这一点。或者是否有任何 webhook 可以在电子邮件进来时设置?
我们能想到的唯一选择就是每分钟左右运行一个调度程序并这样做,然后将该电子邮件发送给客户,但这可能不是最好的主意。
预先感谢您的帮助。
java - Apache James 中的嵌入式 Tomcat
我正在尝试通过添加一些 ad-hoc actuator来增强apache-james@RestController
的 Spring 版本。
为了做到这一点,我正在考虑启动一个嵌入式 Tomcat 9.x 服务器作为 sidecar,以便可以访问端点。
不幸的是,我遇到了一个IllegalStateException: No ServletContext set
例外。
我到目前为止的代码如下:
在主spring.xml
文件中:
如果我从该main
方法启动 Tomcat(例如,像这里一样),那么 Web 应用程序将按预期工作(至少是链接示例中的那个)。
我错过了什么?
java - 发送邮件时偶尔出现“系统找不到指定的路径”异常
我开发了一个使用 SMTP 将消息发送到本地 Apache James 服务器的应用程序。运行一次程序大约需要 3-10 分钟。我让程序连续运行了几个小时进行性能测试,这在 Ubuntu 上运行良好。但是,当我在 Windows 10 上运行该程序时,我会在大约 10 分钟后收到以下堆栈跟踪。2-3小时运行时间:
该问题发生在两个不同的 Windows 10 安装上,系统的防火墙已停止。和属性的编码send method
如下所示。如果发生错误,该方法会连续调用 10 次,每次发送重试之间的等待时间为 30 秒,然后才会引发上述异常。与消息“系统找不到指定路径”的许多其他问题的不同之处在于,该错误仅在有时(2-3 小时)发生,并非总是发生。
您是否有任何暗示潜在问题可能是什么?任何帮助深表感谢!
java - Java Mail API Apache James 无效地址需要身份验证
我有一个 Apache James 服务器,我可以通过 IMAP 而不是 SMTP 使用 Java Mail API 连接到它。这是我得到的错误:
这就是我创建会话的方式
特性
连接代码
有任何想法吗?使用 Spring Boot 版本 2.5.4、Java 8 和 Apache James 的 dockerized 版本
谢谢
configuration - 配置 Apache James 以使用 DBFile 存储库
Apache James manaul 声明它支持 3 种类型的存储库,即 db、file 和 dbfile(在 conf/mailrepositorystore.xml 中配置。唯一的问题是它从未提及您如何选择使用这些协议中的哪一个。我可以将邮件存储到文件的唯一方法是在mailbox.xml中将“jpa”更改为“maildir”,但是标题不会保存到数据库中。它不允许dbfile,并且绝对没有任何示例它显示如何使用“dbfile”协议的来源。谁能告诉我如何使用 dbfile(我使用 Postgres 作为标题的数据库)。
java - Apache JAMES 邮件服务器不接收电子邮件
我正在使用 Thunderbird 作为我的电子邮件客户端运行 3.6.1 版本。我有默认端口(110 pop3 和 25 smtp)。我已经运行 james-cli 来配置具有两个用户的本地域,其步骤与此处描述的步骤类似。然后我从一个用户向另一个用户发送一封电子邮件。我可以看到 James 服务器正在处理的电子邮件,它显示了一条成功的假脱机消息:
当我的目标用户请求消息时,通过 STAT 操作,pop3 日志似乎很好,没有检索到电子邮件:
23-Jan-2022 00:39:13.211 DEBUG [pop3server-executor-738] org.apache.james.protocols.api.handler.CommandHandlerResultLogger.onResponse:36 - org.apache.james.protocols.pop3.core.StatCmdHandler: [+OK 0 0]
对我来说,这表明电子邮件从未进入该收件箱。我没有碰过配置,有没有我遗漏的配置?如果需要,我还有一些可以分享的日志
我也看到了类似的问题,但解决方案是在 3.6.1 版本中评论一些行,mailetcontainer.xml
并且它们已经在我当前的 3.6.1 版本中进行了评论。