WAEMailMessage, next step

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

WAEMailMessage, next step

Diogenes Moreira
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
2. Obtein all resourses referenced by  the HTML as Stream and attach it to email message.
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.

Any Clue or Tip, will be welcome.

Best

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

sebastianconcept@gmail.co
diacritics and encoding apart, that would be true if html were something that email clients can actually display (not to mention obtain delivered by mail servers)




On Feb 24, 2011, at 11:38 AM, Diogenes Moreira wrote:

> 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
> 2. Obtein all resourses referenced by  the HTML as Stream and attach it to email message.
> 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.
>
> Any Clue or Tip, will be welcome.
>
> Best
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

Philippe Marschall
In reply to this post by Diogenes Moreira
2011/2/24 Diogenes Moreira <[hidden email]>:
> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

tfleig
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 <[hidden email]> wrote:
2011/2/24 Diogenes Moreira <[hidden email]>:
> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

tfleig
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 <[hidden email]> 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 <[hidden email]> wrote:
2011/2/24 Diogenes Moreira <[hidden email]>:
> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

Diogenes Moreira
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> wrote:
2011/2/24 Diogenes Moreira <[hidden email]>:
> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

Julian Fitzell-2
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
<[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>> <[hidden email]> wrote:
>>>>
>>>> 2011/2/24 Diogenes Moreira <[hidden email]>:
>>>> > 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
>>>> [hidden email]
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: WAEMailMessage, next step

Boris Popov, DeepCove Labs (SNN)
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: [hidden email] [mailto:[hidden email]] 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>> <[hidden email]> wrote:
>>>>
>>>> 2011/2/24 Diogenes Moreira <[hidden email]>:
>>>> > 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
>>>> [hidden email]
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: WAEMailMessage, next step

Julian Fitzell-2
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
<[hidden email]> 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: [hidden email] [mailto:[hidden email]] 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>> <[hidden email]> wrote:
>>>>>
>>>>> 2011/2/24 Diogenes Moreira <[hidden email]>:
>>>>> > 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
>>>>> [hidden email]
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>
>>>
>>>
>>> _______________________________________________
>>> seaside mailing list
>>> [hidden email]
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

RE: WAEMailMessage, next step

Boris Popov, DeepCove Labs (SNN)
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: [hidden email] [mailto:[hidden email]] 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 <[hidden email]> 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: [hidden email]
> [mailto:[hidden email]] 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>> <[hidden email]> wrote:
>>>>>
>>>>> 2011/2/24 Diogenes Moreira <[hidden email]>:
>>>>> > 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
>>>>> [hidden email]
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>
>>>
>>>
>>> _______________________________________________
>>> seaside mailing list
>>> [hidden email]
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside