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
This has worked for me after a long effort:
$ServerName = "{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox";
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.
I am Arvind Gondaliya, You are right but if Less secure area off then to get gmail mail.
First, enable less secure apps in your Gmail account: https://myaccount.google.com/lesssecureapps
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.
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. :)
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.