如果您在从源代码编译 netbsd 时遇到困难,并且希望 imap 支持,那么您应该知道 c-client 库是使用 kerberos 支持编译的。不幸的是,gssapi_krb5 和 k5crypto 不在系统中(或者至少对我来说不存在)。我没有管理员级别的访问权限来添加这些库,所以我必须执行以下操作。我仍然需要测试它是否 100%有效,但至少它在没有抱怨的情况下编译了。
从配置脚本中注释掉以下部分。
片段 1 - 测试 gssapi_krb5 库
case gssapi_krb5 in
c|c_r|pthread*) ;;
*)
if test "$ext_shared" = "yes"; then
IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lgssapi_krb5"
else
case gssapi_krb5 in
c|c_r|pthread*) ;;
*)
LIBS="$LIBS -lgssapi_krb5"
;;
esac
fi
;;
esac
片段 2 - 测试 k5crypto
case k5crypto in
c|c_r|pthread*) ;;
*)
if test "$ext_shared" = "yes"; then
IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lk5crypto"
else
case k5crypto in
c|c_r|pthread*) ;;
*)
LIBS="$LIBS -lk5crypto"
;;
esac
fi
;;
esac
顺便说一句,由于我只为模块编译(它们有 suPHP,所以我需要时就自己编译所有的模块),我只为 php 配置脚本参数添加了这些内容。
./configure --with-imap=shared,xxxxxx --with-kerberos=xxxxxx --with-imap-ssl
这已通过 imap 测试验证有效。我在 phpbuilder.com 网站上找到的一个很棒的测试。它在这里。适当修改地址、端口、协议类型、用户名和密码。该帖子已有 5 年的历史,但脚本仍然可以正常运行。发布者的名字是“Matthew”。
<HTML>
<HEAD>
<TITLE>imap_check</TITLE>
</HEAD>
<BODY>
<?
// 检查新邮件
$mailbox = imap_open("{localhost/pop3:110}INBOX",
"#username#","#password#");
// 检查邮件
$check = imap_check($mailbox);
print("<PRE>");
print("Date most recent message : " . $check->Date);
print("<BR>");
print("Connection type : " . $check->Driver);
print("<BR>");
print("Name of the mailbox : " . $check->Mailbox);
print("<BR>");
print("Number of messages : " . $check->Nmsgs);
print("<BR>");
print("Number of recent messages : " . $check->Recent);
print("<BR>");
print("</PRE>");
// 显示邮件标题
$index=1;
$header = imap_header($mailbox, $index);
print("<PRE>");
print("Header Date : " . $header->Date . "<BR>");
print("Header To : " . $header->to) . "<BR>";
print("Header From : " . $header->From . "<BR>");
print("Header cc : " . $header->cc . "<BR>");
print("Header ReplyTo : " . $header->ReplyTo . "<BR>");
print("Header Subject : " . $header->Subject . "<BR></PRE>");
print("<PRE>");
print(imap_body($mailbox,$index));
print("</PRE><HR>");
imap_close($mailbox);
?>
</BODY></HTML>