Hi, yes and no. :)

For now, we have our CRM as an e-mail client. And we have a custom
e-mail server, which is FAR from RFC-compliant. :)

That's why we want to switch to a real mailserver and we're going to
use Apache JAMES for this.

However, we cannot make such a big step at once, so what we want to do
now is have our mailserver (JAMES) and our custommailserver
synchronise.

So the basic idea is:
When a user marks a message as read in our CRM, we send a signal
(probably through JMS or something), then pick up that signal in a
custom Apache JAMES component, then mark the message read on the
IMAP-server. This way we can synchronize.
And also the other way around: When a user marks a message as read in
the IMAP-server (JAMES), we send a signal to some to-be-defined
server, which will mark the message as read in our CRM. And we're
synchronized.

However, when I mark a message as read through the JAMES-API (or
through an IMAP-session), an event "MailboxListener.event(FlagsUpdated
event)" is triggered and we also respond to that, so we will update
our CRM again. This is something I want to prevent. So somehow, I
should be able to mark a message read in JAMES, without triggering an
event. OR I should be able to detect the currently connected host
(which will return the IP address of the server that created the
IMAP-session), so I can filter out events coming from that host. OR I
should be able to access all mailboxes and accounts with a certain
"system" user. I believe the latter is possible, but I wouldn't know
what username to specify.

I hope I'm making this clear. I actually think this discussion would
be quite useful for others too, since I can't believe I'm going to be
the only one trying to do this. :)

And yes, eventually our CRM will be a real IMAP-client. But for now,
we'll have to do this step by step. :) But it's quite fun to dig into
JAMES! :) It's lovely.

Thanks for the input.

On Mon, Jan 30, 2012 at 5:21 PM, Eric Charles <e...@apache.org> wrote:
>
> So your CRM acts as an IMAP client, right and ?
> If such, you could assign a username/password to your CRM.
>
> The event contains the MailboSession which has the getUser().getUsername(), 
> so you will know if the event has been triggered by the CRM or by a real user.
>
> Did I get your point?
> Eric
>
>
> On 30/01/12 14:25, lclhst wrote:
>>
>> Thank you for the useful replies.
>>
>> Ok, creating a reference to the mailboxmanager using @Resource is a lot
>> better. So that's nice.
>>
>> Regarding the hostname, I was looking for a way to detect wether this
>> session is a user-session (i.e. an actual user that reads a message in his
>> IMAP-inbox) or a system-session (our sync-program that marks a message as
>> read, because a message was marked as read in our CRM). When I create that
>> IMAP-session and mark the message as read, it's a user-session, so I can't
>> distinguish that.
>>
>> On Mon, Jan 30, 2012 at 1:39 PM, Eric Charles<e...@apache.org>  wrote:
>>
>>> I don't know much from spring integration, but it will probably not fit
>>> our existing event system.
>>>
>>>
>>> On 30/01/12 10:14, Dhrubo wrote:
>>>
>>>> Can we use something like an integration pack for example Spring
>>>> integration which has spring imap support? But offcourse event is
>>>> required.
>>>>
>>>> On Mon, Jan 30, 2012 at 2:08 PM, 
>>>> lclhst<l0c4lh0st.dump@gmail.**com<l0c4lh0st.d...@gmail.com>>
>>>>
>>>>  wrote:
>>>>
>>>>  Does anybody have any input to this?
>>>>>
>>>>>
>>>>> I'm now creating my CustomMailboxListener with a 1 parameter
>>>>> constructor, which is the MailboxManager, so I can access the
>>>>> mailboxes.
>>>>>
>>>>> Not sure on the questions I asked before yet, though.
>>>>>
>>>>> On Fri, Jan 27, 2012 at 6:05 PM, 
>>>>> lclhst<l0c4lh0st.dump@gmail.**com<l0c4lh0st.d...@gmail.com>>
>>>>>  wrote:
>>>>>
>>>>>> Ok, I have been playing around a bit with this.
>>>>>>
>>>>>> I added the listener through the Spring XML files and now I receive
>>>>>> the events in my listener. It's working great.
>>>>>>
>>>>>> When event.getSession().getType().**equals(SessionType.System), the
>>>>>>
>>>>>> e-mail is being handled/received/modified through SMTP, right?
>>>>>> Otherwise it's user, which is the user doing some actions himself,
>>>>>> right?
>>>>>>
>>>>>> So this way I could check if a user is dragging an e-mail inside his
>>>>>> INBOX, or it's a message received by SMTP.
>>>>>>
>>>>>> Because when a user is dragging an e-mail inside his INBOX, I need to
>>>>>> sync this back to our CRM, so I can make the message there, too.
>>>>>>
>>>>>> Also, I was wondering what would be the best way to query the mailbox.
>>>>>> For example, when I receive a message in the listener, could I use the
>>>>>> event.getSession().**getAttributes().get("**MESSAGEMAPPER") safely?
>>>>>>
>>>>>> It's
>>>>>> mentioned this class isn't thread safe. But I need to be able to fetch
>>>>>> the full message including headers and everything, so I can sync it to
>>>>>> our CRM.
>>>>>>
>>>>>> Also, I was wondering what would be the best way to do the status
>>>>>> updates from our CRM. Because when I make an IMAP session and mark a
>>>>>> message read, the listener receives it and syncs it back to our CRM.
>>>>>> That way I'm doing double syncing, which isn't what we want of course.
>>>>>>
>>>>>> Could I check for example the host name inside the public void
>>>>>> event(Event event)? I cannot seem to find any methods or properties
>>>>>> that would give me a context containing these details.
>>>>>>
>>>>>> I also saw a createSystemSession()-method on the MailboxManager. I'm
>>>>>> not sure how to access this MailboxManager though. I could register it
>>>>>> to some class using the spring beans (or even my listener class), but
>>>>>> I don't think that would be a good idea. I could set up something
>>>>>> using JMS messaging so a class inside JAMES would be receiving
>>>>>> messages through JMS and then update the mailbox. Though I think there
>>>>>> must be a better way, but I cannot seem to find it yet.
>>>>>>
>>>>>> I hope you guys could give me a bit more insight on how to do this.
>>>>>> Not asking for complete solutions. :) I just don't know where to look
>>>>>> yet. :)
>>>>>>
>>>>>> Thanks for the help so far, much appreciated.
>>>>>>
>>>>>> On Thu, Jan 26, 2012 at 4:56 PM, Norman Maurer
>>>>>> <norman.mau...@googlemail.com>   wrote:
>>>>>>
>>>>>>> Hi there,
>>>>>>>
>>>>>>> you can register a MailboxListener in the MailboxManager instance and
>>>>>>> so get notifications about mailbox events. This should do the job.
>>>>>>>
>>>>>>> Have a look here:
>>>>>>>
>>>>>>>
>>>>>>>  http://svn.apache.org/viewvc/**james/mailbox/trunk/api/src/**
>>>>>
>>>>> main/java/org/apache/james/**mailbox/MailboxManager.java?**view=markup<http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java?view=markup>
>>>>>
>>>>>>
>>>>>>>  http://svn.apache.org/viewvc/**james/mailbox/trunk/api/src/**
>>>>>
>>>>> main/java/org/apache/james/**mailbox/**MailboxListenerSupport.java?**
>>>>> view=markup<http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListenerSupport.java?view=markup>
>>>>>
>>>>>>
>>>>>>>  http://svn.apache.org/viewvc/**james/mailbox/trunk/api/src/**
>>>>>
>>>>> main/java/org/apache/james/**mailbox/MailboxListener.java?**view=markup<http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxListener.java?view=markup>
>>>>>
>>>>>>
>>>>>>> Let me know if you need more info..
>>>>>>>
>>>>>>> Bye,
>>>>>>> Norman
>>>>>>>
>>>>>>>
>>>>>>> 2012/1/26 l0c4l h0st<l0c4lh0st.d...@gmail.com>**:
>>>>>>>
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> What I'm trying to do is capture events that the IMAP-server should
>>>>>>>> (or is supposed to) raise.
>>>>>>>>
>>>>>>>> Whenever a message gets marked as read, I want to get a notification
>>>>>>>> of this event.
>>>>>>>> Whenever a message gets marked as unread, I want to get a notification
>>>>>>>> of this event.
>>>>>>>> Whenever a message gets flagged, I want to get a notification of this
>>>>>>>>
>>>>>>> event.
>>>>>
>>>>>
>>>>>> Etc. etc.
>>>>>>>>
>>>>>>>>
>>>>>>>> Whenever a user moves a message to a different IMAP folder, I want to
>>>>>>>> get a notification of this event.
>>>>>>>> Whenever a user deletes a message to a different IMAP folder, I want
>>>>>>>> to get a notification of this event.
>>>>>>>> Whenever a user copies a message to a different IMAP folder, I want to
>>>>>>>> get a notification of this event.
>>>>>>>>
>>>>>>>> Right now, I don't see any way of doing this. I thought this would be
>>>>>>>> possible with the Matchers and Mailets, but I don't see how this would
>>>>>>>> be possible.
>>>>>>>>
>>>>>>>> I can define a custom mailet, that matches on ALL, when I add this
>>>>>>>> mailet in the root- and transport-processors, I get notifications only
>>>>>>>> of mail that arrives through SMTP and mail that is sent through SMTP.
>>>>>>>>
>>>>>>>> Am I missing the IMAP way of doing this? Or is there currently no way
>>>>>>>> of doing this with IMAP?
>>>>>>>>
>>>>>>>> I've tried searching through the code, but I don't see any event
>>>>>>>> listeners or anything that would be triggered. I did find
>>>>>>>> ImapStateAwareMailboxListener, but I cannot find how to subscribe to
>>>>>>>> this event or anything.
>>>>>>>>
>>>>>>>> Also, I found the UpdatedFlags class, but there is no notification
>>>>>>>> sent anywhere.
>>>>>>>>
>>>>>>>> SO:
>>>>>>>> How can I get a notification of every single change that is made to a
>>>>>>>> message in IMAP? IMAP is currently most important for us.
>>>>>>>>
>>>>>>>> The reason I want to do this is we have a custom CRM tool that has a
>>>>>>>> custom mail database and we want to slowly migrate to a real
>>>>>>>> mailserver, we thought of using Apache JAMES to do synchronisation,
>>>>>>>> because at this time we cannot yet realize a full migration. We want
>>>>>>>> to do this in steps.
>>>>>>>>
>>>>>>>> My ultimate goal, regarding synchronisation, is to receive all events
>>>>>>>> that are occurring in the IMAP part of JAMES, so we can update the
>>>>>>>> status of the messages in our CRM-tool. My goal is also to synchronize
>>>>>>>> changes in the CRM-tool back to IMAP-JAMES. But this can easily be
>>>>>>>> done through an IMAP-session. That shouldn't be a problem.
>>>>>>>>
>>>>>>>> I hope anyone can help me out on this, because I find a lack of
>>>>>>>> documentation regarding this subject.
>>>>>>>>
>>>>>>>> Right now, the only way of doing this seems to me creating database
>>>>>>>> triggers (we're using this with PostgreSQL).
>>>>>>>>
>>>>>>>> Thank you in advance.
>>>>>>>>
>>>>>>>> ------------------------------**------------------------------**
>>>>>>>> ---------
>>>>>>>> To unsubscribe, e-mail: 
>>>>>>>> server-dev-unsubscribe@james.**apache.org<server-dev-unsubscr...@james.apache.org>
>>>>>>>> For additional commands, e-mail: 
>>>>>>>> server-dev-help@james.apache.**org<server-dev-h...@james.apache.org>
>>>>>>>>
>>>>>>>>
>>>>>>> ------------------------------**------------------------------**
>>>>>>> ---------
>>>>>>> To unsubscribe, e-mail: 
>>>>>>> server-dev-unsubscribe@james.**apache.org<server-dev-unsubscr...@james.apache.org>
>>>>>>> For additional commands, e-mail: 
>>>>>>> server-dev-help@james.apache.**org<server-dev-h...@james.apache.org>
>>>>>>>
>>>>>>>
>>>>> ------------------------------**------------------------------**
>>>>> ---------
>>>>> To unsubscribe, e-mail: 
>>>>> server-dev-unsubscribe@james.**apache.org<server-dev-unsubscr...@james.apache.org>
>>>>> For additional commands, e-mail: 
>>>>> server-dev-help@james.apache.**org<server-dev-h...@james.apache.org>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>> --
>>> eric | http://about.echarles.net | @echarles
>>>
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: 
>>> server-dev-unsubscribe@james.**apache.org<server-dev-unsubscr...@james.apache.org>
>>> For additional commands, e-mail: 
>>> server-dev-help@james.apache.**org<server-dev-h...@james.apache.org>
>>>
>>>
>>
>
> --
> eric | http://about.echarles.net | @echarles
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
> For additional commands, e-mail: server-dev-h...@james.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to