Thanks, Jussi, for your post, but I found that PythonWin's SDK5.0 option works well with MS SDk5.1. Just had an Email read for me using a small Python program: correct English, even the date such as 12/06/06 was correctly transformed into the names of the month and year. Python is great1
Siggi "Jussi Salmela" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > Siggi kirjoitti: >> Gabriel Genellina wrote: >> >>> After you download and install version 5.1, it should appear on the >>> list. >> >> It should, but it does not! Shutting down and starting the WinXP Home >> system anew did not help. >> The SDK 5.1 installation went smoothly, however. What can I do to find >> out >> what is wrong? >> >> siggi >> > > > (Sorry for the long post!) > > > Unfortunately I can't comment on this 5.0/5.1 issue but if you look at > page > http://www.cs.unc.edu/~parente/tech/tr02.shtml > you'll find the pyTTS system. I've used it and everything works. > > The funny thing is that the page has a link named "Microsoft SAPI 5.1 > redistributable" which links to > http://www.cs.unc.edu/Research/assist/packages/SAPI5SpeechInstaller.msi > ie. a SAPI 5 installer. So I'm starting to wonder if it matters at all > whether the speech kit is a version 5 or 5.1. > > Anyway: pyTTS works with Python 2.4 as advertized in the accompanying > examples. I've used it to resolve the following dilemma: how to guarantee > that I'm aware of new mail appearing on my ISP. > > I had an unfortunate experience where a guy I was working with sent me (to > my home) mail that I didn't expect to receive just at the moment and to > which I would have liked to react immediately. Why I didn't notice the > mail coming: I was outside my house pumping more air to my wife's bicycle > tires! The mail notification was shown and erased and one more icon among > the more than dozen icons on my Windows System Tray didn't account for > much. > > So I figured out that a voice to remind me would be nice. I have a low > rate inbox, usually only a maximum of hald a dozen messages per day so I > wouldn't have to listen the voice all day long. So the voice keeps > repeating that I have new mail at my ISP until I download the mail and > otherwise keeps quiet. So here is my program and a skeleton of the INI > file it uses. The program is not finished (I have a few ideas still) but > it runs all day long on my computer keeping me happy. > > ========================== > New Email Notifier.py > ========================== > #!/usr/bin/python > > ''' > License: MIT License. See License.txt. If that file is not attached, > the license is http://www.opensource.org/licenses/mit-license.php, > where > <year> = 2006 and <copyright holders> = Jussi Salmela, Turku, Finland > ''' > > # This program checks for new email at ISP and notifies if new email is > found > > import win32serviceutil > import win32service > import win32event > import pyTTS, sys, os, poplib, logging, time > import ConfigParser,pywintypes > > print '\nThis is the New Mail Notifier window\n' > notifierDirectory = r'C:\Python\OMAT___PROJEKTIT\New Email Notifier > Service' > logging.basicConfig(level=logging.DEBUG, > format='%(asctime)s %(levelname)-8s %(message)s', > filename=notifierDirectory+r'\error.log') > logging.info('=========================================================') > logging.info('New Email Notifier Service started') > config = ConfigParser.ConfigParser() > config.readfp(open(notifierDirectory+r'\New Email Notifier.INI')) > POP3Server = config.get('POP3','server') > POP3Account = config.get('POP3','account') > POP3Password = config.get('POP3','password') > totalMessagesFormat = config.get('messages','total_message') > newMessagesFormat = config.get('messages','new_message') > wakeupMessageFormat = config.get('messages','wakeup_message') > > tts = pyTTS.Create() > #set the speech volume percentage (0-100%) > tts.Volume = 100 > #explicitly set a voice > tts.SetVoiceByName(u'MSMary') > > uidDict = {} > # We wait to be stopped and check for new email every maxTimeToWait > seconds > maxTimeToWait = 1 # First check after 1 second > while True: > time.sleep(maxTimeToWait) > maxTimeToWait = 60 # Rest of the checks after 60 second > try: > # Connect to the ISP > a = poplib.POP3(POP3Server,110) > answer = a.getwelcome() > if answer[0:3] != '+OK': > raise ValueError,'a.getwelcome returned: ' + answer > answer = a.user(POP3Account) > if answer[0:3] != '+OK': > raise ValueError,'a.user returned: ' + answer > if answer[4:] == 'Password required': > answer = a.pass_(POP3Password) > if answer[0:3] != '+OK': > raise ValueError,'a.pass_ returned: ' + answer > answer = a.uidl() > if answer[0][0:3] != '+OK': > raise ValueError,'a.uidl returned: ' + repr(answer) > a.quit() > # Connection closed. Start handling the unique message identifiers > #logging.info('Connection succesfully opened, used and closed!') > print 'answer', answer, time.asctime() > uidList = [e.split()[1] for e in answer[1]] > print 'uidList', uidList > totalMessages = len(uidList) > uidDictNew = {} > for e in uidList: uidDictNew[e] = True > uidList = [e for e in uidList if e not in uidDict] > uidDict = uidDictNew > if totalMessages: > tts.Speak(totalMessagesFormat % totalMessages) > newMessages = len(uidList) > if newMessages: > tts.Speak(newMessagesFormat % newMessages) > except Exception,inst: > errorMsg = 'Unexpected error: %s' % sys.exc_info()[0] > logging.error(errorMsg) > logging.error(inst) > try: > tts.Speak(wakeupMessageFormat) > tts.Speak('I repeat: ' + wakeupMessageFormat) > tts.Speak(errorMsg) > tts.Speak(inst) > except pywintypes.com_error,inst: > errorMsg = 'Unexpected error: %s' % sys.exc_info()[0] > logging.error(errorMsg) > logging.error(inst) > > ========================== > New Email Notifier.INI > ========================== > [POP3] > server: myPOPserver > account: myAcoount > password: myPassword > [messages] > total_message: Your eemail server has. a total of %d messages. for you to > download > new_message: The number of new messages. since the last check. is %d > wakeup_message: Wake up, Youssi! This is your new eemail notifier, > reporting the following error! > > HTH, > Jussi -- http://mail.python.org/mailman/listinfo/python-list