Загрузка электронной почты через IMAP в приложение rails

Я загружаю электронную почту в свое приложение через imap с помощью Net:: IMAP и копирую почту в папку «Вся почта», а затем помечаю ее в папке «Входящие» как удаленную.

Затем это позволяет создавать резервные копии всех электронных писем для пользователя в папке «Все электронные письма», и мое приложение извлекает только электронные письма из папки «Входящие», не помеченные как удаленные.

Это отлично работает для gmail, но я пытаюсь сделать это для веб-почты орды.

Я успешно загружаю электронные письма, но не могу пометить их как удаленные и скопировать в другую папку.

Вот мой код для этого в gmail:

imap.uid_copy(uid, "[Gmail]/All Mail")
imap.uid_store(uid, "+FLAGS", [:Deleted])

Кто-нибудь поможет с этим? На что следует изменить «[Gmail]/Вся почта») для веб-почты орды? Отличается ли это для всей электронной почты, такой как hotmail/yahoo и т. д.?

Любая помощь в этом была бы отличной. Благодарность

Рик


person rick    schedule 08.05.2011    source источник
comment
Веб-почта Horde не имеет архивной папки по умолчанию, поэтому вам, вероятно, следует создать ее при первой попытке заархивировать электронную почту, а затем скопировать туда все остальное. Код для удаления электронной почты должен быть в порядке. Получаете ли вы какие-либо ошибки сервера IMAP?   -  person eugen    schedule 09.05.2011
comment
привет Евгений спасибо за вашу помощь до сих пор. Я получаю сообщение об отказе в доступе при попытке создать почтовый ящик?   -  person rick    schedule 09.05.2011
comment
Вам не будет разрешено создавать новый почтовый ящик, но должна быть разрешена новая почтовая папка. Можете ли вы опубликовать точный код, который вы используете, и точное сообщение об ошибке, которое вы получаете?   -  person eugen    schedule 10.05.2011
comment
@eugen это мой код begin # создайте почтовый ящик, если он еще не существует imap.create('mailbox') else imap.list('', 'mailbox') save Net::IMAP::NoResponseError =› error ставит Error- --: #{error.message} конец   -  person rick    schedule 11.05.2011
comment
и ошибка, которую я получаю, просто запрещена! Любые идеи ?? большое спасибо   -  person rick    schedule 11.05.2011


Ответы (1)


Вы можете попробовать это?

      connection.store( uid , "+FLAGS", [:DELETED]) 
      ...
      connection.expunge()

например «store» вместо «uid_store»?

Я не использую Horde, но приведенная выше строка работает у меня на нескольких серверах IMAP.

Также убедитесь, что вы вызываете connection.expunge для почтового ящика, где вы пометили сообщения для удаления..!

например посмотрите на net/imap API для #expunge: http://www.ruby-doc.org/stdlib/libdoc/net/imap/rdoc/classes/Net/IMAP.html#M001441

person Tilo    schedule 02.06.2011