如何使用 Spring 集成访问邮箱文件夹
How to access mailbox folders with Spring Integration
大家早上好,
我正在使用 Spring 集成来读取收到的电子邮件并对其进行解析。
我想实现以下行为:处理完后将电子邮件移至专用文件夹。
我有一个 Spring 服务来获取和处理电子邮件。
<!-- Mail listeners -->
<int:channel id="receiveChannel" datatype="javax.mail.internet.MimeMessage"/>
<int-mail:inbound-channel-adapter id="incomingEmailsAdapter"
store-uri="${inboundMail.storeUri}"
channel="receiveChannel"
should-delete-messages="false"
should-mark-messages-as-read="true"
auto-startup="${inboundMail.startup}"
java-mail-properties="javaMailInboundProperties">
<int:poller max-messages-per-poll="${inboundMail.nb.poll}" fixed-rate="${inboundMail.nb.rate}"/>
</int-mail:inbound-channel-adapter>
<int:service-activator id="serviceActivator" input-channel="receiveChannel" ref="mailService" method="handleMail"/>
在 handleMail 方法中,当我试图访问一个可以存储信息的文件夹时,总是出现异常,提示该文件夹不存在。
文件夹上的方法 exists() 总是 returns false.
public void handleMail(MimeMessage message) {
try {
...
Folder folder = message.getFolder();
folder.open(Folder.READ_WRITE);
Folder test = folder.getFolder("Transmitted");
我的根文件夹是收件箱。
我创建了一个 "Transmitted" 文件夹。但是当我测试 "test" 文件夹是否存在时,总是返回 false。因此,我无法将邮件移动到 "Transmitted" 文件夹。
我也试过这个:
Store fstore = folder.getStore();
Folder successFolder = fstore.getFolder("Transmitted");
但是结果是一样的。 successFolder.exists() returns 错误;
我应该如何访问该文件夹?
提前致谢
吉尔斯
通过使用
得到它的工作
Folder[] folders = folder.getStore().getDefaultFolder().list("*");
文件夹的名称,在本例中为:INBOX.Transmitted
此致
吉尔斯
大家早上好,
我正在使用 Spring 集成来读取收到的电子邮件并对其进行解析。
我想实现以下行为:处理完后将电子邮件移至专用文件夹。
我有一个 Spring 服务来获取和处理电子邮件。
<!-- Mail listeners -->
<int:channel id="receiveChannel" datatype="javax.mail.internet.MimeMessage"/>
<int-mail:inbound-channel-adapter id="incomingEmailsAdapter"
store-uri="${inboundMail.storeUri}"
channel="receiveChannel"
should-delete-messages="false"
should-mark-messages-as-read="true"
auto-startup="${inboundMail.startup}"
java-mail-properties="javaMailInboundProperties">
<int:poller max-messages-per-poll="${inboundMail.nb.poll}" fixed-rate="${inboundMail.nb.rate}"/>
</int-mail:inbound-channel-adapter>
<int:service-activator id="serviceActivator" input-channel="receiveChannel" ref="mailService" method="handleMail"/>
在 handleMail 方法中,当我试图访问一个可以存储信息的文件夹时,总是出现异常,提示该文件夹不存在。 文件夹上的方法 exists() 总是 returns false.
public void handleMail(MimeMessage message) {
try {
...
Folder folder = message.getFolder();
folder.open(Folder.READ_WRITE);
Folder test = folder.getFolder("Transmitted");
我的根文件夹是收件箱。 我创建了一个 "Transmitted" 文件夹。但是当我测试 "test" 文件夹是否存在时,总是返回 false。因此,我无法将邮件移动到 "Transmitted" 文件夹。
我也试过这个:
Store fstore = folder.getStore();
Folder successFolder = fstore.getFolder("Transmitted");
但是结果是一样的。 successFolder.exists() returns 错误;
我应该如何访问该文件夹?
提前致谢
吉尔斯
通过使用
得到它的工作Folder[] folders = folder.getStore().getDefaultFolder().list("*");
文件夹的名称,在本例中为:INBOX.Transmitted
此致
吉尔斯