[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