[Seaside] WAEMailMessage, next step

Julian Fitzell jfitzell at gmail.com
Fri Feb 25 15:38:34 UTC 2011


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


More information about the seaside mailing list