2012-09-25 82 views
0

我試圖複製郵件從收件箱到Gmail中的另一個文件夾使用imap_mail_copyimap_mail_copy PHP錯誤信息

我能夠連接到郵箱罰款和閱讀郵件,但沒有一個錯誤

if(!imap_mail_copy($connection,'$msg_num','[Gmail]/Starred', CP_UID)) 
     { 
      echo "Didn't move messages number: $msg_num"; 
     } 
imap_expunge($connection); 
imap_close($connection,CL_EXPUNGE); 
我動不了他們

其中$連接是流,$ msg_num從標頭($ msg_num = $報頭 - > Msgno)讀出並加星號的是文件夾

該錯誤是

PHP Notice: Unknown: IMAP protocol error: Could not parse command (errflg=2) in 

Unknown on line 0 
PHP Notice: Unknown: Could not parse command (errflg=2) in Unknown on line 0 
+0

關於此問題的另一個線索:http://stackoverflow.com/questions/6262819/imap-mail-move-imap-mail-copy-not-working。順便說一句,你有沒有試圖複製到另一個目錄?你有沒有試圖用另一個imap帳戶(不是谷歌)相同的東西? (只是想縮小你的問題:))。 – Cedric

+1

您是否準確嘗試過(沒有CP_UID,並且一次性關閉和清除?):imap_mail_copy($ mbox,'16','[Gmail]/Starred'); // 16是消息號,它也可以是一個範圍(例如: '1:15')。 imap_close($ MBOX,CL_EXPUNGE); – Cedric

+0

刪除CP_UID已經完成了技巧 - 謝謝隊友! – Franco

回答

1

如果$msg_num是你需要喂到函數的變量,則需要更改您的代碼:

if(!imap_mail_copy($connection,"$msg_num",'[Gmail]/Starred', CP_UID)) 

或:

if(!imap_mail_copy($connection,$msg_num,'[Gmail]/Starred', CP_UID)) 

或者(如果你需要將其轉換爲一個字符串):

if(!imap_mail_copy($connection, (string) $msg_num,'[Gmail]/Starred', CP_UID)) 

現在你是字面上發送字符串$msg_num

+0

好景點!改變了它,但似乎沒有解決問題。任何其他想法?謝謝! – Franco