2013-01-07 19 views
1

我想用PHP的IMAP函數s.th將消息移動到新文件夾後將其標記爲不可見。像:imap_mail_move之後的消息ID

$uioTmp = imap_uid($mailbox, $msgNumber); 
imap_mail_move($mailbox, $msgNumber, "INBOX.undetected"); 
imap_clearflag_full($mailbox, $uidTmp, "\\Seen", ST_UID); 

因爲PHP的imap_mail_move並沒有真正將郵件(而不是拷貝的消息,比刪除舊的),新的消息會得到一個新的消息ID,我認爲。

有沒有辦法獲得消息ID或正確的UIO複製的消息?

+0

你爲什麼不將其標記爲看不見你移動它之前?舊郵件將被標記爲已刪除,所以這不應該造成任何負擔。否則,您可以在創建副本後將舊郵件標記爲已見。不是最直接的,但應該工作。 – hakre

+0

謝謝千次!我以爲我之前嘗試過沒有成功,但現在我再次嘗試它,它工作(不知道我以前做錯了什麼)!再次感謝您,現在解決了問題。 – trickreich

+0

只是爲了幫助opthers,我的代碼現在看起來像這樣: 'imap_clearflag_full($ mailbox,imap_uid($ mailbox,$ msgNumber),「\\ Seen」,ST_UID); imap_mail_move($ mailbox,$ msgNumber,「INBOX.undetected」);' – trickreich

回答

0

的解決方法是首先將其標記爲不可見,然後將其移動到文件夾:

imap_clearflag_full($mailbox, imap_uid($mailbox, $msgNumber), "\\Seen", ST_UID); 
imap_mail_move($mailbox, $msgNumber, "INBOX.undetected"); 
相關問題