连接到邮箱

要对 IMAP 帐户执行任何操作,你需要先连接到该帐户。为此,你需要指定一些必需的参数:

  • 邮件服务器的服务器名称或 IP 地址
  • 你要连接的端口
    • IMAP 是 143 或 993(安全)
    • POP 是 110 或 995(安全)
    • SMTP 是 25 或 465(安全)
    • NNTP 是 119 或 563(安全)
  • 连接标志(见下文)
标志 描述 选项 默认
/service=service 使用哪种服务 imap,pop3,nntp,smtp IMAP
/user=user 用于在服务器上登录的远程用户名
/authuser=user 远程认证用户; 如果指定,则这是使用其密码的用户名(例如,管理员)
/anonymous 作为匿名用户进行远程访问
/debug 在应用程序的调试日志中记录协议遥测
/secure 不要通过网络传输明文密码
/norsh 不要使用 rsh 或 ssh 来建立预先认证的 IMAP 会话
/ssl 使用安全套接字层加密会话
/validate-cert 来自 TLS / SSL 服务器的证书 启用
/novalidate-cert 如果服务器使用自签名证书,则不要验证来自 TLS / SSL 服务器的证书。小心使用
/tls 强制使用 start-TLS 加密会话,并拒绝与不支持它的服务器的连接
/notls 不要使用 start-TLS 来加密会话,即使是支持它的服务器也是如此
/readonly 请求只读邮箱打开(仅限 IMAP;在 NNTP 上被忽略,以及 SMTP 和 POP3 出错)

你的连接字符串将如下所示:

{imap.example.com:993/imap/tls/secure}

请注意,如果连接字符串中的任何字符是非 ASCII 字符,则必须使用 utf7_encode($ string) 进行编码。

要连接到邮箱,我们使用 imap_open 命令返回指向流的资源值:

<?php
$mailbox = imap_open("{imap.example.com:993/imap/tls/secure}", "username", "password");
if ($mailbox === false) {
    echo "Failed to connect to server";
}