2015-09-07 3 views
0

Мне нужно проверить почту из gmail для моих тестов поведения. Я использовал этот tutorial, чтобы мои письма из Gmail с PHP:Почему я не могу прочитать почтовый ящик gmail?

set_time_limit(4000); 

// Connect to gmail 
$imapPath = '{imap.gmail.com:993/imap/ssl}INBOX'; 
$username = '[email protected]'; 
$password = 'your_gmail_password'; 

// try to connect 
$inbox = imap_open($imapPath,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); 

    /* ALL - return all messages matching the rest of the criteria 
    ANSWERED - match messages with the \\ANSWERED flag set 
    BCC "string" - match messages with "string" in the Bcc: field 
    BEFORE "date" - match messages with Date: before "date" 
    BODY "string" - match messages with "string" in the body of the message 
    CC "string" - match messages with "string" in the Cc: field 
    DELETED - match deleted messages 
    FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set 
    FROM "string" - match messages with "string" in the From: field 
    KEYWORD "string" - match messages with "string" as a keyword 
    NEW - match new messages 
    OLD - match old messages 
    ON "date" - match messages with Date: matching "date" 
    RECENT - match messages with the \\RECENT flag set 
    SEEN - match messages that have been read (the \\SEEN flag is set) 
    SINCE "date" - match messages with Date: after "date" 
    SUBJECT "string" - match messages with "string" in the Subject: 
    TEXT "string" - match messages with text "string" 
    TO "string" - match messages with "string" in the To: 
    UNANSWERED - match messages that have not been answered 
    UNDELETED - match messages that are not deleted 
    UNFLAGGED - match messages that are not flagged 
    UNKEYWORD "string" - match messages that do not have the keyword "string" 
    UNSEEN - match messages which have not been read yet*/ 

// search and get unseen emails, function will return email ids 
$emails = imap_search($inbox,'UNSEEN'); 

$output = ''; 

foreach($emails as $mail) { 
$headerInfo = imap_headerinfo($inbox,$mail); 
$output .= $headerInfo->subject.'<br/>'; 
$output .= $headerInfo->toaddress.'<br/>'; 
$output .= $headerInfo->date.'<br/>'; 
$output .= $headerInfo->fromaddress.'<br/>'; 
$output .= $headerInfo->reply_toaddress.'<br/>'; 
$emailStructure = imap_fetchstructure($inbox,$mail); 
if(!isset($emailStructure->parts)) { 
$output .= imap_body($inbox, $mail, FT_PEEK); 
} else { 
    // 
} 
    echo $output; 
    $output = ''; 
} 

// colse the connection 
imap_expunge($inbox); 
imap_close($inbox); 

Но эта ошибка встречается, все время:

«Предупреждение: imap_open() [function.imap открыть]: не мог» t открытый поток "

Я нашел this, this и this вопрос. Но все они мне не помогли.

В чем еще может быть проблема?

ответ

0

После проверки моей учетной записи я получил сообщения от GMail, что он заблокировал попытки входа в систему незащищенных соединений.

Так я понял, что вы должны позволить незащищенное соединение в настройках безопасности:

enter image description here

вуаля! Он работает, и я могу продолжить писать свое поведение.

0

перейдите в настройку почтового ящика, выберите Imap/pop transfert, включите imap, затем вы получите сообщение от gmail, подтвердите, что вы внесете это изменение, и все wil работают нормально.

Смежные вопросы