Python

2011-09-22 21 views
8

'daki imaplib'i kullanarak Gmail'de bir taslak ileti oluşturma Bir G-posta hesabındaki taslak iletiye veri gönderen bir python modülü yazmak istiyorum. İki hafta önce imaplib kullanarak mükemmel çalışan bir senaryo yazdım. Modülümün basitleştirilmiş bir örneği aşağıdadır. Ben modül çalıştırdığınızda O .Append işlevini kullanılmıştır, ama bugünPython

import imaplib 
import time 
conn = imaplib.IMAP4_SSL('imap.gmail.com', port = 993) 
conn.login('[email protected]', '123456aaa') 
conn.select('[Gmail]/Drafts') 
conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST") 

(. Kimsenin bu senaryoyu test etmek için bir test e-posta adresi oluşturduk) ve aşağıdaki hata üretir:

Traceback (most recent call last): 
    File "C:/Windows/System32/email_append_test.py", line 6, in <module> 
    conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST") 
    File "C:\Python26\lib\imaplib.py", line 317, in append 
    return self._simple_command(name, mailbox, flags, date_time) 
    File "C:\Python26\lib\imaplib.py", line 1060, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "C:\Python26\lib\imaplib.py", line 895, in _command_complete 
    raise self.error('%s command error: %s %s' % (name, typ, data)) 
imaplib.error: APPEND command error: BAD ['Invalid Command'] 

Daha önce de söylediğim gibi, bu modül daha önce çalıştı. Vücuttaki "Test" dizesiyle taslak mesajları başarıyla oluşturdu. Bu betiğin işe yaraması nedeniyle, Google'ın G-posta hesapları IMAP özelliklerinde yaptığı bir değişiklikle ilgisi olması daha olası görünüyor, ancak bu hata APPEND komutunda bir hata olduğunu gösteriyor. Kütüphane dosyamın bozuk olup olmadığını görmek için python betiğini iki farklı bilgisayarda test ettim, ancak aynı hata devam etti.

Ayrıca, Python 2.6 kullanıyorum. Herhangi bir yardım takdir edilir.

import email 

Sonra okumaya conn.append satırı değiştirin:: conn.append önce

cevap

6

, aşağıdakileri ekleyin Bir konu eklemek için herhangi bir yolu

conn.append("[Gmail]/Drafts", 
      '', 
      imaplib.Time2Internaldate(time.time()), 
      str(email.message_from_string('TEST'))) 
+2

var mı? –

+0

Evet var: (https://docs.python.org/3.5/library/email-examples.html adresindeki EMailMessage örneğine bakın) – thisch