[Seaside] WAEMailMessage, next step

Tony Fleig tony.fleig at gmail.com
Fri Feb 25 10:17:00 UTC 2011


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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20110225/85d038db/attachment-0001.htm


More information about the seaside mailing list