Controllo Mail Mailinator

Stato
Discussione chiusa ad ulteriori risposte.

HackLife

Utente Silver
26 Maggio 2008
57
11
0
73
Ultima modifica:
Ciao.
Www.mailinator.com è un servizio gratuito che fornisce delle caselle e-mail create "al volo" per qualunque indirizzo vogliate. Serve fondamentalmente per registrarvi ai siti se non volete dar via il vostro indirizzo. Io lo uso spesso, e per controllare se mi sono arrivati i messaggi che aspettavo, ho scritto questa utility. Spero che per voi non sia un'inutility :p

Codice:
###MailReader###
#Author:     
#Version:    1.2
#Language: Python
#License:    CC Attribution-Share Alike
#Copyright (c) 2008
#######

import urllib
    
class MailReader:
    def SetAccount(self, accName):
        """Sets the account name"""
        self.myAcc = accName

    def CheckNew(self):
        """Controls if there are new messages
        returns the list of the messages"""
        mails = []
        site = urllib.urlopen("http://www.mailinator.com/maildir.jsp?email="
                              +self.myAcc)
        html = site.read()
        inbox = html[html.index('<table id="inboxList">')+
                     len('<table id="inboxList">'):html.index('</table>')]

        while 1:
            try:
                inbox = inbox[inbox.index('<a href=')+8:]
                mails.append(inbox[:inbox.index('>')])
                inbox = inbox[inbox.index('>'):]
            except ValueError:
                break
        mails.pop(-1)
        return mails

    def ReadMail(self, mail):
        """Returns the test message from a given mail HTTP adress"""
        mailPage = urllib.urlopen("http://www.mailinator.com"+mail)
        mail = mailPage.read()
        mail = mail[mail.index('<div id="message">')+27:]
        mail = mail[:mail.index('</p>')]
        return mail
      
         
if __name__ == "__main__":
    while 1:
        I = MailReader()
        I.SetAccount(raw_input("Your Adress: "))
        mails = I.CheckNew()
        print "You have " + str(len(mails)) + " new messages!"
        for i in mails:
            txt = I.ReadMail(i)
            ptxt = ''
            for i in txt:
                if i == '<':
                    ptxt+='\n'
                else:
                    ptxt+=i
            print ptxt
        input('')

Siete tutti invitati a ampliarlo se conoscete siti che offrono un servizio simile...
 
Utile, non conosco il python, ma vedo che non sarebbe difficile farlo in perl o altro...Comunque da ammirare sia per come è strutturato il codice ( anche io avrei fatto proprio come te ) sia per il tempo perso :D

E poi, un programma utile a differenza dei miei, tranne per il calcolo dell'md5 che mi serve U_U
 
Stato
Discussione chiusa ad ulteriori risposte.