Hi,

I added below additional operations also to the Gmail connector.

- "send mail message"
- "delete mail message"
- "read mail message"
- "set labels to a mail thread"

So now, altogether 12 operations are implemented including two
authentication operations.


Below given the way how I handled attachments in sending and reading Gmail
messages.

*Reading e-mail messages*
The attachments found in each message are added to the operation context
where, the content ID is created by concatenating both "e-mail message ID"
and "attached file name".

Then, the comma separated content IDs of the attachments are returned to
the user in the response as given below;

<ns:attachemnts>1464782427362087215gmail-connector-1.0.0.zip,1464782427362087215mail.odt</ns:attachemnts>


*Sending e-mail messages*
User can add files to the operation context where each file's content ID
should be equal to its file name. Then, he can specify again the file names
which, should be attached to the e-mail message, using the parameter named
"attachmentIDs".

Then, the connector will read the attachments from the operation context
using the content IDs(file names) specified by the user and attach them to
the mail body with the same file names.

Please let me know if you have any concerns regarding this implementation.

Thanks,
Sewwandi


On Thu, Apr 3, 2014 at 3:30 PM, Sewwandi Perera <[email protected]> wrote:

> Hi Samisa,
>
> Here is the current progress on the ESB connector implementation for Gmail.
>
> *Done*
>
> Below listed operations are fully implemented
>
> 1. "init": authenticates users via the XOAuth2 SASL mechanism.  
> "google-mail-oauth2-tools"
> library given in [1] was used for the implementation.
>
> 2. "password login" - This operation authenticates users via SASL. IMAP
> libraries are used for the implementation
>
>
> Above 1 and 2 operations are implemented to use with both IMAP and SMTP.
>
>
> 3. "list all unread emails under label"
>
> 4. "list all unread mails"
>
> 5. "list all mails"
>
> 6. "search mails"
>
>
> In above 3,4,5 and 6 methods, user can specify the maximum number of mail
> messages that he wants to list down. By default, 25 latest mails will be
> listed.
>
>
> 7. "delete mail thread"
>
> 8. "read mail thread"
>
> Last Friday, 28th March, I had a code review session with Dushan as well.
>
>
>
> *To Do *
>
> 1. Implementation of  "send mail" operation is in progress.
> I implemented a POC for this operation. But I am
> experiencing occasional failures when sending mails "with attachments"
> through ESB.
>
> 2. As discussed with Dushan during the code review, next I'll finish the
> integration testing for the above completed operations.
>
> 3. After that, I'll get few more operations to implement - to match with
> the time frame
>
> 4. Documentation
>
>
> [1] https://code.google.com/p/google-mail-oauth2-tools/
>
> --
> Sewwandi Perera
> Software Engineer
>
>  WSO2 Inc.; http://wso2.com
>
>
>
> On Thu, Apr 3, 2014 at 1:59 PM, Samisa Abeysinghe <[email protected]> wrote:
>
>> Any updates on the progress?
>>
>> Thanks,
>> Samisa...
>>
>>
>> Samisa Abeysinghe
>>
>> Vice President Developer Evangelism
>>
>> WSO2 Inc.
>> http://wso2.com
>>
>>
>>
>> On Tue, Mar 25, 2014 at 9:38 AM, Sewwandi Perera <[email protected]>wrote:
>>
>>> Yes Indika. But in the initial discussions, we thought of mainly
>>> focusing on the e-mail transactions than Gmail settings.
>>>
>>> As suggested by Samisa, I'll first implement one operation and see
>>> whether I can take some more operations to implement.
>>>
>>> Thanks,
>>> Sewwandi
>>>
>>>
>>> On Mon, Mar 24, 2014 at 10:30 PM, Indika Kularathne <
>>> [email protected]> wrote:
>>>
>>>> There are more operations [0] that you can see in gmail rest api.
>>>>
>>>> [0] - https://developers.google.com/admin-sdk/email-settings/?csw=1
>>>>
>>>> Thanks
>>>> BR
>>>> Indika Kularathne
>>>>
>>>>
>>>>
>>>> On Mon, Mar 24, 2014 at 5:08 PM, Samisa Abeysinghe <[email protected]>wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Mar 24, 2014 at 4:54 PM, Sewwandi Perera <[email protected]>wrote:
>>>>>
>>>>>> Hi Samisa,
>>>>>>
>>>>>> As I mentioned above, there is no specific API for Gmail. Therefore,
>>>>>> I am going to use the "java-gmail-imap" library given in [1].
>>>>>> The Operations which I have listed out in the above mail can be
>>>>>> implemented using the "java-gmail-imap" library.
>>>>>>
>>>>>> I planned only for 7 operations to fit into the given time frame.
>>>>>>
>>>>>
>>>>> That is too low. We can do more in  three weeks
>>>>>
>>>>>
>>>>>> [1] https://code.google.com/p/java-gmail-imap/
>>>>>>
>>>>>> Regards,
>>>>>> Sewwandi
>>>>>>
>>>>>>
>>>>>> On Mon, Mar 24, 2014 at 3:29 PM, Samisa Abeysinghe 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>>
>>>>>>> On Mon, Mar 24, 2014 at 3:29 PM, Samisa Abeysinghe 
>>>>>>> <[email protected]>wrote:
>>>>>>>
>>>>>>>> So you are going to support only 7 operations? Is that all we have
>>>>>>>> in this original Gmail PI?
>>>>>>>>
>>>>>>>
>>>>>>> Menat to say API
>>>>>>>
>>>>>>>>
>>>>>>>>  Thanks,
>>>>>>>> Samisa...
>>>>>>>>
>>>>>>>>
>>>>>>>> Samisa Abeysinghe
>>>>>>>>
>>>>>>>> Vice President Developer Evangelism
>>>>>>>>
>>>>>>>> WSO2 Inc.
>>>>>>>> http://wso2.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 24, 2014 at 2:58 PM, Sewwandi Perera <[email protected]
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> *Introduction*
>>>>>>>>> For the V1.0 of the connector, I mainly focus on implementing the
>>>>>>>>> basic e-mail operations like accessing and sending e-mail messages
>>>>>>>>> .
>>>>>>>>>
>>>>>>>>> *API*
>>>>>>>>> Since there is no data API for Gmail [1], I'll be using IMAP, SMTP
>>>>>>>>> extensions provided by Google [2] for implementation.
>>>>>>>>>
>>>>>>>>> *Authentication*
>>>>>>>>> OAuth 2.0 protocol will be used with the SASL XOAUTH2 mechanism
>>>>>>>>> supported by Gmail [3].
>>>>>>>>>
>>>>>>>>> *Operations*
>>>>>>>>> Since the bellow listed operations are not API based, we can have
>>>>>>>>> any customized operations with the support of IMAP and SMTP libraries.
>>>>>>>>> So, please let me know if you have any concerns on the below
>>>>>>>>> listed operations.
>>>>>>>>>
>>>>>>>>>  1. Sending an e-mail
>>>>>>>>> Support attachments
>>>>>>>>>
>>>>>>>>>  2. Listing all unread e-mail messages under a label:
>>>>>>>>> All unread e-mail messages under the specified label will be
>>>>>>>>> listed with their "thread ID"s.
>>>>>>>>>
>>>>>>>>> 3. Listing all unread e-mails
>>>>>>>>> All unread e-mail messages in the mail box will be listed with
>>>>>>>>> their "thread ID"s
>>>>>>>>>
>>>>>>>>>  4. Listing all mails under a label
>>>>>>>>> All e-mail messages under the specified label will be listed with
>>>>>>>>> their "thread ID"
>>>>>>>>>
>>>>>>>>>  5. Searching mails under a label
>>>>>>>>> Search the e-mail messages under the specified label according to
>>>>>>>>> the search term given by the user and list the resulted e-mails with 
>>>>>>>>> their
>>>>>>>>> "thread ID"s
>>>>>>>>>
>>>>>>>>>  6. Reading a mail thread
>>>>>>>>> Read the mail thread which belongs to the "Thread ID" given by the
>>>>>>>>> user.
>>>>>>>>>
>>>>>>>>>  7. Deleting a mail thread
>>>>>>>>> Delete the mail thread which belongs to the "Thread ID" given by
>>>>>>>>> the user.
>>>>>>>>>
>>>>>>>>> [1] https://developers.google.com/gdata/faq#GmailAtomFeed
>>>>>>>>> [2] https://code.google.com/p/java-gmail-imap/
>>>>>>>>> [3] https://developers.google.com/gmail/oauth_overview
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Sewwandi Perera
>>>>>>>>> Software Engineer
>>>>>>>>>
>>>>>>>>> WSO2 Inc.; http://wso2.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sewwandi Perera
>>>>>> Software Engineer
>>>>>>
>>>>>> WSO2 Inc.; http://wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Sewwandi Perera
>>> Software Engineer
>>>
>>> WSO2 Inc.; http://wso2.com
>>> lean.enterprise.middleware
>>>
>>
>>
>
>
> --
> Sewwandi Perera
> Software Engineer
>
> WSO2 Inc.; http://wso2.com
> lean.enterprise.middleware
>



-- 
Sewwandi Perera
Software Engineer

WSO2 Inc.; http://wso2.com
lean.enterprise.middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to