Il giorno martedì 20 febbraio 2018 23:42:27 UTC+1, Maroso Marco ha scritto: > Hi everyone, i need this program to run as a service. > > This program basically check an email account (gmail) and looks if there is > mail from a specific email account, then reads the subject line and splits > the text found assigning the left part (before the ; ) to the password, and > the right part to the comand to be executed. > It should loop continuosly waiting a specific time given in a file called > timing.ini (seconds) > > My program seems to have a problem and i don't understand which! Firstly it > worked and now just went to run it again and it doesnt. I have different > versions of python installed on my pc. > > Can someone please tell me how to transform it in a service to run on Windows? > > I found some solutions but i don't understand how to implement it correctly > This is my code, any help is really apreciated, i'm loosing my nights on this > and can't get it working. > > > > > import imaplib > import os > import email > import email.header > import time > import subprocess > > def mailcontroller(): > > # Set user, pass and allowed mail for giving commands > plusmail = "anemailaddr...@gmail.com" > googlepass = "thepassword" > captain = "autorizedemailacco...@gmail.com" > > # Set vars for IMAP access > M = imaplib.IMAP4_SSL('imap.gmail.com') > M.login(plusmail, googlepass) > M.select() > > # Set search on UNSEEN messages > status, response = M.search(None, '(UNSEEN)') > unread_msg_nums = response[0].split() > > > # Mark as read > for e_id in unread_msg_nums: > M.store(e_id, '+FLAGS', '\Seen') > > # cycle messages sent from autorized email address > typ, data = M.search(None, 'From',(captain)) > > for num in data[0].split(): > typ, data = M.fetch(num, '(RFC822)') > msg = email.message_from_string(data[0][1]) > decode = email.header.decode_header(msg['Subject'])[0] > subject = unicode(decode[0]) > comando = subject > > if googlepass in subject: > > # print 'Message %s: %s' % (num, subject) > # Split subject line > googlepass,comando = subject.split(";") > # Execute command > #os.system(comando) > # Execute command with alternate method > subprocess.call(comando) > # Delete email > M.store(num, '+FLAGS', '\\Deleted') > > M.close() > M.logout() > > # Read ini file for timer settings > timing = open('timing.ini', 'r').read() > # Convert timer value from string to int > time.sleep(int(timing)) > > while True: > mailcontroller()
I would like to implement my code in something like this described here : http://www.chrisumbel.com/article/windows_services_in_python -- https://mail.python.org/mailman/listinfo/python-list