README.md
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# clist clist aims to be an RFC-compliant mailing list manager. When users send an email to a list, clist delivers that email to other subscribers of that list. Users can manage their subscriptions by sending commands to clist over email. clist can manage multiple lists, each with its own set of subscribers. ## Dependencies clist requires: * a Go compiler * [go-sqlite3](https://github.com/mattn/go-sqlite3) * an SMTP server to send mail * an MTA to handle receiving mail ## Installation To install: 1. clone the repository. 2. change to the clist directory and source `scripts/quickdeploy` to build and install clist. ## Configuration The configuration file for clist is `/etc/clist.ini`. The configuration tells clist how to connect to its local database and how to connect to an SMTP server. It also contains sections for each list that tell clist how each list should behave. ### Basic Configuration A basic configuration looks like this: ``` command_address = log = /path/to/logfile database = dbname smtp_hostname = your_smtp_host smtp_port = 587 smtp_username = AzureDiamond smtp_password = hunter2 Debug = true | false ConfigFile = /path/to/more/config ``` **command_address** The email address that clist will use to accept commands. **log** Path to the file where clist will store log information. **database** The name of the sqlite database where clist will store data. **smtp_hostname** Hostname of the SMTP server that clist will use to send outgoing mail. **smtp_port** SMTP port number. Usually 25, 587, or 2525 for unencrypted connections, and 465 or 25025 for encrypted transport. **smtp_username** **smtp_password** Username and password for the SMTP server. **Debug** Not used. **ConfigFile** Path to a file containing configuration to be loaded by clist. ### List Configuration Each list section looks like this: ``` List name = unused? archive = archive@example.com owner = owner@example.com description = A short description of the list. Id = thelist address = not super sure what this does hidden = true|false subscribers_only = true|false posters,omitempty = authorized@example.com bcc,omitempty = anthonyb@example.com ``` **name** This appears to be unused. **archive** An email address. The value for this setting is set as the List-Archive header on outgoing messages. Per RFC 5064, this value described how to access archives for the list. **owner** An email address inserted into outgoing mail as the List-Owner header. **description** A description of this list. This value is provided in the listing of lists given in response to a request for a list of mailing lists. **Id** A short identifier for this list. Used when subscribing or unsubscribing to the list. **address** I'm not entirely sure what this does. **hidden** If set to true, this list will not appear in the listing of mailing lists. **subscribers_only** If set to true, only subscribers may send messages to the list. **posters,omitempty** A comma-separated whitelist of approved posters. **bcc,omitempty** A comma-separated list of bcc recipients. Using clist ----------- clist monitors the subject line of emails sent to the command address. This address is set using the `command_address` configuration setting. To get a list of available commands, send an email with 'help' in the subject line to the address that clist uses to handle commands. Available commands are: **help** Reply with a list of valid commands. **lists** Reply with a list of mailing lists. Any lists having `hidden = true` will be omitted from this list. **subscribe** The subscribe command must be followed by a valid list Id. clist will add the address in the From head to the list following a confirmation. **unsubscribe** The unsubscribe command must be followed by a valid list Id. clist will remove the address in the From head to the list. ## Contributing Send patches and bug reports to j3s.