[Seaside] WAEMailMessage, next step

Boris Popov, DeepCove Labs boris at deepcovelabs.com
Fri Feb 25 15:51:05 UTC 2011


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/integratin
>>> 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


More information about the seaside mailing list