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:
parent
e864570387
commit
58187416e9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=79691
@ -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
48
mail/websieve/Makefile
Normal 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
1
mail/websieve/distinfo
Normal file
@ -0,0 +1 @@
|
||||
MD5 (websieve-0.61.tar.gz) = 5f2d01a2479f8cdd8e2ea4fd1a09163e
|
11
mail/websieve/files/patch-funclib.pl
Normal file
11
mail/websieve/files/patch-funclib.pl
Normal 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;
|
||||
|
||||
}
|
76
mail/websieve/files/patch-websieve.conf
Normal file
76
mail/websieve/files/patch-websieve.conf
Normal 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>";
|
190
mail/websieve/files/patch-websieve.pl
Normal file
190
mail/websieve/files/patch-websieve.pl
Normal 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: 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');
|
||||
+ print "<b>NOTE: 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 "  ".submit('Select Folder')." ".submit('Up One Level')."</TD></TR>" if ($shortacl && $ismanager);
|
||||
+ print " ".submit('Select Folder')." ".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)."   ".submit("Select","Select $subtext")."  (Wildcards allowed [*])</TD></TR>";
|
||||
+ print textfield("mbx","",48)." ".submit("Select","Select $subtext")." (Wildcards allowed [*])</TD></TR>";
|
||||
}
|
||||
print "<TR><TD $cb ><b>Foreign User ID:</b></TD>";
|
||||
- print "<TD $cb>".textfield("acluser")." (User ID to assign access rights)  ".submit("Set Acl")."</TD></TR>";
|
||||
+ print "<TD $cb>".textfield("acluser")." (User ID to assign access rights) ".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 "  <b>Disk Quota Used (KB):</b>  ".$imapquota[1]."  ".submit("Set Quota")."</TD></TR>";
|
||||
+ print " <b>Disk Quota Used (KB):</b> ".$imapquota[1]." ".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")."  ";
|
||||
+ print "<TR><TD $cb ><b>$subtext to Create:</b></TD><TD $cb>".textfield("newmbx")." ";
|
||||
print "<b>Partition: </b>",textfield("partition") if $ismanager;
|
||||
- print"  ". submit('Create Mailbox',"Create $subtext")."  </TR>";
|
||||
- print "<TR><TD $cb ><b>$subtext to Delete:</b></TD><TD $cb>".textfield("delmailbox")."   ".submit("Delete This Mailbox","Delete $subtext")."</tr>" if $ismanager;
|
||||
+ print" ". submit('Create Mailbox',"Create $subtext")." </TR>";
|
||||
+ print "<TR><TD $cb ><b>$subtext to Delete:</b></TD><TD $cb>".textfield("delmailbox")." ".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'),"  ",submit("Refresh"),"  ",reset("Reset Values"),"</center>";
|
||||
+ print "<hr><center>",submit('Save Changes')," ",submit("Refresh")," ",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 "  <b>Priority: </b>",textfield("rules.priority.$rulecount",$spriority,2);
|
||||
- print "  <b>Status: </b>",popup_menu("rules.ruletype.$rulecount",[@ruletype],'ENABLED'),"</TD><TD></TR>";
|
||||
+ print " <b>Priority: </b>",textfield("rules.priority.$rulecount",$spriority,2);
|
||||
+ print " <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>  'from' contains ",
|
||||
+ print " field(s):</b></TD><TD $cb> '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> </TD><TD $cb >";
|
||||
- print "  'to' contains ",
|
||||
+ print "<TD $cb align=right> </TD><TD $cb >";
|
||||
+ print " '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> </TD><TD $cb>";
|
||||
- print "  'subject' contains ",
|
||||
+ print "<TD $cb align=right> </TD><TD $cb>";
|
||||
+ print " '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> </TD><TD $cb><input type=radio $check1 name=rules.desttype.$rulecount value=\"address\"> Forward To </TD><TD $cb>";
|
||||
+ print "<TD $cb> </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> </TD><TD $cb valign=top><input type=radio $check2 name=rules.desttype.$rulecount value=\"reply\"> Reply With </TD><TD $cb>";
|
||||
+ print "<TD $cb> </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> </TD><TD $cb valign=top><input type=radio $check3 name=rules.desttype.$rulecount value=\"reject\"> Reject </TD><TD $cb>";
|
||||
+ print "<TD $cb> </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> </TD><TD $cb valign=top><input type=radio $check4 name=rules.desttype.$rulecount value=\"discard\"> Discard </TD><TD $cb> </TD></TR>";
|
||||
+ print "<TD $cb> </TD><TD $cb valign=top><input type=radio $check4 name=rules.desttype.$rulecount value=\"discard\"> Discard </TD><TD $cb> </TD></TR>";
|
||||
}
|
||||
|
||||
############### Action CustomCode
|
||||
@@ -1196,7 +1196,7 @@
|
||||
print hr,"<TABLE ><TR><TD >$wild</TD></TABLE>";
|
||||
|
||||
$rulecount--;
|
||||
- print hr,"<center>",submit("Save Rule "),"  ",reset('Clear'),"</center>";
|
||||
+ print hr,"<center>",submit("Save Rule ")," ",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'),"  ",submit("Refresh"),"  ",reset('Reset Values'),"</center>" if $op;
|
||||
+ print "<center>",submit('Save Changes')," ",submit("Refresh")," ",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'),"  ",submit("Refresh"),"  ",reset('Reset Values'),"</center>";
|
||||
+ print "<hr><center>",submit('Save Changes')," ",submit("Refresh")," ",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'),"  ",submit("Refresh"),"  ",reset('Reset Values'),"</center>";
|
||||
+ print "<hr><center>",submit('Save Changes')," ",submit("Refresh")," ",reset('Reset Values'),"</center>";
|
||||
|
||||
|
||||
}
|
9
mail/websieve/pkg-descr
Normal file
9
mail/websieve/pkg-descr
Normal 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
|
6
mail/websieve/pkg-message
Normal file
6
mail/websieve/pkg-message
Normal 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
4
mail/websieve/pkg-plist
Normal file
@ -0,0 +1,4 @@
|
||||
www/cgi-bin/websieve.pl
|
||||
etc/websieve/websieve.conf.sample
|
||||
etc/websieve/funclib.pl
|
||||
@dirrm etc/websieve
|
Loading…
Reference in New Issue
Block a user