
Αντιμετωπίζω ένα πρόβλημα με τη χρήση imaplib σε python 2.6 με την τελευταία svn Django. Θέλω να κατεβάσετε τα μηνύματα ηλεκτρονικού ταχυδρομείου IMAP σε μια ουρά (χρησιμοποιώντας celeryd). Είμαι σε θέση να συνδεθούν / λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη γραμμή εντολών, αλλά όταν απαλλαγούν από την εργασία μέσω Django να celeryd παίρνω αυτό το σφάλμα: «SSLError: [ErrNo 1] \_ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3\_GET\_RECORD : λάθος αριθμό έκδοσης».


Imaplib έγγραφα δεν αναφέρουν πώς να καθορίσετε μια έκδοση του SSL. Προσπαθώ να τραβήξει τα μηνύματα από το Gmail. Δεν καταλαβαίνω γιατί εκφόρτωση το έργο σε μια ουρά με τη χρήση celeryd θα προκαλέσει το έργο να αποτύχει. Οποιαδήποτε βοήθεια θα εκτιμηθεί πολύ.


Επεξεργασία: εδώ είναι μια στοίβα ίχνος:


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 643, σε επιλεγμένα τυπ, dat = self.\_simple\_command (όνομα, ταχυδρομική θυρίδα)


Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 1059, σε \_simple\_command self.\_command\_complete επιστροφής (όνομα, self.\_command (όνομα, * args))


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 889, σε \_command\_complete τυπ, δεδομένα = self.\_get\_tagged\_response (tag)


Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 990, στο \_get\_tagged\_response self.\_get\_response ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 907, σε \_get\_response resp = self.\_get\_line ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1000, σε \_get\_line γραμμή = self.readline ()


Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1170, σε readline char = self.sslobj.read (1)


Φάκελος /usr/lib/python2.6/ssl.py, γραμμή 136, στο self.\_sslobj.read επιστροφή ανάγνωσης (LEN)


SSLError: [ErrNo 1] \_ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3\_GET\_RECORD: Αριθμός λάθος έκδοση


Επεξεργασία: Εδώ είναι το έργο προσπαθώ να τρέξει, όπου imap\_parser είναι μια μονάδα που αναδιπλώνεται imaplib και τα φορτία e-mail σε db μου.



```
class DumpIMAPData(Task):
    def run(self, user, username, password, imap_address, **kwargs):
        logger = self.get_logger(**kwargs)
        celery.log.redirect_stdouts_to_logger(logger, loglevel=None)
        #imap_address is e.g. 'imap.gmail.com'                                  
        parser = imap_parser.IMAPFetcher(imap_address, username, password, user\
)
        parser.load_all_emails()
    return True

```

Έχω παρατηρήσει το έργο θα εκτελεστεί στην πραγματικότητα χρησιμοποιώντας το σέλινο αν δεν daemonize την εργασία χρησιμοποιώντας το --detach σημαία. Δεν ξέρω γιατί το έργο θα αποτύχει μόνο όταν λειτουργεί ως δαίμονας. Έχω δοκιμάσει τη ρύθμιση το ίδιο όνομα χρήστη και groupid με το -u και -g σημαίες, την ίδια umask, και εξασφαλίζοντας τη διαδρομή και κατάλογοι εργασίας είναι οι ίδιες τόσο για τον δαίμονα και να μη daemonized έκδοση, αλλά το έργο ακόμα δεν θα τρέξει το σέλινο, όταν σέλινο λειτουργεί ως ένα δαίμονα.


I m χρησιμοποιώντας την πιο πρόσφατη έκδοση του σέλινου (0.9.4). 

 
Προέκυψε σφάλμα SSL πύθωνα imaplib χρησιμοποιώντας celeryd ουρά
===============================================================



Σύμφωνα με τον δημιουργό του celeryd:


Το σέλινο δεν κάνει τη δική αποκόλληση του από 01a8a0e. Υπήρξε πάρα πολλά προβλήματα με αυτό, και δεδομένου ότι λειτουργεί κατά την αποσύνδεση χρησιμοποιώντας start-stop-daemon, supervisord, launchd και ούτω καθεξής, θα ενθαρρύνονται να χρησιμοποιούν αυτά τα εργαλεία αντ 'αυτού.

 

Είσαι σύνδεση σε μια θύρα που δεν μιλάει TLS. Προσπαθείτε να μιλήσετε με έναν ενεργοποιημένο / SSL διακομιστή αλληλογραφίας TLS, ή σέλινο προσπαθεί να χρησιμοποιήσει το TLS για τη σύνδεση AMQP της;

 

Αν σπάει μόνο όταν τρέχουν στο εσωτερικό του εργαζομένου σέλινο, θα μπορούσε να υπάρχει κάτι με amqplib (που χρησιμοποιεί την μονάδα SSL) ή θα μπορούσε να είναι κάτι με πολυεπεξεργασία και forking (μια καθολική μεταβλητή που προετοιμάστηκε πριν το πιρούνι που δεν είναι πλέον εν ζωή)


Θα μπορούσατε σας παρακαλώ να περιλαμβάνουν την εργασία που προσπαθείτε να εκτελέσετε; Έχετε συνδεθεί με τον server μέσα στο ίδιο το έργο, ή μήπως είναι κάποιο είδος κοινής αντικειμένου;

 