脚本语言新用 简易的 PHP 通讯簿
管理员可以手动建立选单,从LDAP服务器中选择个别部门名单,并且可以选取多笔收件人和副本、密件副本,并且使用预设邮件客户端寄出。
共有三个档案:
ldap.html 纯粹的框架档。
ldap.php 使用选单,经由php 来取得邮件地址,并建立javascript选单。
select.html 从ldap.php 获取选择项目,并建立一个连结,让邮件客户端取用。
剪剪贴贴来的。由于部份程序代码来自 Squirrel Mail,本程序为 GPL。功力不佳,请高手好好修改一番吧。 icon_redface.gif
ldap.html(不需修改)
代码:
ldap.php(请修改ldap服务器连结、部门清单和搜寻基础的部份,以符合您的需求。)
※特别说明,我们公司的搜寻是以lastname 为基础。并不是以部门区分。请自行修改以符合需求。
代码:
自由原始码公司通讯簿查询
function to_addr($addr)
{
var prefix = "";
var pwintype = typeof parent.fr2.document.selectaddr;
$addr = $addr.replace(/ {1,35}$/, "");
if (pwintype != "undefined") {
if (parent.fr2.document.selectaddr.toaddr.value) {
prefix = ", ";
parent.fr2.document.selectaddr.toaddr.value =
parent.fr2.document.selectaddr.toaddr.value + ", " + $addr;
} else {
parent.fr2.document.selectaddr.toaddr.value = $addr;
}
}
}
function cc_addr($addr)
{
var prefix = "";
var pwintype = typeof parent.fr2.document.selectaddr;
$addr = $addr.replace(/ {1,35}$/, "");
if (pwintype != "undefined") {
if (parent.fr2.document.selectaddr.ccaddr.value) {
prefix = ", ";
parent.fr2.document.selectaddr.ccaddr.value =
parent.fr2.document.selectaddr.ccaddr.value + ", " + $addr;
} else {
parent.fr2.document.selectaddr.ccaddr.value = $addr;
}
}
}
function bcc_addr($addr)
{
var prefix = "";
var pwintype = typeof parent.fr2.document.selectaddr;
$addr = $addr.replace(/ {1,35}$/, "");
if (pwintype != "undefined") {
if (parent.fr2.document.selectaddr.bccaddr.value) {
prefix = ", ";
parent.fr2.document.selectaddr.bccaddr.value =
parent.fr2.document.selectaddr.bccaddr.value + ", " + $addr;
} else {
parent.fr2.document.selectaddr.bccaddr.value = $addr;
}
}
}
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection
$ds=ldap_connect("localhost"); // must be a valid LDAP server!
//echo "connect result is ".$ds."
";
if (empty($query))
{
echo "请从下拉式选单中选择欲查询部门";
}
else
{
if ($ds) {
// echo "Binding ...";
$r=ldap_bind($ds); // this is an "anonymous" bind, typically
// read-only access
// echo "Bind result is ".$r."
";
echo "搜寻 $query .... ";
// Search surname entry
$sr=ldap_search($ds,"o=oss, c=tw", "cn=$query");
// echo "搜寻结果 ".$sr."
";
echo "总共 ".ldap_count_entries($ds,$sr)."笔
";
echo "取得资料 ...
";
$info = ldap_get_entries($ds, $sr);
// echo "Data for ".$info["count"]." items returned:
";
echo "
";echo "
姓名 | 收件者 | 副本 | 密件副本";
for ($i=0; $i<$info["count"]; $i++) { echo " | |
---|---|---|---|---|
" . $info[$i]["cn"][0] . " | " . ''. $info[$i]["mail"][0]."";
echo " | " . ''.'收件者'." "; echo " | " . ''.'副本'." "; echo " | " . ''.'密件副本'." "; }
echo " |
echo "
";
echo "查询结束";
ldap_close($ds);
} else {
echo "
无法连结 LDAP 服务器,请洽MIS
";}
}
?>
select.html(不需修改)
代码:
function generate()
{
var to_total=document.selectaddr.toaddr.value;
var cc_total=document.selectaddr.ccaddr.value;
var bcc_total=document.selectaddr.bccaddr.value;
document.write("
}
function cleartoaddr()
{
document.selectaddr.toaddr.value = "";
}