难道这个PHP imap 连接串错了?

Is this PHP imap connection string wrong?

有人可以告诉我以下代码是否有问题吗?或者如果问题与代码无关。 我似乎无法连接到邮件服务器,并且在执行代码期间它在我的 class 文件中响应 Warning: imap_open(): Couldn't open stream {imap.one.com993}INBOX 错误。并且在之前的错误下方 Notice: Unknown: Host not found (#11001): imap.one.com993 (errflg=2) in Unknown on line 0

class email {

    public $server;
    public $username;
    public $password;
    public $port;
    public $link;
    public $status;

function connect($host, $port, $login, $pass){

        $this->server = $host;
        $this->username = $login;

        $this->link = imap_open("{". $host . $port."}INBOX", $login, $pass);
            if($this->link) {
                $this->status = 'Connected';
        } else {
            $this->error[] = imap_last_error();
            $this->status = 'Not connected';
        }
    }
}

索引文件:

<?php
    $email = new email();

    $email->connect("imap.one.com", "993", "email@address.com", "passwordString");
?

主机和端口之间需要一个冒号 (:),因为您需要 {imap.one.com:993}INBOX,而不是 {imap.one.com993}INBOX。像这样修复它:

$this->link = imap_open("{". $host . ":" . $port."}INBOX", $login, $pass);

the documentation for imap_open()

你漏掉了冒号:

imap_open("{". $host .":". $port."}INBOX", $login, $pass);

没有它,PHP 会认为主机是 "imap.one.com993",而且显然无法通过 DNS 检查。