首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring集成: SMTP服务器

Spring集成: SMTP服务器
EN

Stack Overflow用户
提问于 2015-06-10 08:24:45
回答 1查看 864关注 0票数 2

我正在使用SpringIntegration4.1.2。

在程序流程中,在进程结束时,我需要发送一封电子邮件。我使用的方法如下:

代码语言:javascript
复制
<int:payload-type-router input-channel="response.in">
    <int:mapping type="java.lang.String" channel="response.out"/>
    <int:mapping type="org.springframework.mail.SimpleMailMessage" channel="mail.out"/>
</int:payload-type-router>

<mail:outbound-channel-adapter channel="mail.out" mail-sender="mailSender"/>

这很好用。

我还想处理邮件服务器关闭时的情况。

我尝试过以下解决方案,但它不起作用。

代码语言:javascript
复制
<int:chain input-channel="errorChannel" output-channel="emailErrorChannel">       
    <int:transformer ref="errorUnwrapper" />
</int:chain>

打开包装纸:

代码语言:javascript
复制
@MessageEndpoint
public class ErrorUnwrapper {

    @Transformer
    public Message<?> transform(final ErrorMessage errorMessage) {
        Message<?> failedMessage = ((MessagingException) errorMessage.getPayload()).getFailedMessage();
        return failedMessage;
    }
}

但这不管用。我希望捕获异常并向用户发送一个有意义的响应,而不是堆栈跟踪。我想在中实现这一点。否则,我将不得不用服务激活器而不是SI mail扩展来编写Java服务调用。

还是单向的?我刚刚发现这个博客帖子也在做同样的事情。我也读过,但一无所获。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 12:34:17

您可能需要将errorChannel添加到启动流程的任何东西中;您需要向我们展示您配置的其余部分。

或者,您可以向邮件适配器添加一个ExpressionEvaluatingAdvice;有关使用通知的示例,请参阅这个样本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30750944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档