连接到邮箱
要对 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";
}