PHP - imap_open() 函数



PHP 的 IMAP 函数帮助您访问电子邮件帐户,IMAP 代表 **I**nternet **M**ail **A**ccess **P**rotocol,使用这些函数您还可以使用 NNTP、POP3 协议和本地邮箱访问方法。

**imap_open()** 函数接受三个字符串值作为参数,分别表示邮箱名称/URL、用户名和密码,并打开到指定邮箱的流。

语法

imap_open ($mailbox, $username, $password [$options, $n_retries, $params);

参数

序号 参数及描述
1

邮箱 (必填)

这是一个字符串值,表示邮箱的名称/URL。它包含服务器名称和邮箱路径。

2

用户名 (必填)

这是一个字符串值,表示用户名。

3

密码 (必填)

这是一个字符串值,表示密码。

4

选项 (可选)

这是一个整数值,表示可选参数,可以是以下一个或多个:-

  • OP_READONLY

  • OP_ANONYMOUS

  • OP_HALFOPEN

  • CL_EXPUNGE

  • OP_DEBUG

  • OP_SHORTCACHE

  • OP_SILENT

  • OP_PROTOTYPE

  • OP_SECURE

5

重试次数 (可选)

这是一个整数值,表示最大尝试次数。

6

参数 (可选)

这是一个数组值,表示连接参数。

返回值

如果成功,此函数返回一个 IMAP 流对象;如果失败,则返回布尔值 FALSE。

PHP 版本

此函数首次引入于 PHP 4 版本,并在所有后续版本中均有效。

示例

以下是一个尝试使用 **imap_open()** 建立与特定 Gmail 帐户连接的 PHP 程序:

<html>
   <body>
      <?php
         $url = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
         $id = "[email protected]";
         $pwd = "cohondob_123";
         $mailbox = imap_open($url, $id, $pwd);
         if($mailbox){
            print("Connection established....");
         } else {
            print("Connection failed");
         }
      ?>
   </body>
</html>

输出

以上程序生成以下输出:

Connection established....

示例

以下是此函数的另一个示例,在这个示例中,我们已经连接到一个特定的邮箱并检索其中邮件的内容。

<html>
   <body>
      <?php
         //Establishing connection
         $url = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
         $id = "[email protected]";
         $pwd = "cohondob_123";
         $imap = imap_open($url, $id, $pwd);
         print("Connection established...."."<br>");
         //Searching emails
         $emailData = imap_search($imap, '');
        
         if (! empty($emailData)) {  
            foreach ($emailData as $msg) {
               $msg = imap_fetchbody($imap, $msg, "1");
               print(quoted_printable_decode($msg)."<br>");                
            }    
         } 
         //Closing the connection
         imap_close($imap);   
      ?>
   </body>
</html>

输出

以上程序生成以下输出:

Connection established....
This is a test mail #1.
--0000000000001bf26805af905277 Content-Type: text/plain; charset="UTF-8" test 
mail #2 --0000000000001bf26805af905277 Content-Type: text/html; charset="UTF-8" 
Content-Transfer-Encoding: quoted-printable

test mail #2
--0000000000001bf26805af905277--
test mail #3
test mail #4

示例

以下是带可选参数的此函数示例。

<html>
   <body>
      <?php
         //Establishing the connection
         $url = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
         $id = "[email protected]";
         $pwd = "cohondob_123";
         
         //Optional parameters
         $options = OP_READONLY;
         $retries = 10;
		 
         $mailbox = imap_open($url, $id, $pwd, $options, $retries);
         if($mailbox){
            print("Connection established....");
         } else {
            print("Connection failed");
         }
      ?>
   </body>
</html>

以上程序生成以下输出:

Connection established....
php_function_reference.htm
广告