IMAP, POP3 및 NNTP imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_open — 사서함에 대한 IMAP 스트림 열기


설명

imap_open(
    string $mailbox,
    string $user,
    string $password,
    int $flags = 0,
    int $retries = 0,
    array $options = []
): IMAP\Connection|false
                

mailbox에 대한 IMAP 스트림을 엽니다.

이 함수는 POP3NNTP 서버에 대한 스트림을 여는 데에도 사용할 수 있지만 일부 함수와 기능은 IMAP 서버에서만 사용할 수 있습니다.


매개변수

mailbox
사서함 이름은 서버와 이 서버의 사서함 경로로 구성됩니다. 특수 이름 INBOX는 현재 사용자의 개인 사서함을 나타냅니다. 인쇄 가능한 ASCII 공간에 있는 것 외에 국제 문자를 포함하는 사서함 이름은 imap_utf7_encode()로 인코딩해야 합니다.

경고 imap.enable_insecure_rsh가 비활성화되지 않는 한 신뢰할 수 없는 데이터를 이 매개변수에 전달하는 것은 안전하지 않습니다.

'{' 및 '}'로 묶인 서버 부분은 서버 이름 또는 IP 주소, 선택적 포트(접두사 ':') 및 선택적 프로토콜 사양(접두사 '/')으로 구성됩니다.

서버 부분은 모든 사서함 매개변수에서 필수입니다.

{로 시작하는 모든 이름은 원격 이름이며 "{" remote_system_name [":" port] [flags] "}" [mailbox_name] 형식입니다. 여기서:

  • remote_system_name - 인터넷 도메인 이름 또는 대괄호로 묶인 서버의 IP 주소.
  • port - 선택적 TCP 포트 번호, 기본값은 해당 서비스의 기본 포트입니다.
  • flags - 선택적 플래그는 다음 표를 참조하십시오.
  • mailbox_name - remote mailbox name, default is INBOX

Optional flags for names

Flag 설명
/service=service mailbox access service, default is "imap"
/user=user remote user name for login on the server
/authuser=user remote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymous remote access as anonymous user
/debug record protocol telemetry in application's debug log
/secure do not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 equivalent to /service=imap
/pop3 equivalent to /service=pop3
/nntp equivalent to /service=nntp
/norsh do not use rsh or ssh to establish a preauthenticated IMAP session
/ssl use the Secure Socket Layer to encrypt the session
/validate-cert validate certificates from TLS/SSL server (this is the default behavior)
/novalidate-cert do not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tls force use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notls do not do start-TLS to encrypt the session, even with servers that support it
/readonly request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)
user
사용자 이름
password
user와 연결된 비밀번호
flags
flags는 다음 중 하나 이상이 포함된 비트 마스크입니다.
  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())
  • OP_DEBUG - Debug protocol negotiations
  • OP_SHORTCACHE - Short (elt-only) caching
  • OP_SILENT - Don't pass up events (internal use)
  • OP_PROTOTYPE - Return driver prototype
  • OP_SECURE - Don't do non-secure authentication
retries
최대 연결 시도 횟수
options
연결 매개변수, 다음(문자열) 키를 사용하여 하나 이상의 연결 매개변수를 설정할 수 있습니다.
  • DISABLE_AUTHENTICATOR - 인증 속성 비활성화

반환 값

성공하면 IMAP\Connection 인스턴스를 반환하고 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.1.0 imap 매개변수는 이제 IMAP\Connection 인스턴스를 필요로 합니다. 이전에는 리소스가 필요했습니다.

Examples

예제 #1 Different use of imap_open()

                  
<?php
// To connect to an IMAP server running on port 143 on the local machine,
// do the following:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// To connect to a POP3 server on port 110 on the local server, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server, add /ssl after the protocol
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
// add /ssl/novalidate-cert after the protocol specification:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// To connect to an NNTP server on port 119 on the local server, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// To connect to a remote server replace "localhost" with the name or the
// IP address of the server you want to connect to.
?>
                  
                

예제 #2 imap_open() 예

                  
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

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

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

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

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>
                  
                

기타