imap 卷曲 php
imap with curl on php
我创建了一个非常简单的函数:
function send($command) {
$url = 'imaps://myImapServer';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PORT, 993);
curl_setopt($ch, CURLOPT_USERNAME, "MyUsername");
curl_setopt($ch, CURLOPT_PASSWORD, "MyPassword");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $command);
$res = curl_exec($ch);
return $res;
}
我可以用它来查询文件夹,例如,我所有邮件的 UID:
echo send('UID SEARCH ALL');
# Output: * SEARCH 63 64 65 66
但是有两个问题我没有找到解决方案。
如何从我的输出中创建数组 HTML 正文、正文、回复...?
为什么我用下面的查询得到了主题的长度,但是没有显示主题本身?
回显发送('UID FETCH 63 BODY[HEADER.FIELDS (SUBJECT)]');
输出:* 1 FETCH (UID 63 BODY[HEADER.FIELDS (SUBJECT)] {29}
您可以尝试使用 CURLOPT_WRITEFUNCTION
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $chunk) {
//your imap handling here
return strlen($chunk);
});
或者如果您在 class https://www.php.net/manual/en/function.curl-setopt.php#98491
curl_setopt($this->curl_handle,
CURLOPT_WRITEFUNCTION,
array($this, "class_method_name"));
CURLOPT_WRITEFUNCTION 不断监听您的“中断”输入,将其接收到的块输入回调函数。
您可以使用回调函数连接数据,将其全部推送到一个数组中,或者只在收到数据时对其进行处理,具体取决于您的用例。
我创建了一个非常简单的函数:
function send($command) {
$url = 'imaps://myImapServer';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PORT, 993);
curl_setopt($ch, CURLOPT_USERNAME, "MyUsername");
curl_setopt($ch, CURLOPT_PASSWORD, "MyPassword");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $command);
$res = curl_exec($ch);
return $res;
}
我可以用它来查询文件夹,例如,我所有邮件的 UID:
echo send('UID SEARCH ALL');
# Output: * SEARCH 63 64 65 66
但是有两个问题我没有找到解决方案。
如何从我的输出中创建数组 HTML 正文、正文、回复...?
为什么我用下面的查询得到了主题的长度,但是没有显示主题本身?
回显发送('UID FETCH 63 BODY[HEADER.FIELDS (SUBJECT)]'); 输出:* 1 FETCH (UID 63 BODY[HEADER.FIELDS (SUBJECT)] {29}
您可以尝试使用 CURLOPT_WRITEFUNCTION
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $chunk) {
//your imap handling here
return strlen($chunk);
});
或者如果您在 class https://www.php.net/manual/en/function.curl-setopt.php#98491
curl_setopt($this->curl_handle,
CURLOPT_WRITEFUNCTION,
array($this, "class_method_name"));
CURLOPT_WRITEFUNCTION 不断监听您的“中断”输入,将其接收到的块输入回调函数。
您可以使用回调函数连接数据,将其全部推送到一个数组中,或者只在收到数据时对其进行处理,具体取决于您的用例。