Thanks Kim i will try this

On Thu, Mar 8, 2012 at 5:03 AM, Sean Kim <[email protected]> wrote:

> Not really sure what you're saying, but I assume that basically you
> want to email the company with due date that matches current date.
> Wouldn't this work?
>
> currentdate = datetime.date.today()
> for row in db(db.company.due_date==currentdate).select():
>     mail.send(to=[row.cowner_id],
>                subject='Sending the mail by using Cron job'
>                 message=row.details)
>
> Why are you appending the company details to the list? If you want to
> get all of the company's details and email that to everyone, you will
> need to email once the loop's done retrieving all the details and
> emails.
>
> co_details = []
> co_emails = []
> for row in db(db.company.due_date==currentdate).select():
>    co_emails.append(row.cowner_id)
>    co_details.append(row.details)
>
> msg = ' '.join(co_details)
> for co_email in co_emails:
>    # you could just do to=co_emails if you don't need to send
> individual emails
>    mail.send(to=[co_email],
>                    subject='Sending the mail by using Cron job'
>                    message=msg)
>
>
> On Mar 6, 11:17 pm, Sanjeet Kumar <[email protected]> wrote:
> > Actually i have the one company table :-
> >
> > db.define_table(('comany'),
> >                      Field('cowner_id'),
> >                      Field('details'),
> >                      Field('due_date','date'))
> >
> > here i want to send the mail with the details by using the cron when the
> > date will match to the due date :-
> >
> > i have the following code in my modules send.py :-
> >
> > from gluon.tools import Mail
> > mail=Mail()
> > #specify server
> > mail=auth.settings.mailer
> > mail.settings.server='smtp.gmail.com:587'
> > mail.settings.login='[email protected]:password'
> > #specify address to send as
> > mail.settings.sender='[email protected]'
> > #send the message
> > try:
> >      import datetime
> >      list[]
> >      currentdate = datetime.date.today()
> >      for row in db(db.company.due_date == currentdate).select():
> >           list.append(details)
> >      mail.send(to=[row.cowner_id],
> >     subject='Sending the mail by using Cron job',
> >     message=str(list))
> > except Exception, e:
> > print 'oops: %s' % e
> >
> > here the problem is the if the i have many companies in our database than
> > how i sent the different mail to each of the different companies at a
> time
> > with all details when the due_date will match to the each of the
> companies.
> > here the for loop scope is ended so that is the reason to it is sending
> and
> > taking the only last data from my database and if i sent the mail by
> using
> > inside the scope of the for loop than the for each of the rows mail will
> be
> > sent with the details so its frustrated that is the reason i want to sent
> > the only one mail with all the details to the companies with date which
> > matches the today's date. But if the more than one companies in our
> > database than it is taking only the last because scope of for loop is
> ended
> > so how i resolve these issues please help me.
>

Reply via email to