On Dec 20, 2012, at 1:35 PM, Thomas Mortagne <thomas.mortagne(a)xwiki.com> wrote:
On Thu, Dec 20, 2012 at 12:55 PM, Thomas Delafosse
<
thomas.delafosse(a)xwiki.com> wrote:
Hi all,
I would be happy to work on the mailSender plugin.
I propose to make it a component and add it a few functionalities. Namely,
I was thinking about adding an API like:
public int sendMultiContentMessage (String from, String to, String cc,
String bcc, String subject, String[] contents, List<Attachment>
attachments) (1)
where contents would be a string array containing all the contents to be
embed in the mail (text, html but also a vCalendar for example) along with
their MIME type.
So for example, if you want to send a mail containing some html part and a
vCalendar, "contents" would look something like :
contents = ['text/html', Your Html code, 'text/calendar', Your vCalendar]
.
Another way to achieve this would be to use a single String "body" instead
of "contents", with a specific syntax indicating each part MIME type, thus
allowing us to parse it. For example we could imagine having something like
:
public int sendMultiContentMessage (String from, String to, String cc,
String bcc, String subject, String body, List<Attachment> attachments) with
body = "{{html}}HTML code{{/html}} {{calendar}}Calendar code{{/calendar}}"
(2) or even
body = "{{mailPart type='text/html'}}HTML code{{/mailPart}} {{mailPart
type="text/calendar"}}Calendar code{{/mailPart}}" (3).
This would be easier to use ((2) most of all), but probably trickier,
slower and for (2), less flexible.
WDYT ? And of course, if there is anything else you would like to change in
the mailSender, let me know !
Would be nice to start from what Jeremie already started on
https://github.com/xwiki-contrib/xwiki-application-mailarchive/tree/master/…
it's the same goal, a generic mail component API.
I think it's different: one is for mail sending, the other for mail reading. I agree
with Ludovic that we should have 2 modules for this.
Thanks
-Vincent
> Thomas
>
> On Wed, Nov 28, 2012 at 3:01 PM, Ludovic Dubost <ludovic(a)xwiki.com> wrote:
>
>> Hi Jeremie and all,
>>
>> Note that currently mailsender is used quite a lot by standard XWiki
>> Enterprise features like "send page by email", "invitation",
>> "registration".
>> I agree that the mailsender code could be merged with your own component
>> that currently handles reading emails.
>>
>> Any other opinion on the mail I sent before. I'd like to publish the code
>> that generates vcalendar invitations because it could be used in many
> areas
>> but without the mailsender modifications it cannot work and rewriting a
>> mail code that handles vcalendar is tough:
>>
>> So what would be the approach to add a vcalendar part in emails sent by
> the
>> current mailsender ? Can I propose my patches that add the following API:
>>
>> public int sendHtmlMessage(String from, String to, String cc, String bcc,
>> String subject, String body,
>> String alternative, String calendar, List<Attachment>
> attachments)
>>
>> which is derived from
>>
>> public int sendHtmlMessage(String from, String to, String cc, String bcc,
>> String subject, String body,
>> String alternative, List<Attachment> attachments)
>>
>> Note that this API should actually be:
>>
>> public int sendHtmlMessage(String from, String to, String cc, String bcc,
>> String subject, String html,
>> String alternativeText, List<Attachment> attachments)
>>
>> As this is the way the fields are used since there is no way to change
> the
>> content type of the emails from these APIs
>>
>> Ludovic
>>
>>
>>
>>
>>
>> 2012/11/23 Jeremie BOUSQUET <jeremie.bousquet(a)gmail.com>
>>
>>> Hi Ludovic,
>>>
>>> If I may invite myself in the discussion, I have the same questions
>>> concerning the mail archive app I'm writing, in which I plan to add a
>>> "reply" feature on one side, and on the other side add management
of
>>> vcalendar parts in incoming emails. Naturally, it would then be nice to
>> be
>>> able to send vcalendar as an email part (or any type of part).
>>>
>>> For now there's no "reply" feature so of course I do not use
the
>> mailsender
>>> plugin. But there's the beginning of a "mail" component, for
now
>> dedicated
>>> to the mail archive app, and obviously aiming at hiding javamail api
>>> behind, and providing facilities to parse emails headers and parts, and
>> why
>>> not send emails. For now it "knows" how to read and compute most
emails
>>> content (text, html, headers, attachments, attached emails), though has
>>> same limitation (including vcalendar).
>>>
>>> Currently the api is like that, but is quite draft and unstable (mostly
>> the
>>> update/create*Page that are not even implemented, and IMO should be
>>> removed):
>>>
>>>
>>
>
https://github.com/xwiki-contrib/xwiki-application-mailarchive/blob/master/…
>>> What's available from parsed mail body is:
>>>
>>>
>>
>
https://github.com/xwiki-contrib/xwiki-application-mailarchive/blob/master/…
>>>
>>> Obviously, when all that reaches a final state, it would be nice for a
>>> "mail" and/or "mailsender" component to be shared for
xwiki and the
> mail
>>> archive app (and whoever wants to bother with mails) needs,
>>>
>>> That was for your information,
>>>
>>> BR,
>>> Jeremie
>>>
>>>
>>>
>>> 2012/11/23 Ludovic Dubost <ludovic(a)xwiki.com>
>>>
>>>> Hi,
>>>>
>>>> I wanted to discuss about the future of the mailsender plugin ?
>>>>
>>>> I've been working on a small tool to be able to send a Calendar
>>> Invitation
>>>> by email from a Meeting Notes AppWithinMinutes application and I
> found
>>> some
>>>> limitation in the mailsender plugin, namely you cannot add multipart
>>>> alternative email parts in addition to the text and html parts
> already
>>>> supported by the plugin.
>>>>
>>>> I was able to hack the mailsender plugin to add a vcalendar part but
> it
>>>> does not really sound right to do that since we should support any
> part
>>> of
>>>> any content type, but this is a bigger refactoring.
>>>>
>>>> I was wondering what the future is for the mailsender plugin. Do we
>> plan
>>> to
>>>> make it a component and keep the same functionality ? Is there a plan
>> for
>>>> an alternative component ?
>>>>
>>>> And what would be the approach to add a vcalendar part in emails sent
>> by
>>>> the current mailsender ? This would be needed to support the feature
> of
>>>> sending invitation emails which would be very powerfull.
>>>>
>>>> Ludovic
>>>>
>>>> --