Connecting to Gmail through IMAP with PHP - SSL context failed

前端 未结 10 1870
野的像风
野的像风 2020-12-13 14:37

I\'m trying to connect to Gmail through IMAP with PHP running in Apache. This is on an Ubuntu 9.04 system. I\'ve got some sort of PHP configuration issue that is keeping t

相关标签:
10条回答
  • 2020-12-13 15:11

    This has worked for me after a long effort:

    $ServerName = "{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox";
    
    0 讨论(0)
  • 2020-12-13 15:11

    Run your code from the command line and see if php spits our any other errors:

    php -f gmail.php
    

    On my Ubuntu I did:

    sudo apt-get install php-imap
    

    to install imap on php and the system installed: libc-client2007b mlock libc-client2007b mlock php-imap

    Then how about uninstalling php5 and re-installing cleanly.

    0 讨论(0)
  • 2020-12-13 15:14

    I am Arvind Gondaliya, You are right but if Less secure area off then to get gmail mail.

    0 讨论(0)
  • 2020-12-13 15:18
    1. First, enable less secure apps in your Gmail account: https://myaccount.google.com/lesssecureapps

    2. Use this configuration to create IMAP connection:

      $imap_connection = imap_open('{imap.gmail.com:993/imap/ssl/novalidate-
      cert}INBOX', 'YOUR GMAIL USER', 'YOUR GMAIL PASSWORD');
      

    Note: INBOX is your main imbox, for example you can acces to sent items with: INBOX.Sent in your connection.

    0 讨论(0)
  • 2020-12-13 15:22

    I was facing same problem. I am using windows and wamp and my wamp "openSSl" extension is enabled.

    I removed this issue by using following steps.I hope this will work for you too.

    1) Logged in via browser to gmail account.

    2) Open this url "https://www.google.com/settings/security/lesssecureapps"

    3) Click at "turn on"

    4) try following code

    <?php
    
    set_time_limit(4000);
    
    
    // Connect to gmail
    //$imapPath = '{imap.gmail.com:993/imap/ssl}INBOX';
    $imapPath = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
    $username = 'your-emai-address@gmail.com';
    $password = 'Your-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);
        //var_dump($emailStructure->parts);
        if(isset($emailStructure->parts)) {
             $output .= imap_body($inbox, $mail, FT_PEEK);
        } else {
            //    
        }
       echo $output;
       $output = '';
    }
    
    // colse the connection
    imap_expunge($inbox);
    imap_close($inbox);
    
    
    ?>
    

    BEST OF LUCK. :)

    0 讨论(0)
  • 2020-12-13 15:23

    had the same problem with personal domain on google apps. Problem was solved by changing application access to account. Simply follow by link and turn ON access to account.

    0 讨论(0)
提交回复
热议问题