彈簧配置示例如下。如何在Spring中使用加密的store-uri ImapIdleChannelAdapter
<int-mail:imap-idle-channel-adapter id="mailAdapter"
store-uri="imaps://${"username"}:${"password"}@imap-server:993/INBOX"
java-mail-properties="javaMailProperties"
channel="emails"
should-delete-messages="false"
should-mark-messages-as-read="true">
</int-mail:imap-idle-channel-adapter>
我想保留屬性文件中的加密密碼字段,並在代碼解密。我不確定如何將ImapIdleChannelAdapter的mailReceiver屬性設置爲我的定製版本的ImapMailReceiver。 請讓我知道是否有任何方法可以做到這一點。
我所有的配置都是按照上述的XML格式。 以上解決方案添加defifnation不起作用可能是我做錯了什麼。然後我嘗試使用XML + Java配置,如下所示。
@Configuration
public class EmailConfiguration {
@Bean
public ImapIdleChannelAdapter customAdapter() {
ImapIdleChannelAdapter adapter = new ImapIdleChannelAdapter(mailReceiver());
adapter.setOutputChannel(outputChannel());
adapter.setErrorChannel(errorChannel());
adapter.setAutoStartup(true);
adapter.setShouldReconnectAutomatically(true);
adapter.setTaskScheduler(taskScheduler());
return adapter;
}
@Bean
public TaskImapMailReceiver mailReceiver() {
TaskImapMailReceiver mailReceiver = new TaskImapMailReceiver("imaps://[username]:[password]@imap.googlemail.com:993/inbox");
mailReceiver.setShouldDeleteMessages(false);
mailReceiver.setShouldMarkMessagesAsRead(true);
//mailReceiver.setJavaMailProperties(javaMailProperties());
mailReceiver.setMaxFetchSize(Integer.MAX_VALUE);
return mailReceiver;
}
}
也造就空errorChannel,outputChannel等我觀察到春天創建兩個實例有一個XML配置和其它與Java @Configuration。預計只使用java配置的地方。如果我刪除XML配置標籤 然後它提供了與我的mailReceiver sigle imap實例,但只運行一次不會定期。也不顯示IMAPS日誌。
只是想知道如果我需要這麼做來加密密碼。我的方法有問題嗎?
上述方案沒有奏效。讓我知道如果我做錯了什麼。 – Chandra
感謝您的回覆,在實施您的解決方案後編輯了該問題,能否請您建議我哪裏出錯。 – Chandra
你的配置看起來不錯;您需要從XML中移除適配器。我剛剛寫了一個快速啓動應用程序來測試它在春季集成測試中的測試電子郵件服務器,並且它對我來說很好 - 請參閱編輯我的回答 –