2013-03-05 84 views
0

我无法使IMAP STORE命令与Gmail配合使用。从谷歌搜索似乎还有其他人有这个问题,有些人似乎找到了一个修复,从来没有说过它是什么,有的刚刚停止。我不知道如何解决它。Gmail收件箱只读

当我连接到Gmail,我只给只读到邮箱访问

2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] C: '0003 EXAMINE INBOX' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen)' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* OK [PERMANENTFLAGS()] Flags permitted.' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* OK [UIDVALIDITY 1] UIDs valid.' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* 22 EXISTS' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* 0 RECENT' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '* OK [UIDNEXT 110] Predicted next UID.' 
2013-03-05 01:22:47-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '0003 OK [READ-ONLY] INBOX selected. (Success)' 

所以,当我选择收件箱是只读

我再后来试图删除一条消息,我得到这个错误

2013-03-05 01:43:04-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] C: '000E STORE 2 FLAGS.SILENT (\\Deleted)' 
2013-03-05 01:43:04-0500 [IMAP4Client (TLSMemoryBIOProtocol),client] S: '000E NO STORE attempt on READ-ONLY folder (Failure)' 

扭报告这个错误,在只读文件夹,因为我只给只读访问预计STORE尝试。我如何获得读写访问权限;

Traceback (most recent call last): 
Failure: twisted.mail.imap4.IMAP4Exception: STORE attempt on READ-ONLY folder (Failure) 

RFC信息 http://tools.ietf.org/html/rfc3501#section-6.3.1

If the client is permitted to modify the mailbox, the server 
    SHOULD prefix the text of the tagged OK response with the 
    "[READ-WRITE]" response code. 

    If the client is not permitted to modify the mailbox but is 
    permitted read access, the mailbox is selected as read-only, and 
    the server MUST prefix the text of the tagged OK response to 
    SELECT with the "[READ-ONLY]" response code. Read-only access 
    through SELECT differs from the EXAMINE command in that certain 
    read-only mailboxes MAY permit the change of permanent state on a 
    per-user (as opposed to global) basis. Netnews messages marked in 
    a server-based .newsrc file are an example of such per-user 
    permanent state that can be modified with read-only mailboxes. 

我知道Gmail的IMAP实现破(http://memegenerator.net/instance/35708036) 但据我可以告诉Mail.app,雷鸟等能够删除邮件等什么我失去了获得读写访问....

删除代码

def delete_data(self, data_hash): 
    if not self.hash_database.hash_in_list(data_hash): 
     print "Data hash isn't uploaded yet" 
     raise IOError("No such data hash uploaded") 

    else: 
     # delete it to prevent anyone from trying to download it while it is being deleted 
     self.hash_database.delete_hash(data_hash) 
     d = self.imap_connection.search("SUBJECT", "\"EMS Data ID: %s\"" % data_hash, uid = False) 
     d.addCallback(self.delete_message) 
     d.addErrback(self.deletion_error, data_hash) 
     return d 

def deletion_error(self, error, data_hash): 
    print "Couldn't delete message hash %s" % data_hash 
    print "========Deletion Error========" 
    log.err(error) 
    # restore hash to database 
    self.hash_database.add_hash(data_hash) 

    raise IOError("Couldn't delete message hash") 


def delete_message(self, id): 
    if len(id) == 0: 
     raise IOError("Hash not found, however database indicates it was uploaded") 
    d = self.imap_connection.setFlags(id[-1], ["\\Deleted"]) 
    d.addCallback(lambda result: self.imap_connection.expunge()) 
    return d 
+1

既然你知道一个可行的开源程序,首先检查他们的代码! – 2013-03-05 07:51:17

回答

3

您需要选择您的INBOX而不是检查它。检查是以只读方式打开邮箱的命令。

+0

哇我觉得愚蠢的猜测我的大脑看到了检查线,就像是你已经知道它是选择是..... .....谢谢 – Zimm3r 2013-03-05 22:23:25