-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmailman.php
64 lines (58 loc) · 1.77 KB
/
mailman.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
require_once('config.php');
# Returns an array of all the lists
function list_lists( $member ) {
$cmd = MAILMAN_CMD_PREFIX . 'list_lists -b';
$lists = `$cmd`;
if ( $lists != '' ) {
$lists = trim( $lists );
$lists = preg_split('/\s+/', $lists);
return $lists;
}
else {
return array();
}
}
# Returns an array of all the members of a list
function list_members( $list ) {
$cmd = MAILMAN_CMD_PREFIX . "list_members $list";
$members = `$cmd`;
if ( $members != '' ) {
$members = trim( $members );
$members = preg_split('/\s+/', $members);
return $members;
}
else {
return array();
}
}
# Returns an array of all the lists that the given member is in
function find_member( $member ) {
$cmd = MAILMAN_CMD_PREFIX . "find_member $member | grep -v 'found in'";
$lists = `$cmd`;
if ( $lists != '' ) {
$lists = trim( $lists );
$lists = preg_split('/\s+/', $lists);
return $lists;
}
else {
return array();
}
}
# Adds an email to a list. Returns a boolean representing success or failure.
function add_member( $email, $list ) {
$cmd = MAILMAN_CMD_PREFIX . "add_members -r - --admin-notify=y $list <<< $email | grep 'Already a member:\|Subscribed:'";
return `$cmd`;
}
# Removes an email from a list. Returns a boolean representing success or failure.
function remove_member( $email, $list ) {
$cmd = MAILMAN_CMD_PREFIX . "remove_members -f - $list <<< $email";
$error = `$cmd`;
return !$error;
}
# Removes an email from all lists. Returns a boolean representing success or failure.
function remove_member_from_all_lists( $email ) {
$cmd = MAILMAN_CMD_PREFIX . "remove_members -f - --fromall <<< $email";
return `$cmd`;
}
?>