Thank you.
I moved the code to Model. But could you please share me steps that
how to schedule(trigger) it send emails.

On Tue, Aug 16, 2016 at 5:19 PM, 黄祥 <[email protected]> wrote:
> i think the sendemail.py should be in models
> models/SendEmail.py:
> # -*- coding: utf-8 -*-
> # try something like
> from gluon.tools import Mail
> def send_email():
>   mail = Mail()
>   #mail.settings.server = 'smtp.hitachiconsulting.com'
>   mail.settings.server = 'smtp.gmail.com:587'
>   mail.settings.sender = '[email protected]'
>   mail.settings.login = '[email protected]:123'
>   x = mail.send(
>   to = ['[email protected]'], subject = 'hello',
>   reply_to = '[email protected]',
>   message = 'Hello ! How are you?'
>   )
>   if x:
>     nm="Sent Successfully";
>   else:
>     nm="failed";
>
> not sure what do you mean with to schedule sending emails 1 to 15 days and
> 16 to 30 days, if you want to send email which is date is 1-15, i think you
> can use conditional if :
> if request.now.day >= 1 and request.now.day <= 15:
>
> best regards,
> stifan
>
> On Tuesday, August 16, 2016 at 6:26:33 PM UTC+7, madhu nomula wrote:
>>
>> Thanks Dave.
>>
>> I wrote code like below: But I am not sure how to schedule this. Could
>> you please guide me to configure this Scheduler (need bit more
>> elaborated steps). Thank you appreciate your help:
>> ______________________
>> In Controller: SendEmail.py:
>> # -*- coding: utf-8 -*-
>> # try something like
>> from gluon.tools import Mail
>> def send_email():
>>     mail = Mail()
>>     #mail.settings.server = 'smtp.hitachiconsulting.com'
>>     mail.settings.server = 'smtp.gmail.com:587'
>>     mail.settings.sender = '[email protected]'
>>     mail.settings.login = '[email protected]:123'
>>     x = mail.send(
>>    to = ['[email protected]'], subject = 'hello',
>>    reply_to = '[email protected]',
>>    message = 'Hello ! How are you?'
>>     )
>>     if x:
>>         nm="Sent Successfully";
>>     else:
>>         nm="failed";
>> _____________
>> In Controller: scheduler.py
>> from gluon.scheduler import Scheduler
>> # schedule recurring tasks:
>> def sched_tasks(arg1=""):
>>   # arg1 keeps this from being expose as a web page
>>   # instantiate Scheduler class
>>     scheduler = Scheduler(db)
>>     task = scheduler.queue_task("send_email", period = 86400, repeats=1)
>>   # show on console, or add to log
>>     print task
>>     db.commit()
>>
>> def stop_tasks(arg1=""):
>>   # arg1 keeps this from being expose as a web page
>>   # instantiate Scheduler class
>>     scheduler = Scheduler(db)
>>     task = scheduler.task_status(db.scheduler_task.task_name ==
>> 'send_email')
>>     if hasattr(task, "status") and task.status in ["QUEUED", "RUNNING"]:
>>         stop = scehduler.stop_task(task.uuid)
>>      # show on console or add to log
>>         print cue
>>         db.commit()
>> _____________________________
>>
>>
>> Please suggest me, next what I have to do , to schedule sending emails
>> 1 to 15 days and 16 to 30 days .
>>
>> Regards,
>> MC
>>
>>
>> On Wed, Aug 3, 2016 at 12:28 AM, Dave S <[email protected]> wrote:
>> >
>> >
>> > On Tuesday, August 2, 2016 at 10:51:36 AM UTC-7, madhu nomula wrote:
>> >>
>> >> Hi All,
>> >>
>> >> I need help on below requirement.
>> >>
>> >> We have implemented Time sheet  logging tool for users in web2py tool.
>> >>
>> >> Now the requirement is to send email notifications to the users of
>> >> tool,
>> >> to enter time sheet and submit.
>> >> This email has to be sent for all users from 1 to 15 days of month and
>> >> 16
>> >> to 30 days of month till the user submits time sheets.
>> >
>> >
>> > I am not sure what you mean here ... That twice a month you start
>> > nagging
>> > the users?  That's the easiest interpretation.  Also, I think, easy to
>> > do
>> > ... see below.
>> >
>> >>
>> >>
>> >> Please suggest, how can I schedule this sending emails option in Web2Py
>> >> tool.
>> >
>> >
>> > I recommend using the built-in scheduler.  This looks something like:
>> > (read about it at
>> >
>> > <URL:http://web2py.com/books/default/chapter/29/04/the-core#web2py-Scheduler>)
>> > (and note that this is untested, but based on my own scheduler usage and
>> > comments in this forum by Niphlod)
>> >
>> > in your model file (scheduler.py is a good name)
>> > # define scheduler task
>> >    def send_nags(first_reminder = False):
>> >       if first_reminder or now.date in [1, 16]:
>> >         db(db.staff.ALL).update(curts_recd = False)
>> >       mail = auth.settings.mailer
>> >       query = db.staff.curts_recd == False
>> >       rows = db(query)
>> >       for row in rows:
>> >         msg = compose_reminder(row.id, ...)
>> >         mail.send(to=row.email, reply_to="payroll@mybiz", message = msg)
>> >
>> > # instantiate Scheduler class
>> > from gluon.scheduler.import Scheduler
>> > scheduler = Scheduler(db)
>> >
>> >
>> > In one of your controller files:
>> > # schedule recurring tasks:
>> > def sched_tasks(arg1=""):
>> >   # arg1 keeps this from being expose as a web page
>> >   # instantiate Scheduler class
>> >   from gluon.scheduler.import Scheduler
>> >   scheduler = Scheduler(db)
>> >   task = scheduler.queue_task("send_nags", period = 86400, repeats=1)
>> >   # show on console, or add to log
>> >   print task
>> >   db.commit()
>> >
>> > # also add as needed
>> > def stop_tasks(arg1=""):
>> >   # arg1 keeps this from being expose as a web page
>> >   # instantiate Scheduler class
>> >   from gluon.scheduler.import Scheduler
>> >   scheduler = Scheduler(db)
>> >   task = scheduler.task_status(db.scheduler_task.task_name ==
>> > 'send_nags')
>> >   if hasattr(task, "status") and task.status in ["QUEUED", "RUNNING"]:
>> >      stop = scehduler.stop_task(task.uuid)
>> >      # show on console or add to log
>> >      print cue
>> >      db.commit()
>> >
>> >
>> >
>> >
>> > Use  these from the command line like this:
>> > web2py.py -M -S uploader/default/sched_tasks
>> > or
>> > web2py.py -M -S uploader/default/stop_tasks
>> >
>> > (and of course, you've used the -K option earlier to start the scheduler
>> > ...
>> > you can add this to the startup sequence for your webserver)
>> >
>> >  See
>> >    <URL:https://groups.google.com/d/msg/web2py/9WrqIxi75JY/UHxICIC-BQAJ>
>> > for more details.
>> >
>> >
>> > --
>> > Resources:
>> > - http://web2py.com
>> > - http://web2py.com/book (Documentation)
>> > - http://github.com/web2py/web2py (Source code)
>> > - https://code.google.com/p/web2py/issues/list (Report Issues)
>> > ---
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "web2py-users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to