Bagaimana cara mengambil Gmail di PHP IMAP?

Saya mencoba host ini:

{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX
{imap.gmail.com:993/imap/ssl}INBOX
{imap.gmail.com:993/ssl/novalidate-cert}Current Batch
{imap.gmail.com:993/ssl/novalidate-cert}
{imap.gmail.com:995/ssl/serivce=pop3}INBOX

Tak satu pun dari mereka berhasil. Apa itu host Gmail atau setelan IMAP apa?

Terima kasih!


person user3744155    schedule 05.09.2014    source sumber
comment
Sudahkah Anda memeriksa bahwa port 993 tidak di-firewall di host Anda?   -  person Max    schedule 12.10.2015


Jawaban (4)


Imap.gmail.com:993/imap/ssl}INBOX seharusnya yang benar. Bagaimana Anda menggunakan ini dalam kode php Anda? Apakah Anda hanya ingin menerima email Anda? Karena akan terlihat seperti ini:

/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'password';

/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
person Mikelo    schedule 05.09.2014
comment
Kode saya adalah: ‹?php $hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; $namapengguna = '[email protected]'; $kata sandi = 'kata sandi'; $inbox = imap_open($hostname,$username,$password) or die('Tidak dapat terhubung ke Gmail: ' . imap_last_error()); $num_msgs = imap_num_msg($kotak masuk); imap_close($kotak masuk); echo $angka_pesan; ?› Jawaban: Waktu koneksi habis. - person user3744155; 05.09.2014
comment
Apakah ada gunanya jika Anda menutup koneksi setelah Anda melakukan echo $num_msgs? - person Mikelo; 05.09.2014
comment
Tidak langsung pada intinya. Batas waktu baris $inbox untuk koneksi keluar PHP telah habis. Tidak akan mencetak $num_msgs. - person user3744155; 05.09.2014
comment
Jika Anda mendapatkan kesalahan seperti Silakan masuk melalui browser web Anda: coba 2 setp verifikasi dan kata sandi khusus aplikasi seperti yang dijawab oleh abhishek gupta stackoverflow.com/questions/35377560/ - person Sunil Kumar; 20.10.2018
comment
Pria! Anda menyelamatkan jiwa yang malang. - person peterchaula; 05.01.2021

Pengaturannya adalah sebagai berikut:

$mail = new Imap([
      'host'  => 'imap.gmail.com',
      'user'  => '[email protected]',
      'password' => 'password',
      'port'  => 993,
      'ssl'   => 'SSL',
]);

Lalu buka https://myaccount.google.com/security#connectedapps dan centang 'Izinkan lebih sedikit aplikasi aman'.

person hawx    schedule 12.10.2015

Berikut contoh kode lengkap yang menghubungkan dan mengambil email dari gmail :

/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'gmail_email_address';
$password = 'password';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
/* grab emails */
$emails = imap_search($inbox,'ALL');
/* if emails are returned, cycle through each... */
if($emails) {        
        /* begin output var */
        $output = '';        
        /* put the newest emails on top */
        rsort($emails);        
        /* for every email... */
        foreach($emails as $email_number) {                
                /* get information specific to this email */
                $overview = imap_fetch_overview($inbox,$email_number,0);
                $message = imap_fetchbody($inbox,$email_number,2);                
                /* output the email header information */
                $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
                $output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
                $output.= '<span class="from">'.$overview[0]->from.'</span>';
                $output.= '<span class="date">on '.$overview[0]->date.'</span>';
                $output.= '</div>';

                /* output the email body */
                $output.= '<div class="body">'.$message.'</div>';
        }        
        echo $output;
}
imap_close($inbox);
  • Masukkan id email dan kata sandi yang benar.
  • Anda mungkin ingin menggantinya

    $email = imap_search($kotak masuk,'SEMUA');

dengan sesuatu seperti ini untuk mempersempit hasil

$emails = imap_search($inbox,'SINCE "19 October 2018"');

atau Anda mungkin mendapatkan kesalahan batas waktu.

person Sunil Kumar    schedule 20.10.2018

Ada beberapa masalah dengan PHP IMAP dan koneksi ke gmail.

Pertama pastikan Anda telah mengaktifkan IMAP di pengaturan gmail Anda (defaultnya nonaktif!).

SSL IMAP kedua di PHP bermasalah pada beberapa versi.

Agar dapat berfungsi, pilih : {imap.gmail.com:993/ssl/novalidate-cert}

Masuk ke Akun Google Anda (kali ini bukan gmail), buka keamanan dan izinkan akses dari metode yang kurang aman (Izinkan aplikasi yang kurang aman).

Kemudian itu berhasil. Mudah-mudahan akan ada perbaikan suatu hari nanti

person C. Cobben    schedule 26.01.2019