Kodu kullanarak IMAP üzerinden Gmail'de mesajlar etiketleri takılması

3 Cevap php

Gmail etiketleri ile ilgili - ne teknik konuşuyorlar. Ancak ben bir etiket oluşturmak ve bunları kod kullanılarak ben döngü gibi e-postalara takmak isteyen diyelim imap bağlantısı aracılığıyla bir gmail posta kutusuna erişebilir ve e-posta yoluyla gitmek demek - Ben nasıl yapabilirim kodu? Ben php kullanıyorum - ve Zend Framework.

EDIT ===

Cevaplar için teşekkürler etiketler bu konuda klasörler gibi muamele edilir ki onun artık açıkça bu yüzden ancak ben ilginç sonuçlar Zend_Mail_Storage_Imap sınıf fonksiyonları denedim. Ben Zend_Mail_Storage_Imap deneyin: moveMessage fonksiyonu - o her yerde gelen mesajı kaldırır ve tam anlamıyla ben o gelen kutusunu oluşturan kaldırır ve etiket foo iliştirir benim mesajı bir etiket foo eklemek istiyorsanız anlam buna bir etiket takılır. Ancak ben hile yapar Zend_Mail_Storage_Imap :: copyMessage kullanırsanız.

Ancak bu tam anlamıyla mesajın bir kopyasını yapmak ve burada birden fazla yinelenen ileti ile bitmiyor ki burada merak ediyorum?

Ayrıca ne ben belli bir etiket veya belirli bir klasör içinde bu durumda bağlı tüm mesajları seçmek gerekirse?

3 Cevap

Re: Gmail etiketleri ilgilendiren - Onlar teknik ne konuşuyorlar.

IMAP "etiket" kavramını yok çünkü, bir eşleme olup, daha fazla veya daha az, GMail "etiket" ve IMAP "klasörler" arasındaki Here ben onu buldum en iyi doktor olduğunu. Ama gerçekten GMail ile benim program IMAP etkileşim yaratarak bana yardımcı deney oldu.

Örneğin, önceden ayarlı etiketler IMAP klasör isimleri arasında var

Human name -- IMAP Folder name
Drafts -- [Gmail]/Drafts
Sent Mail -- [Gmail]/Sent Mail
Spam -- [Gmail]/Spam
Starred -- [Gmail]/Starred
Trash -- [Gmail]/Trash

Eklenenler -

Re: create a label and attach it to the emails as I loop through them using code - how can I do that in code?

Bir etiket oluşturmak IMAP kullanmak operasyonu 'klasörü oluşturmak' için.

Bir mesaja etiket eklemek için Imap kopyalama işlemini kullanın.

GMail Gelen Kutusu'ndan mesajı kaldırmak için, sana 'Silindi' IMAP Bayrağını eklemek% 90 emin değilim. - Ama önce bu denemeler lütfen. Bu silinen bayrağını ayarladığınızda etiket (ler) kaldırılır bana hangi açık değildir. Ben silinen bayrağını uygulandığında benim testlerde, mesaj sadece 1 etiketi (Inbox) vardı.

Burada Çöp klasörüne Gelen Kutusu'ndan bir GMail mesaj taşımak için kullanabileceğiniz kodu:

# Ruby code...
imap.store(message_id, "+FLAGS", [:Deleted]) # rm inbox label
imap.copy(message_id, "[Gmail]/Trash")       # add trash label

PHP için denedim imap_mail_move? Var

http://ro.php.net/manual/en/function.imap-mail-move.php

Gmail ileti bazında etiket depolama destekler:

a011 STORE 1 +X-GM-LABELS (foo)
* 1 FETCH (X-GM-LABELS (\Inbox \Sent Important "Muy Importante" foo))
a011 OK STORE (Success)

Kendi API Araçları sitesinden: http://code.google.com/apis/gmail/imap/#x-gm-labels