linagora / james-project

Mirror of Apache James Project
Apache License 2.0
70 stars 63 forks source link

Encounter an error upon RCPT validation ("xxxxxxx@"@yyyy.fr), deny-soft #5126

Closed chibenwa closed 4 months ago

chibenwa commented 4 months ago
java.lang.IllegalArgumentException: Domain parts ASCII chars must be a-z A-Z 0-9 - or _
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
    at org.apache.james.core.Domain.of(Domain.java:58)
    at org.apache.james.core.Username.fromLocalPartWithDomain(Username.java:52)
    at org.apache.james.core.Username.of(Username.java:46)
    at org.apache.james.user.api.UsersRepository.getUsername(UsersRepository.java:148)
    at org.apache.james.smtpserver.fastfail.ValidRcptHandler.isValidRecipient(ValidRcptHandler.java:67)
    at com.linagora.tmail.smtp.TMailValidRcptHandler.isValidRecipient(TMailValidRcptHandler.java:33)
    at org.apache.james.protocols.smtp.core.fastfail.AbstractValidRcptHandler.doRcpt(AbstractValidRcptHandler.java:46)
    at org.apache.james.protocols.smtp.hook.RcptHook.doRcpt(RcptHook.java:77)
    at org.apache.james.protocols.smtp.core.RcptCmdHandler.callHook(RcptCmdHandler.java:222)
    at org.apache.james.protocols.smtp.core.RcptCmdHandler.callHook(RcptCmdHandler.java:55)
    at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.processHooks(AbstractHookableCmdHandler.java:117)
    at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.onCommand(AbstractHookableCmdHandler.java:75)
    at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.onCommand(AbstractHookableCmdHandler.java:50)
    at org.apache.james.protocols.api.handler.CommandDispatcher.dispatchCommandHandlers(CommandDispatcher.java:165)
    at org.apache.james.protocols.api.handler.CommandDispatcher.onLine(CommandDispatcher.java:142)
    at org.apache.james.protocols.netty.BasicChannelInboundHandler.channelRead(BasicChannelInboundHandler.java:185)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61)
    at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:425)
    at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Unknown Source)

Deny soft is ok as the "xxxxxxx@" local part is not handled here.

But...

chibenwa commented 4 months ago

https://github.com/apache/james-project/pull/2122