رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشاهده ایمیلهای خوانده نشده GMail
#1
<!doctype html>
<html>
    <head>
        <title>Read GMail with IMAP</title>
        <meta charset="utf-8"/>
        <script src="jqmin.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('div.body').slideUp('slow');
                $('div.toggler').click(function() {
                    $(this).addClass('read').removeClass('unread');
                    $(this).next('div.body').slideToggle('slow');
                });
            });
        </script>
        <style type="text/css">
            div.toggler {
                border: 1px solid #ccc;
                cursor: pointer;
                padding: 10px 32px;
            }
            div.toggler .subject {
                font-weight: bold;
            }
            div.read {
                color: #666;
            }
            div.toggler .from, div.toggler .date {
                font-style: italic;
                font-size: 12px;
            }
            div.body {
                border: solid thin #7f7f7f;
                padding: 10px 20px;
            }
        </style>
    </head>
    <body>
<?php
    /* connect to gmail */
    $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
    $username = 'your_account@gmail.com';
    $password = 'your_password';

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

    /* grab emails */
    $emails = imap_search($inbox, 'UNSEEN');

    /* if emails are returned, cycle through each... */
    if($emails) {
      
      /* begin output var */
      $output = '';
      
      /* for every email... */
      foreach($emails as $email_number) {
        
        /* get information specific to this email */
        $overview = imap_fetch_overview($inbox, $email_number, 0);
        $message = imap_utf8(imap_fetchbody($inbox, $email_number, 2));
        
        /* output the email header information */
        $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">'.PHP_EOL;
        $output.= '<span class="subject">'.imap_utf8($overview[0]->subject).'</span>&nbsp;';
        $output.= '<span class="from">'.imap_utf8($overview[0]->from).'</span>&nbsp;';
        $output.= '<span class="date">on '.$overview[0]->date.'</span>';
        $output.= '</div>'.PHP_EOL;
        
        /* output the email body */
        $output.= '<div class="body">'.$message.'</div>'.PHP_EOL;
      }
      
      echo $output;
    } 

    /* close the connection */
    imap_close($inbox);
?>
    </body>
</html>
پاسخ
تشکر شده توسط: meysam1366 , mtcom
#2
اگر اشتباه نکنم با کتابخونه phpmailer هم میشه اینکار رو انجام داد، این کتابخونه رو پیشنهاد میکنید یا استفاده از مجموعه توابع imap که اینجا استفاده کردید و این روش شما؟
پاسخ
تشکر شده توسط:
#3
خود PHPMailer هم با POP3 کار میکنه که البته IMAP پروتکل جدیدتریه.
پاسخ
تشکر شده توسط: php , meysam1366 , mtcom
#4
سلام این کد خطا میده موقع اجرا
Fatal error: Call to undefined function imap_open()
extension imap رو هم توی php.ini فعال کردم توی xampp ولی بازم درست نشد
پاسخ
تشکر شده توسط:
#5
Apache رو هم Restart کردین؟
پاسخ
تشکر شده توسط:
#6
(06-04-1394، 11:02 ق.ظ)ADMIN نوشته: Apache رو هم Restart کردین؟

آره دوبار هم restart کردم برا خودم هم عجیبه چرا باز خطا میده !
پاسخ
تشکر شده توسط:
#7
چک کنید شاید هنوز فعال نشده. phpinfo بگیرین. اگه فعال نشده بود، DLL مناسب برای سیستم خودتون (32 یا 64 بیتی و Thread Safe یا Non Thread Sage بسته به نسخه PHP که نصب شده) رو دانلود و جایگزین DLL قبلی کنید.
پاسخ
تشکر شده توسط: mtcom




کاربران در حال بازدید این موضوع: 2 مهمان