Forum und email

imap_open

(PHP 4, PHP 5)

imap_open — 메일박스에 IMAP 스트림(stream)을 연다

Description

int imap_open ( string $mailbox , string $username , string $password [, int $flags ] )

성공하면 IMAP 스트림(stream)을 돌려주고 에러가 발생하면 FALSE를 넘겨준다. 이 함수는 POP3나 NNTP서버의 스트림(stream)을 열 때에도 사용된다. 하지만 어떤 함수나 특성은 IMAP 서버에 적용되지 않는다.

메일박스의 이름은 서버와 관련한 서버 부분과 메일박스 경로로 구성된다. 특별한 이름을 갖는 INBOX는 현재 유저의 개인 메일박스이다. 서버 부분은 '{'과 '}'로 둘려싸여지고, 서버의 이름이나 ip 주소, 프로토콜 사양('/'로 시작하는곳) 그리고 ':'로 시작하는 선택적인 포트로 구성된다. 서버 부분은 모든 메일박스의 필수 인수이다. 메일박스 이름이 출력가능한 아스키(ASCII)범위를 벗어난 국제적인 문자를 포함하면 imap_utf7_encode()함수로 인코딩되어야 한다.

옵션은 다음을 한개이상 포함하는 비트마스크(bit mask)값이다.

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Dont use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but dont open a mailbox
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close

로컬 머신의 143포트에서 서비스되고 있는 IMAP서버에 접속하려면, 다음과 같이 하시오:

$mbox = imap_open ("{localhost:143}INBOX", "user_id", "password");
로컬 머신의 110포트에서 서비스되고 있는 POP3서버에 접속하려면, 다음과 같이 하시오:
$mbox = imap_open ("{localhost/pop3:110}INBOX", "user_id", "password");
로컬 머신의 119포트에서 서비스되고 있는 NNTP서버에 접속하려면, 다음과 같이 하시오:
$nntp = imap_open ("{localhost/nntp:119}comp.test", "", "");
원격 서버에 접속하려면 "localhost"대신에 접속할 원격의서버의 서버이름 또는 아이피 주소를 쓰시오.

Example#1 imap_open() example

$mbox = imap_open ("{your.imap.host:143}", "username", "password");

echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");

if ($folders == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key, $val) = each ($folders)) {
        echo $val."<br>\n";
    }
}

echo "<p><h1>Headers in INBOX</h1>\n";
$headers = imap_headers ($mbox);

if ($headers == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key,$val) = each ($headers)) {
        echo $val."<br>\n";
    }
}

imap_close($mbox);