[Zope] Iterating inside Sendmail

Michael michael@nichestaffing.com
Thu, 21 Nov 2002 14:42:33 -0700


Thanks Tino, 

I guess this is where dtml just doesn't cut it.  i'm real new to Python, 
(just learning it), so I'll try working on this for a while and see if it 
does it or not.  I am just confused as to why dtml-in does not work inside of 
sendmail.  I also tried, as Mike suggested, creating another method and 
moving the [with / in] statement to it and then calling it as 
Bcc: <dtml-var listNames> and that didn't work either.  When I 'viewed' it, 
it appeared to work fine, ie: email@address1.com email@address2.com 
email@address.com etc. but not inside of sendmail.

Michael


On Thursday 21 November 2002 02:10 pm, Tino Wildenhain wrote:
> Hi Michael,
>
> just drop DTML for this too and use
> Mailhost.send() instead. If you have a recent
> Zope, it strips BCC automatically and you only have
> to provide it with mailtxt, which is mailheader + 1 free line +
> mailbody.
> Minimal mailheader is
> To: Person <person@target.com>
> From: Person <person@source.com>
> Subject: what to say...
>
> The simplest way to do this in a loop is to use a Python long string:
>
> msg="""To: %(to)s
> From: %(from)s
> Subject: Your subject
>
> Hi there,
> foobar...
> """.replace('\n','\r\n')
>
> The replace stepp changes the line endings from single newline (Unix,
> python) to
> carriage-return + newline, which is for rfc822 complience.
>
> all_addresses=[{'to':'Person1 <person1@person1.com>,'from':'Me
> <myself@me.com>'},
>                {'to':'Person2 <person2@person2.com>,'from':'Me
> <myself@me.com>'},
>                {'to':'Person1 <person3@person3.com>,'from':'Me
> <myself@me.com>'}]
>
> for target in all_addresses:
>    Mailhost.send(msg % target)
>
> This is untested, but schould give you a starting point.
>
> Does this help?
>
> Regards
> Tino Wildenhain
>
> --On Donnerstag, 21. November 2002 13:38 -0700 Michael
>
> <michael@nichestaffing.com> wrote:
> > I have put up a small job site for Linux jobs here in N. Colorado.  I
> > want to  offer the option of entering an email address and have job
> > postings emailed  directly to subscribers as they are posted.  I tried
> > the example below, but  there seems to be a problem iterating inside
> > sendmail.
> >
> > For the time being, I just created a method and manually entered all the
> > email addresses in it, ie: Bcc: <dtml-var listNames>, but I would like to
> > automate it if possible.  Does anyone have any idea on how to approach
> > this?
> >
> > Michael
> >
> >
> > <dtml-with entries>
> >
> > <dtml-call "REQUEST.set('post_name', post_name)">
> > <dtml-call "REQUEST.set('post_type', post_type)">
> > <dtml-call "REQUEST.set('post_email', post_email)">
> > <dtml-call "REQUEST.set('description', description)">
> > <dtml-call "REQUEST.set('company_name', company_name)">
> > <dtml-call "REQUEST.set('company_domain', company_domain)">
> > <dtml-call "REQUEST.set('position_title', position_title)">
> > <dtml-call "REQUEST.set('org_city', org_city)">
> > <dtml-call "REQUEST.set('title', post_name+' - '+post_type+' -
> > '+position_title)">
> >
> > <dtml-with "manage_addProduct['NCLJobs']">
> > <dtml-call "ncl_jobs_entry_add(_.None, _, NoRedir=1)">
> > </dtml-with>
> > </dtml-with>
> >
> > <dtml-sendmail mailhost="MailHost">
> > To: linux@jymis.com
> > From: linux-jobs@jymis.com
> > Bcc:
> > <dtml-with listEntries>
> > <dtml-in Catalog>
> > <dtml-var email_address>
> > </dtml-in>
> > </dtml-with>
> > Subject: Northern Colorado Linux Jobs Autoresponder
> > <dtml-mime type=text/plain encode=7bit>
> > POSTING TYPE: <dtml-var post_type>
> > COMPANY NAME: <dtml-var company_name>
> > COMPANY DOMAIN: <dtml-var company_domain>
> > CONTACT EMAIL: <dtml-var post_email>
> > POSITION TITLE: <dtml-var position_title>
> > LOCATION / CITY: <dtml-var org_city>
> >
> > DESCRIPTION: <dtml-var description>
> > </dtml-mime>
> > </dtml-sendmail>
> >