0

我不是程序员,所以请多多包涵。对不起,如果这是愚蠢的。

我可以在我的网站上创建和使用php scripts没问题。在过去的几天里,我一直在想办法以编程方式检查我的电子邮件。最常见的解决方案似乎涉及使用 imap_open 进行连接。这是一行代码的示例:

$mail = imap_open("{mymailserver:110}INBOX", "myname@mydomain.com", "mypassword");

显然,我的邮件服务器、用户名和密码位于引号之间。就在第一行,页面挂起并最终给出 504 Gateway Time-out 错误。

Thunderbird 可以使用相同的邮件服务器、端口、名称和密码连接到我的电子邮件。如果我从 gmail 帐户插入信息,它仍然会挂起并超时。当我运行 phpinfo 时,它说明了有关启用 imap 的信息(抱歉,如果这不相关,我不确定)。

托管我的网站的 Network Solutions 告诉我,我不应该使用脚本连接到电子邮件,但如果我付费他们会调查的。任何帮助将不胜感激,因为我已经尝试了 20 小时。谢谢。

4

1 回答 1

0

端口 110 用于 POP3。我建议您尝试通过端口 143 (IMAP) 连接

请尝试使用以下代码进行测试(用您的邮件服务器替换 imap.example.com,例如 mail.test.com):

注意:对于用户名,在您的情况下,它可能是您的电子邮件地址 (xxxx@xxxx.com)

<?php

ini_set('max_execution_time', 300); //300 seconds = 5 minutes 


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

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.com: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);
?>
于 2021-01-20T08:17:12.397 回答