Add websieve 0.61, web based Cyrus IMAP user admin client.

PR:		51425
Submitted by:	Oliver Eikemeier <eikemeier@fillmore-labs.com>
This commit is contained in:
Norikatsu Shigemura 2003-04-26 21:50:25 +00:00
parent e864570387
commit 58187416e9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=79691
9 changed files with 346 additions and 0 deletions

View File

@ -305,6 +305,7 @@
SUBDIR += wanderlust
SUBDIR += wanderlust-emacs20
SUBDIR += wanderlust-xemacs21-mule
SUBDIR += websieve
SUBDIR += wmbiff
SUBDIR += wmmail
SUBDIR += wmmaiload

48
mail/websieve/Makefile Normal file
View File

@ -0,0 +1,48 @@
# New ports collection makefile for: websieve
# Date created: 25 Apr 2003
# Whom: Oliver Eikemeier <eikemeier@fillmore-labs.com>
#
# $FreeBSD$
#
PORTNAME= websieve
PORTVERSION= 0.61
CATEGORIES= mail
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
MAINTAINER= eikemeier@fillmore-labs.com
COMMENT= Web based Cyrus IMAP user admin client
RUN_DEPENDS= ${SITE_PERL}/IMAP/Admin.pm:${PORTSDIR}/mail/p5-IMAP-Admin \
${SITE_PERL}/IMAP/Sieve.pm:mail/p5-IMAP-Sieve \
${SITE_PERL}/CGI/Cache.pm:${PORTSDIR}/www/p5-CGI-Cache
.if defined(WITH_APACHE2)
RUN_DEPENDS+= ${LOCALBASE}/www/cgi-bin:${PORTSDIR}/www/apache2
.else
RUN_DEPENDS+= ${LOCALBASE}/www/cgi-bin:${PORTSDIR}/www/apache13
.endif
WRKSRC= ${WRKDIR}/${PORTNAME}
PKGMESSAGE= ${WRKDIR}/pkg-message
USE_REINPLACE= yes
USE_PERL5_RUN= yes
NO_BUILD= yes
post-configure:
@${REINPLACE_CMD} -e "s,require[ ]*'\./\([^']*\)',require '${PREFIX}/etc/websieve/\1'," \
${WRKSRC}/websieve.pl
do-install:
@${INSTALL_SCRIPT} ${WRKSRC}/websieve.pl ${PREFIX}/www/cgi-bin
@${MKDIR} ${PREFIX}/etc/websieve
@${INSTALL_DATA} ${WRKSRC}/websieve.conf ${PREFIX}/etc/websieve/websieve.conf.sample
@${INSTALL_DATA} ${WRKSRC}/funclib.pl ${PREFIX}/etc/websieve
@@${SED} 's,%%PREFIX%%,${PREFIX},g' ${.CURDIR}/pkg-message > ${PKGMESSAGE}
post-install:
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>

1
mail/websieve/distinfo Normal file
View File

@ -0,0 +1 @@
MD5 (websieve-0.61.tar.gz) = 5f2d01a2479f8cdd8e2ea4fd1a09163e

View File

@ -0,0 +1,11 @@
--- funclib.pl.orig Mon Sep 24 14:50:50 2001
+++ funclib.pl Wed Apr 23 19:24:59 2003
@@ -51,7 +51,7 @@
$IMAPERROR=$imap->{'Error'} unless (defined(@tmp) && scalar(@tmp) > 1);
return unless (defined(@tmp) && scalar(@tmp) > 1);
#recreate array and remove extra spaces - fixes array properly
- @tmp=($tmp[3],$tmp[4],$tmp[5]);
+# @tmp=($tmp[3],$tmp[4],$tmp[5]);
return @tmp;
}

View File

@ -0,0 +1,76 @@
--- websieve.conf.orig Fri Apr 25 15:55:52 2003
+++ websieve.conf Fri Apr 25 16:02:55 2003
@@ -1,10 +1,10 @@
#Websieve configuration file
#set $useldapextras=1 to use Jules Agee's ldap administration functions
-$useldapextras=1;
+$useldapextras=0;
#set $useauth=1 to use ldap (for ldap password changes)
-$useauth=1;
+$useauth=0;
$LDAP_SERVER='localhost';
$LDAP_BASEDN='o=toshiba of canada,c=ca';
$ENCRYPT_PASS=1;
@@ -16,17 +16,17 @@
# You can write you own functions to change passwords on a different auth
# mechanism such as on a MysSql server, Qualcomm poppassd server, etc.
-require "./custom.pl";
+#require "/usr/local/etc/websieve/custom.pl";
#secret key - CHANGE THIS to some random data!!!!
$skey = "your secret key CEDEFEKJKIIEIOO***#KIKIDKKEUIULJLJKJ";
#use RC4 algorithm for encryption instead of rot13
$userc4=1;
#cyrus admin user id that is used for general mailbox administration
-$cyrusadminuid='admin';
+$cyrusadminuid='cyrus';
# default imap server host name
-$imapserver='imap.toshiba.ca';
+$imapserver='localhost';
#make sure you set this to your program virtual name and path
#$program_url = "/cgi-bin/websieve.pl" ; # URL for this program
@@ -36,7 +36,7 @@
$imapport='143';
#your mail domain
-$maildomain='test.toshiba.ca' ;
+$maildomain='example.com' ;
#default FQHN of the mail server for use in vacation addresses
$mailhostappend="imap.$maildomain";
@@ -60,10 +60,8 @@
#$sieveport,$imapport,$maildomain, $imapserver and $usexxxSSL will be used instead.
%server_hosts=(
-"imap.toshiba.ca"=>['Local Server','143','2000','toshiba.ca','imap.toshiba.ca'],
-"otherhost"=>['Some otherhost','993','2000','maildomain2','vacationhost2','ssl_imap'],
-"mtl.toshiba.ca"=>['Mtl Server','143','2000','toshiba.ca','mtl.toshiba.ca'],
-"otherhostname"=>['other Imap Server','143','2000','other.toshiba.ca','vacationhost3']
+"localhost"=>['Local Server','143','2000','example.com','example.com'],
+"127.0.0.1"=>['Secure Server','993','2000','example.com','example.com','ssl_imap']
);
# show server selection option at login otherwise defaults to $imapserver
@@ -85,7 +83,7 @@
$header1="Mail Account Management";
# This is the address that supports your mail server
-$problem_email="administrator\@$maildomain" ;
+$problem_email="postmaster\@$maildomain" ;
# list of additional namespaces on IMAP server
@namespaces = ("public2");
@@ -183,7 +181,7 @@
# Menu selections
$LOGOUTURL="<a href=$program_url?op=logout>[LOGOUT]</a>" if !$LOGOUTURL;
-$HOMEURL="<a href=/index.html>[HOME]</a>";
+$HOMEURL="<a href=/>[HOME]</a>";
$HELPURL="<a href=/mailhelp.html>[HELP]</a>";
$VIEWRULESURL="<a href=$program_url?op=viewrules>[View/Edit Rules]</a>";
$FORWARDALLURL="<a href=$program_url?op=forward>[Forward Mail]</a>";

View File

@ -0,0 +1,190 @@
--- websieve.pl.orig Mon Sep 17 01:23:49 2001
+++ websieve.pl Fri Apr 25 19:49:30 2003
@@ -301,7 +301,7 @@
}
print "</TABLE></TD></TABLE>";
- print "<b>NOTE:&nbspYou will lose ALL changes made to a script in advanced mode if you switch back to basic mode.</b>" if ($mode eq 'advanced' && $op eq 'advanced');
+ print "<b>NOTE:&nbsp;You will lose ALL changes made to a script in advanced mode if you switch back to basic mode.</b>" if ($mode eq 'advanced' && $op eq 'advanced');
}
@@ -405,7 +405,7 @@
else {
$change=1 ;
param('mbx',$mbx);
- print hidden('mbx');
+ #print hidden('mbx');
}
}
if (!$mbx || !(( $acl && $useracl) || $maxquota)) {
@@ -547,7 +547,7 @@
}
@tmpbox=@mailboxes;
print "<TR><TD >",popup_menu('selectedmbx',[@aclview],' ') if ($shortacl);
- print "&nbsp&nbsp".submit('Select Folder')."&nbsp".submit('Up One Level')."</TD></TR>" if ($shortacl && $ismanager);
+ print "&nbsp;&nbsp;".submit('Select Folder')."&nbsp;".submit('Up One Level')."</TD></TR>" if ($shortacl && $ismanager);
print "</TABLE>";
print "</TD></TABLE>";
@@ -567,10 +567,10 @@
if (!$ismanager) {
print popup_menu('mbx',[@tmpbox],' ')."</TD></TR>";
} else {
- print textfield("mbx","",48)."&nbsp&nbsp&nbsp".submit("Select","Select $subtext")."&nbsp&nbsp(Wildcards allowed [*])</TD></TR>";
+ print textfield("mbx","",48)."&nbsp;&nbsp;&nbsp;".submit("Select","Select $subtext")."&nbsp;&nbsp;(Wildcards allowed [*])</TD></TR>";
}
print "<TR><TD $cb ><b>Foreign User ID:</b></TD>";
- print "<TD $cb>".textfield("acluser")."&nbsp(User ID to assign access rights) &nbsp".submit("Set Acl")."</TD></TR>";
+ print "<TD $cb>".textfield("acluser")."&nbsp;(User ID to assign access rights) &nbsp;".submit("Set Acl")."</TD></TR>";
print "<TD><b> General Rights:</b></TD><TD $cb>".radio_group('rights',[@rights],"-",'',\%rightshash)."</TD></TR>";
print "<TR><TD $cb><b>Specific Rights:</b></TD><TD $cb>".checkbox_group('acl',[@acls],'','',\%aclhash)."</TD></TR>";
@@ -580,7 +580,7 @@
param('aclmaxquota',$imapquota[2]);
print "<TR><TD><$cb><B>Disk Quota Limit (KB):</b></TD><TD $cb>";
print textfield('aclmaxquota',$imapquota[2],20,40);
- print "&nbsp&nbsp<b>Disk Quota Used (KB):</b>&nbsp&nbsp".$imapquota[1]."&nbsp&nbsp".submit("Set Quota")."</TD></TR>";
+ print "&nbsp;&nbsp;<b>Disk Quota Used (KB):</b>&nbsp;&nbsp;".$imapquota[1]."&nbsp;&nbsp;".submit("Set Quota")."</TD></TR>";
}
print "</TABLE>";
print "</TD></TABLE>",br;
@@ -592,10 +592,10 @@
param('delmailbox','');
param('newmbx','');
param('partition','');
- print "<TR><TD $cb ><b>$subtext to Create:</b></TD><TD $cb>".textfield("newmbx")."&nbsp&nbsp";
+ print "<TR><TD $cb ><b>$subtext to Create:</b></TD><TD $cb>".textfield("newmbx")."&nbsp;&nbsp;";
print "<b>Partition: </b>",textfield("partition") if $ismanager;
- print"&nbsp&nbsp". submit('Create Mailbox',"Create $subtext")."&nbsp&nbsp</TR>";
- print "<TR><TD $cb ><b>$subtext to Delete:</b></TD><TD $cb>".textfield("delmailbox")."&nbsp&nbsp&nbsp".submit("Delete This Mailbox","Delete $subtext")."</tr>" if $ismanager;
+ print"&nbsp;&nbsp;". submit('Create Mailbox',"Create $subtext")."&nbsp;&nbsp;</TR>";
+ print "<TR><TD $cb ><b>$subtext to Delete:</b></TD><TD $cb>".textfield("delmailbox")."&nbsp;&nbsp;&nbsp;".submit("Delete This Mailbox","Delete $subtext")."</tr>" if $ismanager;
print "</TABLE>";
print "</TD></TABLE>";
@@ -1046,7 +1046,7 @@
if (!$rulecount) {
print " [No Rules avalailable]<br>";
}
- print "<hr><center>",submit('Save Changes'),"&nbsp&nbsp",submit("Refresh"),"&nbsp&nbsp",reset("Reset Values"),"</center>";
+ print "<hr><center>",submit('Save Changes'),"&nbsp;&nbsp;",submit("Refresh"),"&nbsp;&nbsp;",reset("Reset Values"),"</center>";
} # if viewrules
if (($op eq 'addrule' || $modrule) && ($op ne 'forward')) {
@@ -1057,8 +1057,8 @@
print "<center><b>New Rule Entry for user: </b>$uid</center></TD></TR><TR $cb><TD>";
print "<TABLE >";
print "<TR $cb><TD><b>Rule#: </b>[$rulecount]";
- print "&nbsp&nbsp<b>Priority: </b>",textfield("rules.priority.$rulecount",$spriority,2);
- print "&nbsp&nbsp<b>Status: </b>",popup_menu("rules.ruletype.$rulecount",[@ruletype],'ENABLED'),"</TD><TD></TR>";
+ print "&nbsp;&nbsp;<b>Priority: </b>",textfield("rules.priority.$rulecount",$spriority,2);
+ print "&nbsp;&nbsp;<b>Status: </b>",popup_menu("rules.ruletype.$rulecount",[@ruletype],'ENABLED'),"</TD><TD></TR>";
my @checked;
my @checkvalues=("copy","keep");
push @checkvalues,"regex" if $useregex;
@@ -1096,23 +1096,23 @@
param("rules.searchflg.$rulecount","$ssearchflg");
print popup_menu("rules.searchflg.$rulecount",[@flgsts],$ssearchflg,\%searchflghash);
}
- print " field(s):</b></TD><TD $cb>&nbsp 'from' contains ",
+ print " field(s):</b></TD><TD $cb>&nbsp; 'from' contains ",
"</TD><TD $cb >";
param("rules.from.$rulecount","$sfrom");
print textfield("rules.from.$rulecount","$sfrom",50),"</TD></TR>";
############# TO field
print "<TR>";
- print "<TD $cb align=right>&nbsp</TD><TD $cb >";
- print "&nbsp 'to' contains ",
+ print "<TD $cb align=right>&nbsp;</TD><TD $cb >";
+ print "&nbsp; 'to' contains ",
"</TD><TD $cb >";
param("rules.to.$rulecount","$sto");
print textfield("rules.to.$rulecount","$sto",50),"</TD></TR>";
########### SUBJECT field
print "<TR></TD>";
- print "<TD $cb align=right>&nbsp</TD><TD $cb>";
- print "&nbsp 'subject' contains ",
+ print "<TD $cb align=right>&nbsp;</TD><TD $cb>";
+ print "&nbsp; 'subject' contains ",
"</TD><TD $cb>";
param("rules.subject.$rulecount","$ssubject");
print textfield("rules.subject.$rulecount","$ssubject",50),"</TD></TR>";
@@ -1154,26 +1154,26 @@
############## Action REDIRECT
param("rules.forward.$rulecount","$sdest1");
- print "<TD $cb>&nbsp</TD><TD $cb><input type=radio $check1 name=rules.desttype.$rulecount value=\"address\"> Forward To </TD><TD $cb>";
+ print "<TD $cb>&nbsp;</TD><TD $cb><input type=radio $check1 name=rules.desttype.$rulecount value=\"address\"> Forward To </TD><TD $cb>";
print textfield("rules.forward.$rulecount",$sdest1,50)," (Email Address) </TD></TR><TR>";
############### Action REPLY WITH
if ($usereply) {
param("rules.reply.$rulecount","$sdest2") if (defined $sdest2);
- print "<TD $cb>&nbsp</TD><TD $cb valign=top><input type=radio $check2 name=rules.desttype.$rulecount value=\"reply\"> Reply With </TD><TD $cb>";
+ print "<TD $cb>&nbsp;</TD><TD $cb valign=top><input type=radio $check2 name=rules.desttype.$rulecount value=\"reply\"> Reply With </TD><TD $cb>";
print textarea("rules.reply.$rulecount",$sdest2,2,43)," (Text Message) </TD></TR>";
}
############## Action Reject
if ($usereject) {
param("rules.reject.$rulecount","$sdest3");
- print "<TD $cb>&nbsp</TD><TD $cb valign=top><input type=radio $check3 name=rules.desttype.$rulecount value=\"reject\"> Reject </TD><TD $cb>";
+ print "<TD $cb>&nbsp;</TD><TD $cb valign=top><input type=radio $check3 name=rules.desttype.$rulecount value=\"reject\"> Reject </TD><TD $cb>";
print textarea("rules.reject.$rulecount",$sdest3,2,43)," (Text Message) </TD></TR>";
}
############## Action Discard
if ($usediscard) {
- print "<TD $cb>&nbsp</TD><TD $cb valign=top><input type=radio $check4 name=rules.desttype.$rulecount value=\"discard\"> Discard </TD><TD $cb>&nbsp</TD></TR>";
+ print "<TD $cb>&nbsp;</TD><TD $cb valign=top><input type=radio $check4 name=rules.desttype.$rulecount value=\"discard\"> Discard </TD><TD $cb>&nbsp;</TD></TR>";
}
############### Action CustomCode
@@ -1196,7 +1196,7 @@
print hr,"<TABLE ><TR><TD >$wild</TD></TABLE>";
$rulecount--;
- print hr,"<center>",submit("Save Rule "),"&nbsp&nbsp",reset('Clear'),"</center>";
+ print hr,"<center>",submit("Save Rule "),"&nbsp;&nbsp;",reset('Clear'),"</center>";
} # if addrule
@@ -1248,7 +1248,7 @@
print "<TD $cb><b>Server: </b>$imapserver</TD><TD $cb><b>Userid: </b>$uid</TD>";
print "<TD $cb><b>Used Quota: </b>";
if ($percent ne "") {
- print "[<b>$quota[1]</b> kbytes used /<b> $quota[2]</b> kbytes available.($percent\% usage)]</TD>";
+ print "[<b>$quota[1]</b> kbytes used /<b> $quota[2]</b> kbytes available. ($percent\% usage)]</TD>";
} else {
print "<TD $cb><b>$quota[1]</b> No limits</TD>";
};
@@ -1387,7 +1387,7 @@
print start_form(-action=>$program_url);
$gomodifyit = 'yes';
print hidden('s',$sencode_params) if $useservercookie;
- print "<center>",submit('Save Changes'),"&nbsp&nbsp",submit("Refresh"),"&nbsp&nbsp",reset('Reset Values'),"</center>" if $op;
+ print "<center>",submit('Save Changes'),"&nbsp;&nbsp;",submit("Refresh"),"&nbsp;&nbsp;",reset('Reset Values'),"</center>" if $op;
param('op',$op);
if (param('action') && param('action') eq 'deletembx') {
&deleteimapmailbox;
@@ -1407,7 +1407,7 @@
&initscripts(%scripts);
if ($op eq 'setacl') {
&viewacl if $useacl;
- print "<hr><center>",submit('Save Changes'),"&nbsp&nbsp",submit("Refresh"),"&nbsp&nbsp",reset('Reset Values'),"</center>";
+ print "<hr><center>",submit('Save Changes'),"&nbsp;&nbsp;",submit("Refresh"),"&nbsp;&nbsp;",reset('Reset Values'),"</center>";
}
if ($mode =~ /basic/i && $op ne 'setacl') {
@@ -1420,7 +1420,7 @@
# print "printing $op<br>";
&printscript($scripts{'script'}) ;
- print "<hr><center>",submit('Save Changes'),"&nbsp&nbsp",submit("Refresh"),"&nbsp&nbsp",reset('Reset Values'),"</center>";
+ print "<hr><center>",submit('Save Changes'),"&nbsp;&nbsp;",submit("Refresh"),"&nbsp;&nbsp;",reset('Reset Values'),"</center>";
}

9
mail/websieve/pkg-descr Normal file
View File

@ -0,0 +1,9 @@
A web based easy to use interface for creating Sieve scripts on an Cyrus
IMAP mail server as well as allowing users to set access controls, create
new mailboxes and view their mail quota. Also give administrators full
administrative capabilities.
Author: Alain Turbide <aturbide@toshiba.ca>
WWW: http://sourceforge.net/projects/websieve

View File

@ -0,0 +1,6 @@
Websieve has been installed at <http://localhost/cgi-bin/websieve.pl>
However, before you can use the program, you should copy the file
"websieve.conf.sample" in %%PREFIX%%/etc/websieve to "websieve.conf"
edit it to suit your needs. Use "openssl rand -base64 39" to create
a new secret key.

4
mail/websieve/pkg-plist Normal file
View File

@ -0,0 +1,4 @@
www/cgi-bin/websieve.pl
etc/websieve/websieve.conf.sample
etc/websieve/funclib.pl
@dirrm etc/websieve