|
@@ -1,50 +1,35 @@
|
|
|
-SIGNUPRESP="/opt/cropswap/signup.eml"
|
|
|
POSTMASTERREGEX=escape($POSTMASTER)
|
|
|
-ANYGROUPREGEX="$MEMBERGROUPREGEX|$ORGANIZERGROUPREGEX"
|
|
|
-foreach (tolower $ADDR) =~ /^$POSTMASTERREGEX|$ANYGROUPREGEX$/
|
|
|
+SIGNUPRESP="/opt/cropswap/signup.eml"
|
|
|
+foreach (tolower $ADDR) =~ /^$POSTMASTERREGEX$/
|
|
|
{
|
|
|
- if ($MATCH =~ /^$ANYGROUPREGEX$/)
|
|
|
+ if (/^X\-GROUP:\s*(.+)\s*$/)
|
|
|
{
|
|
|
- MAILGROUP=$MATCH
|
|
|
+ MAILGROUP=$MATCH1
|
|
|
}
|
|
|
- elsif (/^X\-GROUP:\s*($ANYGROUPREGEX)\s*$/)
|
|
|
+ if (/^Subject:\s*\[SIGNUP\]\s*$/)
|
|
|
{
|
|
|
- MAILGROUP=$MATCH1
|
|
|
- if (/^Subject:\s*\[SIGNUP\]\s*$/)
|
|
|
+ TOPOSTMASTER=1
|
|
|
+ if (/^X\-GROUP\-ALIAS:\s*(.+)\s*$/)
|
|
|
{
|
|
|
- TOPOSTMASTER=1
|
|
|
- if (/^X\-GROUP\-ALIAS:\s*(.*)\s*$/)
|
|
|
- {
|
|
|
- MAILGROUPALIAS=$MATCH1
|
|
|
- if (/^X-MEMBER-ALIAS:\s*(.+)\s*$/)
|
|
|
- {
|
|
|
- ALIAS=$MATCH1
|
|
|
- CONTINUE=1
|
|
|
- }
|
|
|
- }
|
|
|
+ MAILGROUPALIAS=$MATCH1
|
|
|
}
|
|
|
- }
|
|
|
- if ($MAILGROUP ne "")
|
|
|
- {
|
|
|
- TOORGANIZER=($TOORGANIZER || ($MAILGROUP eq $ORGANIZERGROUP))
|
|
|
- TOMEMBER=($TOMEMBER || ($MAILGROUP eq $MEMBERGROUP))
|
|
|
- if (/^Subject:\s*\[(SUBSCRIBE|UNSUBSCRIBE)\]\s*$/)
|
|
|
+ if (/^X-MEMBER-ALIAS:\s*(.+)\s*$/)
|
|
|
{
|
|
|
- SUBSCRIBE=$MATCH1
|
|
|
- CONTINUE=1
|
|
|
+ MEMBERALIAS=$MATCH1
|
|
|
}
|
|
|
+ CONTINUE=($MEMBERALIAS ne "" && $MAILGROUP ne "" && $MAILGROUPALIAS ne "")
|
|
|
}
|
|
|
}
|
|
|
if ($DISPATCH)
|
|
|
{
|
|
|
gdbmopen($MLIST, "C")
|
|
|
SUFFIX=0
|
|
|
- KEY=$ALIAS
|
|
|
+ KEY=$MEMBERALIAS
|
|
|
EXISTS=gdbmfetch($KEY)
|
|
|
while ($EXISTS ne "" && $EXISTS ne tolower($FROM))
|
|
|
{
|
|
|
SUFFIX=($SUFFIX + 1)
|
|
|
- KEY="$ALIAS $SUFFIX"
|
|
|
+ KEY="$MEMBERALIAS $SUFFIX"
|
|
|
EXISTS=gdbmfetch($KEY)
|
|
|
}
|
|
|
if (gdbmstore(tolower($FROM), $KEY) || gdbmstore($KEY, tolower($FROM)))
|