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()










-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to