I've found something in the ToSenderFolder mailet that was causing this and another problem as well.  I added logging of the username field along with the sender, folder, etc. in the mailet.   The sender was "[email protected]" (note capital "J").  I'm not mapping this id in rrt, so the user was also "Jerry@....".  In the JAMES_USER table, that id is all lower case.  I added a ".toLowerCase()" on the username and voila... no more locked "Sent" folders.  I haven't tracked back to see why the domain was lowercased in the sender, but the user was not (The actual email sender field was "[email protected]" with mixed case in the domain name).  But it appears that somewhere in the MailBox.append processing, it is not happy when the case is incorrect on the user name.

Secondly, I had another account that was not giving me the ReadOnly exception (actually no errors at all).  Logs were saying it was storing my test outbound emails in Sent.  But they never showed up.  So I went back to the username field again in the log for ToSenderFolder.  This account makes heavy use of rrt.  My 'sender' [email protected] is mapped in rrt to [email protected], which is the actual account name.  But in the log entry, the user name was still the same as the sender, i.e. unmapped.  Hence it was trying to write to a non-existent user account.  I would have hoped for an error message in that case, but didn't see one. I had some code in another mailet that maps an email address to an rrt target account that I knew worked.  So I added my mapper code to the mailet so that the Mailbox.append would have the correct account.  This fixed the second problem.

Right now, it's hacked and band-aided.  I'm not really sure yet how it was supposed to work.  All I know that currently in my case, it wasn't.  I am using the default (out of the box) pipeline flow here.  RRT is called.  Then ToSenderFolder is called if LocalSender.  So if I've totally misinterpreted this and did the wrong things to fix it, let me know.

I'm not fully confident that this fixes all of my locked folder problems with such a small amount of testing so far.  But I am encouraged.  I still have no clue on the iPhone issue.

Please advise as to the correct way to proceed with this 'fix'.

Thx

Thx.

Jerry

On 10/22/2019 4:10 PM, Jerry Malcolm wrote:
I pulled out my legacy code for writing to folders and replaced with the default mailets.  But I still get this exception on one of my accounts' Sent folder.   Any ideas what could lock up a mailbox? (I've restarted JAMES several times... no change) Sending from another account appears to be working.

ERROR 15:54:35,135 | org.apache.james.mailetcontainer.impl.camel.CamelProcessor | Exception calling ToSenderFolder: Unable to access mailbox.
javax.mail.MessagingException: Unable to access mailbox.;
  nested exception is:
org.apache.james.mailbox.exception.ReadOnlyException: #private.Sent
        at org.apache.james.transport.mailets.delivery.MailboxAppender.append(MailboxAppender.java:70)         at org.apache.james.transport.mailets.delivery.MailboxAppender.append(MailboxAppender.java:50)         at org.apache.james.transport.mailets.ToSenderFolder.doService(ToSenderFolder.java:86)         at org.apache.james.transport.mailets.ToSenderFolder.service(ToSenderFolder.java:74)         at org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:81)         at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder.handleMailet(CamelMailetProcessor.java:178)         at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder.lambda$configure$0(CamelMailetProcessor.java:155)         at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)         at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)         at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)         at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)         at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)         at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:715)         at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:638)         at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:248)




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to