Profilo di LaPa

Nome LaPa
Indirizzo email n/a
Messaggi4
  • [Python] [Problema] imapclient sintassi di metodo serch()
    Forum >> Programmazione Python >> Web e Reti
    Buona sera a tutti!

    sto usando con Python 2.7 il modulo imapclient. Il mio scopo è questo: Se ricevo un messaggio con un determinato oggetto invio in automatico una mail a chi me lo ha inviato (ad esempio: oggetto della mail "info", allora invio una mail con informazioni.

    Riesco a collegarmi al server

    ma in questo punto






    UIDs = server.search(['SUBJECT Info'])
    print UIDs











    la shell risponde:






    Traceback (most recent call last):
    File "/mnt/usbhd/RPIProject/Prove/ReportOnRequest.py", line 291, in <module>
    UIDs = server.search(['SUBJECT Info'])
    File "/usr/local/lib/python2.7/dist-packages/imapclient/imapclient.py", line 956, in search
    return self._search(criteria, charset)
    File "/usr/local/lib/python2.7/dist-packages/imapclient/imapclient.py", line 995, in _search
    criteria='"%s"' % criteria if not isinstance(criteria, list) else criteria
    InvalidCriteriaError: 'Could not parse command'

    This error may have been caused by a syntax error in the criteria: ['SUBJECT Info']
    Please refer to the documentation for more information about search criteria syntax..
    https://imapclient.readthedocs.io/en/master/#imapclient.IMAPClient.search
    >>>




    Sapreste dirmi come eliminare il problema?


    grazie per l'attenzione

    Saluti

    LaPa




  • Re: [risolto] non riesco a inviare file su Altervista con ftplib
    Forum >> Principianti
    Forse questa volta è veramente tutto chiaro!




    Dopo alcune prove ho capito di più riguardo all'errore che facevo




    Questo è il pezzo di codice che mi dava errore quando non mi funzionava.




    session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024)





    Dopo "STOR ", se non ho capito male, si indica come deve essere nominato il file su Altervista. Dunque se vogliamo nominarlo con un nome tipo Test.txt allora semplicemente scriveremo

    "STOR Test.txt"


    al posto di




    "STOR " +nomefile





    Se invece il nome del file che deve apparire su Altervista è una variabile, allora va bene quella sintassi

    "STOR " +nomefile
    .




    Il mio codice non funzionava perché indicavo con un' unica variabile (nomefile) 2 cose diverse:

    1) dove è posizionato nel computer e come si chiama il file che si deve spostare su Altervista

    2) come deve essere nominato il file una volta inviato su Altervista e siccome nomefile era una variabile che conteneva oltre al nome del file anche l'indirizzo assoluto allora mi dava errore.




    Pertanto se il voglio spostare il file che sta in home/pi e si chiama test.txt e voglio che questo venga rinominato con una variabile e non con un nome fisso devo creare 2 variabili, ad esempio: nomefile che indica il file da spostare e nomefile1 che rinomina il file su altervista. In quel caso il codice sarà:

    import os
    import ftplib
    session=ftplib.FTP('rpiplant.altervista.org', 'rpiplant','********')
    nomefile="home/pi/test.txt"
    nomefile1="test2.txt"
    
    session.storbinary("STOR " + nomefile1, open (nomefile, "rb"), 1024)
    
    session.quit()






    Funziona!!!

    Capire bene l'errore è stata una soddisfazione!!!

    LaPa


    --- Ultima modifica di LaPa in data 2018-11-17 23:28:51 ---
  • Re: [problema] non riesco a inviare file su Altervista con ftplib
    Forum >> Principianti
    Carissimi dopo tanto peregrinare ho trovato la risposta: facevo un errore di sintassi. Dopo STOR non dovevo concatenare, pertanto la sintassi corretta è:







    import os
    import ftplib
    
    session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********')
    
    
    nomefile="/home/pi/test.txt"
    
    session.storbinary("STOR   nomefile", open (nomefile, "rb"), 1024)



    In questa maniera mi ritrovo il file test.txt col nome nomefile su altervista.

    se voglio chiamarlo test.txt la sintassi diventa:




    import os
    import ftplib
    
    session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********')
    
    
    nomefile="/home/pi/test.txt"
    
    session.storbinary("STOR   test.txt", open (nomefile, "rb"), 1024)
    


    Saluti

    LaPa

    --- Ultima modifica di LaPa in data 2018-11-16 15:58:23 ---

    --- Ultima modifica di LaPa in data 2018-11-16 16:00:07 ---
  • [risolto] non riesco a inviare file su Altervista con ftplib
    Forum >> Principianti
    Salve a tutti.

    non riesco ad inviare un file di testo (creato per prova) via ftplib su un sito di altervista.

    il codice usato è il seguente:



    import os
    import ftplib

    session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********')


    nomefile="/home/pi/test.txt"

    session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024)

    Copy






    L'errore è



    Traceback (most recent call last):
    File "/mnt/usbhd/prove/ProvaFTP.py", line 58, in <module>
    session.storbinary("STOR " + nomefile, open (nomefile, "rb"), 1024)
    File "/usr/lib/python3.4/ftplib.py", line 503, in storbinary
    with self.transfercmd(cmd, rest) as conn:
    File "/usr/lib/python3.4/ftplib.py", line 398, in transfercmd
    return self.ntransfercmd(cmd, rest)0
    File "/usr/lib/python3.4/ftplib.py", line 364, in ntransfercmd
    resp = self.sendcmd(cmd)
    File "/usr/lib/python3.4/ftplib.py", line 272, in sendcmd
    return self.getresp()
    File "/usr/lib/python3.4/ftplib.py", line 245, in getresp
    raise error_perm(resp)
    ftplib.error_perm: 553 Impossibile aprire quel file: File o directory non esistente

    Copy




    Ho controllato e il file è nella posizione giusta e possiede tutti i permessi: "-RWXRWXRWX"

    con un file di bash riesco a mandare il file con il seguente codice:


    #!/bin/bash
    /usr/bin/ftp -inv rpiplant.altervista.org <<ENDFTP


    user rpiplant *********

    bin

    #provo a inviare un file di testo in pi/home
    lcd /home/pi
    put test.txt test1.txt



    ho provato anche a sostituire session=ftplib.FTP('rpiplant.altervista.org','rpiplant','**********') con session=ftplib.FTP('ftp://rpiplant.altervista.org','rpiplant','**********')

    e mi dà il seguente errore:


    Traceback (most recent call last):
    File "/mnt/usbhd/prove/ProvaFTP.py", line 51, in <module>
    session=ftplib.FTP('ftp://rpiplant.altervista.org','rpiplant','aPQq7jNJpWzS')
    File "/usr/lib/python2.7/ftplib.py", line 120, in __init__
    self.connect(host)
    File "/usr/lib/python2.7/ftplib.py", line 135, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
    File "/usr/lib/python2.7/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
    gaierror: [Errno -2] Name or service not known




    Dove sbaglio?

    Grazie per l'attenzione

    Un saluto

    LaPa

    --- Ultima modifica di LaPa in data 2018-11-15 23:12:56 ---