This isn't a DTML problem, per se. You can't send e-mail that isn't properly formatted... that's your core problem. Unless the variable you render in the BCC field contains a value that conforms with RFC822, you won't get the results you're expecting. Multi-line DTML statements insert line breaks into your output stream... that's not a problem when they're forming HTML, but it will mess up e-mail headers. And when you're sending to multiple recipients (on any header), bear in mind that the correct format is comma delimited, not space delimited. Try something like: <dtml-call "REQUEST.set(my_names, [])"> <dtml-in "something_that_produces_addresses()" prefix=recipient> <dtml-call "my_names.append(recipient_item)"> </dtml-in> and then in <dtml-sendmail ...>, put: Bcc: <dtml-var "','.join(my_names)"> HTH, Dylan At 01:42 PM 11/21/2002, you wrote:
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>
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )