[Seaside] WAEMailMessage, next step

Boris Popov, DeepCove Labs boris at deepcovelabs.com
Fri Feb 25 21:44:31 UTC 2011


I'm thankful enough that they provide basic port and tools to stay up-to-day, everything else would be gravy. It seems that the market for vendors is decided by much bigger factors than value-add for common frameworks,

- you want free? Squeak/Pharo
- you want free persistency? GemStone
- you want commercial support and large toolset? VisualWorks
- you already use VA? VA

:-p

-Boris

-----Original Message-----
From: seaside-bounces at lists.squeakfoundation.org [mailto:seaside-bounces at lists.squeakfoundation.org] On Behalf Of Julian Fitzell
Sent: Friday, February 25, 2011 4:41 PM
To: Seaside - general discussion
Subject: Re: [Seaside] WAEMailMessage, next step

Well, I'm not surprised by *that*, really. But I guess I always expected the vendors would provide more add-on value for their individual platforms... <shrug>

Julian

On Fri, Feb 25, 2011 at 3:51 PM, Boris Popov, DeepCove Labs <boris at deepcovelabs.com> wrote:
> Julian,
>
> I'm not surprised at all, actually. We use Seaside quite heavily for our applications and that'll only increase as we look at plans to migrate all of our back-office application onto the same platform that we used to build our online client portal. The effort required to extract an internal improvement/add-on and make it useful for others is significant for all but the most trivial of things, and those don't get published because, well, they are trivial...
>
> -Boris
>
> -----Original Message-----
> From: seaside-bounces at lists.squeakfoundation.org 
> [mailto:seaside-bounces at lists.squeakfoundation.org] On Behalf Of 
> Julian Fitzell
> Sent: Friday, February 25, 2011 10:39 AM
> To: Seaside - general discussion
> Subject: Re: [Seaside] WAEMailMessage, next step
>
> It doesn't necessarily *need* to be dialect independent. It's perfectly reasonable to have add-on functionality available on individual platforms. I'm actually surprised how little that has happened so far...
>
> Julian
>
> On Fri, Feb 25, 2011 at 3:13 PM, Diogenes Moreira <diogenes.moreira at gmail.com> wrote:
>> Hi, Tony
>> First... Thank you for you answare.
>> I knew it, in fact, I based the code sended in the previous email in 
>> the EMailMessage from Pharo 1.2.. but remember... the seaside code 
>> must be dialect independient.
>> Thank Again
>> On Fri, Feb 25, 2011 at 7:17 AM, Tony Fleig <tony.fleig at gmail.com> wrote:
>>>
>>> Oops. I didn't mean to send so much code. Here is the relevant piece.
>>> Sorry to clutter up your email inboxes...
>>>
>>> TF
>>>
>>> sendEmailTo: toAddress subject: subj text: textBody html: htmlBody
>>>     "Send multi-part MIME email message."
>>>
>>>
>>>
>>>
>>>     | sem mm|
>>>     mm := TLMailMessage empty.
>>>     mm addAlternativePart: textBody contents contentType: 'text/plain'.
>>>     mm addAlternativePart: htmlBody contents contentType: 'text/html'.
>>>     sem := mm
>>>         seasideMailMessageFrom: 'Registrar@' , self emailHost
>>>         to: toAddress
>>>         subject: subj.
>>>     [sem send] on: Exception do: [ :ex | ^ false ].
>>>     ^ true
>>>
>>> On Fri, Feb 25, 2011 at 11:12 AM, Tony Fleig <tony.fleig at gmail.com> wrote:
>>>>
>>>> There may be some overlap here
>>>> with http://code.google.com/p/pharo/issues/detail?id=3509
>>>> (Multi-part MIME messages for Pharo). I submitted these changes to 
>>>> support using multi-part messages in TF-Login (http://www.squeaksource.com/TFLogin.html).
>>>> There's an example of creating and sending multi-part MIME content 
>>>> buried
>>>> here:
>>>> http://www.tonyfleig.com/smallthoughts/tfloginguide/Tests/integrati
>>>> n
>>>> g
>>>>
>>>>
>>>> sendRegistrationConfirmationEmailTo: email confirmUrl: url
>>>> timeoutMinutes: timo
>>>>
>>>>
>>>>
>>>>
>>>>     "Compose and send email. Answer true on success, false on failure."
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     | textBody htmlBody emailOk appName |
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     appName := 'Login Test App'.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     "Compose a pain text message."
>>>>
>>>>
>>>>
>>>>
>>>>     textBody := (WriteStream on: String new)
>>>>
>>>>
>>>>
>>>>
>>>>         << 'This email is in response to your request to register 
>>>> at '; << appName;
>>>>
>>>>
>>>>
>>>>
>>>>         << '.'; crlf;crlf;
>>>>
>>>>
>>>>
>>>>
>>>>         << 'Direct your browser to the following URL within ';<< 
>>>> timo asString;
>>>>
>>>>
>>>>
>>>>
>>>>         << ' minutes to confirm your registration.'; crlf;crlf;
>>>>
>>>>
>>>>
>>>>
>>>>         << '         '; << url; crlf;crlf;
>>>>
>>>>
>>>>
>>>>
>>>>         << 'If you did not attempt to register for a'; << appName;
>>>>
>>>>
>>>>
>>>>
>>>>         << ' account then this message was sent in error and should 
>>>> be ignored.'.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     "Compose a nice HTML message."
>>>>
>>>>
>>>>
>>>>
>>>>     htmlBody := WAHtmlCanvas builder fullDocument: true; render: [ 
>>>> :html
>>>> |
>>>>
>>>>
>>>>
>>>>
>>>>         html div
>>>>
>>>>
>>>>
>>>>
>>>>             style: 'font-size:11pt;';
>>>>
>>>>
>>>>
>>>>
>>>>             with: [
>>>>
>>>>
>>>>
>>>>
>>>>                 html div
>>>>
>>>>
>>>>
>>>>
>>>>                     style: 'margin-bottom: 10px;';
>>>>
>>>>
>>>>
>>>>
>>>>                     with: 'This email is in response to your 
>>>> request to register at ', appName, '.'.
>>>>
>>>>
>>>>
>>>>
>>>>                 html text: 'Click on the link below within ', timo 
>>>> asString,
>>>>
>>>>
>>>>
>>>>
>>>>                     ' minutes to confirm your registration.'.
>>>>
>>>>
>>>>
>>>>
>>>>                 html div
>>>>
>>>>
>>>>
>>>>
>>>>                     style:
>>>> 'margin-left:20pt;margin-top:10px;margin-bottom:10px;';
>>>>
>>>>
>>>>
>>>>
>>>>                     with: [
>>>>
>>>>
>>>>
>>>>
>>>>                         html anchor
>>>>
>>>>
>>>>
>>>>
>>>>                             url: url;
>>>>
>>>>
>>>>
>>>>
>>>>                             with: 'Confirm registration'].
>>>>
>>>>
>>>>
>>>>
>>>>                 html text: 'If the link above is unresponsive, copy 
>>>> and paste the URL',
>>>>
>>>>
>>>>
>>>>
>>>>                     'below into your browser''s address field to 
>>>> confirm your registration.'.
>>>>
>>>>
>>>>
>>>>
>>>>                 html div
>>>>
>>>>
>>>>
>>>>
>>>>                     style:
>>>> 'margin-left:20pt;margin-top:10px;margin-bottom:10px;';
>>>>
>>>>
>>>>
>>>>
>>>>                     with: url.
>>>>
>>>>
>>>>
>>>>
>>>>                 html text: 'If you did not attempt to register for 
>>>> a', appName,
>>>>
>>>>
>>>>
>>>>
>>>>                     ' account then this message was sent in error 
>>>> and should be ignored.']].
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     "Send the message."
>>>>
>>>>
>>>>
>>>>
>>>>     (emailOk := self
>>>>
>>>>
>>>>
>>>>
>>>>         sendEmailTo: email
>>>>
>>>>
>>>>
>>>>
>>>>         subject:  appName, ' Registration - action required'
>>>>
>>>>
>>>>
>>>>
>>>>         text: textBody html: htmlBody)
>>>>
>>>>
>>>>
>>>>
>>>>             ifFalse: [ Transcript cr; show: url ].
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     ^ emailOk
>>>>
>>>> ________________________________
>>>>
>>>> sendEmailTo: toAddress subject: subj text: textBody html: htmlBody
>>>>
>>>>
>>>>
>>>>
>>>>     "Send multi-part MIME email message."
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     | sem mm|
>>>>
>>>>
>>>>
>>>>
>>>>     mm := TLMailMessage empty.
>>>>
>>>>
>>>>
>>>>
>>>>     mm addAlternativePart: textBody contents contentType: 'text/plain'.
>>>>
>>>>
>>>>
>>>>
>>>>     mm addAlternativePart: htmlBody contents contentType: 'text/html'.
>>>>
>>>>
>>>>
>>>>
>>>>     sem := mm
>>>>
>>>>
>>>>
>>>>
>>>>         seasideMailMessageFrom: 'Registrar@' , self emailHost
>>>>
>>>>
>>>>
>>>>
>>>>         to: toAddress
>>>>
>>>>
>>>>
>>>>
>>>>         subject: subj.
>>>>
>>>>
>>>>
>>>>
>>>>     [sem send] on: Exception do: [ :ex | ^ false ].
>>>>
>>>>
>>>>
>>>>
>>>>     ^ true
>>>>
>>>>
>>>> On Fri, Feb 25, 2011 at 8:32 AM, Philippe Marschall 
>>>> <philippe.marschall at gmail.com> wrote:
>>>>>
>>>>> 2011/2/24 Diogenes Moreira <diogenes.moreira at gmail.com>:
>>>>> > Hi,
>>>>> > I'm thinking implement something like WAHtmlEmailBody...
>>>>> > the idea is generate a rich text email from a WAComponent...
>>>>> > In this direction I need solve 4 principal Issues 1. Obtein 
>>>>> > "HTML" from the a component.. I can guess, i'll make something 
>>>>> > like WAEMailCanvas..for render the email
>>>>>
>>>>> I don't know whether a WAComponent is really what you want. 
>>>>> #call:, #answer:, #confirm: and friends all don't work.
>>>>>
>>>>> > 2. Obtein all resourses referenced by  the HTML as Stream and 
>>>>> > attach it to email message.
>>>>>
>>>>> Maybe only allowing #document: is easier.
>>>>>
>>>>> > 3. Replace the reourses's src attribute into html body for 
>>>>> > attachment reference.
>>>>> > 4. Parse the HMTL Code to obtein plain text to add this 
>>>>> > alternativa to email.
>>>>>
>>>>> Maybe it would be simpler to just write a second presenter for that.
>>>>> You'll probably want two new lines after a heading and one after a 
>>>>> paragraph.
>>>>>
>>>>> Cheers
>>>>> Philippe
>>>>> _______________________________________________
>>>>> seaside mailing list
>>>>> seaside at lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>
>>>
>>>
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
seaside at lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


More information about the seaside mailing list