• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

lang/H15-May-2014-10,8067,814

tests/H15-May-2014-3,3332,744

BINH A D15-May-2014784 3534

BLURBH A D15-May-20142.4 KiB5140

BUGSH A D15-May-20141.5 KiB3225

CHANGESH A D15-May-201466.1 KiB1,3501,164

ChangeLogH A D15-May-2014230.7 KiB6,9934,799

DOWNGRADEH A D15-May-20141.4 KiB3424

ETCH A D15-May-201428.8 KiB603602

FAQH A D15-May-2014275.2 KiB6,0664,089

FILESH A D15-May-201418.8 KiB1,0491,048

HISTORYH A D15-May-20142.6 KiB6260

INSTALLH A D15-May-20149.9 KiB240177

LIBH A D15-May-2014110 65

LICENSEH A D15-May-201417.6 KiB340281

MANH A D15-May-20142.1 KiB7776

MakefileH A D03-May-202258.4 KiB1,6751,264

READMEH A D15-May-201410.7 KiB204187

README.mysqlH A D15-May-20147.6 KiB148122

README.pgsqlH A D15-May-20148.2 KiB161132

README.stdH A D15-May-2014848 1813

SOURCESH A D15-May-20146.1 KiB475474

TARGETSH A D15-May-20145.2 KiB410409

THANKSH A D15-May-2014283 1514

TODOH A D15-May-2014978 2925

UPGRADEH A D15-May-20148.7 KiB237159

VERSIONH A D15-May-201440 32

alloc.3H A D15-May-2014958 6356

alloc.cH A D15-May-2014865 3225

alloc.hH A D15-May-2014227 116

alloc_re.cH A D15-May-2014250 1712

altpath.cH A D15-May-20141.3 KiB5852

altpath.hH A D15-May-2014276 128

author.cH A D15-May-20144.7 KiB172144

auto-str.cH A D15-May-20141.3 KiB6963

auto_bin.hH A D15-May-201482 74

auto_cron.hH A D15-May-201480 74

auto_etc.hH A D15-May-201478 74

auto_lib.hH A D15-May-201482 74

auto_qmail.hH A D15-May-201483 74

auto_version.hH A D15-May-201489 74

byte.hH A D15-May-2014514 1610

byte_chr.cH A D15-May-2014407 2015

byte_copy.cH A D15-May-2014310 1410

byte_cr.cH A D15-May-2014335 1612

byte_diff.cH A D15-May-2014474 1612

byte_rchr.cH A D15-May-2014451 2318

byte_zero.cH A D15-May-2014309 1510

case.3H A D15-May-20141.7 KiB10188

case.hH A D15-May-2014489 1710

case_diffb.cH A D15-May-2014482 2216

case_diffs.cH A D15-May-2014457 2115

case_lowerb.cH A D15-May-2014279 1611

case_startb.cH A D15-May-2014362 1916

case_starts.cH A D15-May-2014310 1714

cgi.hH A D15-May-2014148 95

choose.shH A D15-May-2014343 2112

concatHDR.cH A D15-May-20141.6 KiB5242

conf-binH A D03-May-202215 21

conf-ccH A D03-May-202235 21

conf-ccloH A D15-May-2014100 53

conf-cronH A D03-May-202210 21

conf-etcH A D03-May-202221 21

conf-langH A D15-May-2014296 96

conf-ldH A D03-May-202216 21

conf-ldsoH A D15-May-2014101 53

conf-libH A D03-May-202221 21

conf-manH A D03-May-202215 21

conf-qmailH A D03-May-202211 21

config.cH A D15-May-20144.5 KiB188167

config.hH A D15-May-2014405 2116

constmap.cH A D15-May-20142.6 KiB126110

constmap.hH A D15-May-2014646 2621

cookie.cH A D15-May-20141.1 KiB5132

cookie.hH A D15-May-2014213 1410

copy.cH A D15-May-20148 KiB289232

copy.hH A D15-May-2014698 2318

date2yyyymm.cH A D15-May-20141.8 KiB6856

date822fmt.cH A D15-May-2014934 3027

date822fmt.hH A D15-May-2014155 96

dateline.cH A D15-May-2014991 3833

datetime.3H A D15-May-20141.6 KiB7466

datetime.cH A D15-May-20141.1 KiB5443

datetime.hH A D15-May-2014262 2015

decodeB.cH A D15-May-20141.7 KiB6556

decodeHDR.cH A D15-May-20142.4 KiB8067

decodeQ.cH A D15-May-20141.8 KiB5944

die.hH A D15-May-2014454 1712

die_badaddr.cH A D15-May-2014135 97

die_badformat.cH A D15-May-2014137 97

die_dow.cH A D15-May-2014123 97

die_nomem.cH A D15-May-2014128 97

die_sender.cH A D15-May-2014131 97

die_usage.cH A D15-May-2014112 97

direntry.3H A D15-May-2014625 3731

direntry.h1H A D15-May-2014190 138

direntry.h2H A D15-May-2014189 138

dmarc.cH A D15-May-20141.6 KiB7157

dmarc.hH A D15-May-2014242 117

dns.hH A D15-May-20142.9 KiB8571

dns_dfd.cH A D15-May-20141.4 KiB7262

dns_domain.cH A D15-May-20141.3 KiB7762

dns_dtda.cH A D15-May-2014803 3832

dns_ip.cH A D15-May-20141.8 KiB7864

dns_ipq.cH A D15-May-20141.8 KiB7461

dns_mx.cH A D15-May-20141.4 KiB5242

dns_name.cH A D15-May-20141.3 KiB5140

dns_nd.cH A D15-May-2014731 2722

dns_packet.cH A D15-May-20141.7 KiB8063

dns_random.cH A D15-May-20141.4 KiB6651

dns_rcip.cH A D15-May-20141.7 KiB8976

dns_rcrw.cH A D15-May-20143.3 KiB134115

dns_resolve.cH A D15-May-2014749 3225

dns_sortip.cH A D15-May-2014450 2315

dns_transmit.cH A D15-May-20148.2 KiB369280

dns_txt.cH A D15-May-20141.5 KiB6252

encodeB.cH A D15-May-20142.2 KiB8874

encodeQ.cH A D15-May-20141.1 KiB4639

env.3H A D15-May-2014600 3226

env.cH A D15-May-20142.3 KiB11596

env.hH A D15-May-2014350 1712

envread.cH A D15-May-2014401 2420

error.3H A D15-May-2014770 4643

error.cH A D15-May-20141.2 KiB133110

error.hH A D15-May-2014619 3124

error_str.3H A D15-May-2014295 2017

error_str.cH A D15-May-20145.4 KiB268263

error_temp.3H A D15-May-2014553 2823

exit.hH A D15-May-2014157 104

ezcgi.cssH A D15-May-2014708 2515

ezcgircH A D15-May-2014921 1611

ezmlm-accept.1H A D15-May-2014477 3129

ezmlm-accept.shH A D15-May-2014788 3118

ezmlm-archive.1H A D15-May-20145.7 KiB179172

ezmlm-archive.cH A D15-May-201414.1 KiB447411

ezmlm-cgi.1H A D15-May-20149.8 KiB334316

ezmlm-cgi.cH A D15-May-201465.8 KiB2,2882,033

ezmlm-check.1H A D15-May-20141,005 5350

ezmlm-check.shH A D15-May-201417.8 KiB600580

ezmlm-checksub.1H A D15-May-20141.5 KiB8982

ezmlm-checksub.cH A D15-May-20141.3 KiB6656

ezmlm-clean.1H A D15-May-20143.3 KiB139131

ezmlm-clean.cH A D15-May-20147.7 KiB252179

ezmlm-confirm.1H A D15-May-20142.8 KiB118107

ezmlm-confirm.cH A D15-May-20146 KiB214173

ezmlm-cron.1H A D15-May-20145.5 KiB246236

ezmlm-cron.cH A D15-May-201414.2 KiB486444

ezmlm-dispatch.1H A D15-May-20142.6 KiB114112

ezmlm-dispatch.cH A D15-May-20145.6 KiB235208

ezmlm-gate.1H A D15-May-20143.5 KiB127120

ezmlm-gate.cH A D15-May-20143.7 KiB163139

ezmlm-get.1H A D15-May-201411 KiB488461

ezmlm-get.cH A D15-May-201439.9 KiB1,2821,117

ezmlm-glconf.1H A D15-May-20141.2 KiB5552

ezmlm-glconf.shH A D15-May-20142.9 KiB10867

ezmlm-idx.1H A D15-May-20142.3 KiB9892

ezmlm-idx.cH A D15-May-20148.7 KiB284235

ezmlm-idx.specH A D15-May-20146.3 KiB215168

ezmlm-idx.spec.templateH A D15-May-20146.3 KiB215171

ezmlm-import.1H A D15-May-20141 KiB5146

ezmlm-import.cH A D15-May-20143.2 KiB143123

ezmlm-issubn.1H A D15-May-20141.9 KiB9082

ezmlm-issubn.cH A D15-May-20141.3 KiB6352

ezmlm-limit.1H A D15-May-20142.9 KiB129121

ezmlm-limit.cH A D15-May-20143.1 KiB10791

ezmlm-list.1H A D15-May-20141.4 KiB7775

ezmlm-list.cH A D15-May-20141.5 KiB6959

ezmlm-make.1H A D15-May-201421.8 KiB969929

ezmlm-make.cH A D15-May-201422.9 KiB755659

ezmlm-manage.1H A D15-May-201414.9 KiB623585

ezmlm-manage.cH A D15-May-201439.5 KiB1,3711,203

ezmlm-moderate.1H A D15-May-20144.7 KiB177162

ezmlm-moderate.cH A D15-May-201413.2 KiB439371

ezmlm-receipt.1H A D15-May-20143.2 KiB130125

ezmlm-reject.1H A D15-May-20144.7 KiB199189

ezmlm-reject.cH A D15-May-201413 KiB418379

ezmlm-request.1H A D15-May-20146 KiB233216

ezmlm-request.cH A D15-May-201422.2 KiB694593

ezmlm-return.1H A D15-May-20142.4 KiB115111

ezmlm-return.cH A D15-May-201414.2 KiB477420

ezmlm-rmtab.1H A D15-May-20141.1 KiB5756

ezmlm-rmtab.cH A D15-May-2014927 4336

ezmlm-send.1H A D15-May-20148.9 KiB365335

ezmlm-send.cH A D15-May-201425.3 KiB757664

ezmlm-split.1H A D15-May-20145.4 KiB181165

ezmlm-split.cH A D15-May-20148.3 KiB273244

ezmlm-store.1H A D15-May-20147.8 KiB292275

ezmlm-store.cH A D15-May-201411.6 KiB382323

ezmlm-sub.1H A D15-May-20142.5 KiB124119

ezmlm-sub.cH A D15-May-2014343 139

ezmlm-subunsub.cH A D15-May-20142.5 KiB10996

ezmlm-test.1H A D15-May-20142.9 KiB117112

ezmlm-to40x-mysqlH A D15-May-2014468 1613

ezmlm-tstdig.1H A D15-May-20142.5 KiB126119

ezmlm-tstdig.cH A D15-May-20143.8 KiB129117

ezmlm-unsub.1H A D15-May-20142.3 KiB119114

ezmlm-unsub.cH A D15-May-2014342 139

ezmlm-warn.1H A D15-May-20142.7 KiB140131

ezmlm-warn.cH A D15-May-201412.7 KiB425371

ezmlm-weed.1H A D15-May-20142.2 KiB121100

ezmlm-weed.cH A D15-May-20146.5 KiB221200

ezmlm.5H A D15-May-201430.5 KiB1,1951,118

ezmlmglrcH A D15-May-20142.5 KiB9676

ezmlmglrc.5H A D15-May-20141.3 KiB6963

ezmlmrc.5H A D15-May-201412.8 KiB601593

ezmlmrc.templateH A D15-May-201411.4 KiB402401

ezmlmsubrcH A D15-May-20143.8 KiB157138

ezmlmsubrc.5H A D15-May-20142.5 KiB8076

fd.hH A D15-May-2014138 105

fd_copy.3H A D15-May-2014571 4541

fd_copy.cH A D15-May-2014280 1511

fd_move.3H A D15-May-2014501 4238

fd_move.cH A D15-May-2014211 139

fill-template.shH A D15-May-201492 32

find-systype.shH A D15-May-20143.3 KiB147112

fmt.hH A D15-May-20141.1 KiB2820

fmt_str.cH A D15-May-2014206 1210

fmt_uint.cH A D15-May-2014138 95

fmt_uint0.cH A D15-May-2014264 139

fmt_ulong.cH A D15-May-2014325 1713

fork.hH A D15-May-201483 85

gen_alloc.hH A D15-May-2014218 105

gen_allocdefs.hH A D15-May-20141.2 KiB3932

getconf.cH A D15-May-20141.5 KiB6761

getconf.hH A D15-May-2014433 1310

getconf_ulong.cH A D15-May-2014755 2925

getconfopt.cH A D15-May-20142.2 KiB11197

getconfopt.hH A D15-May-20141.8 KiB6153

getconfopt_copy.cH A D15-May-2014272 1714

getconfopt_cstr.cH A D15-May-2014528 2619

getconfopt_cstr_flag.cH A D15-May-2014336 2218

getconfopt_flag.cH A D15-May-2014512 3428

getconfopt_str.cH A D15-May-2014350 2218

getconfopt_ulong.cH A D15-May-2014359 2319

getconfopt_ulong_flag.cH A D15-May-2014341 2218

getconfopt_version.cH A D15-May-2014263 1714

gethdrln.cH A D15-May-2014508 2319

getln.3H A D15-May-2014693 5247

getln.cH A D15-May-2014400 2016

getln.hH A D15-May-2014361 1410

getln2.3H A D15-May-2014951 6559

getln2.cH A D15-May-2014589 2522

getopt.3H A D15-May-20144 KiB236222

hasattribute.h1H A D15-May-201479 54

hasattribute.h2H A D15-May-201448 32

haswaitp.h1H A D15-May-201468 42

haswaitp.h2H A D15-May-201489 53

hdr.hH A D15-May-2014854 2924

hdr_add.cH A D15-May-2014531 3125

hdr_boundary.cH A D15-May-2014250 1411

hdr_ctboundary.cH A D15-May-2014234 1613

hdr_datemsgid.cH A D15-May-20141.1 KiB4036

hdr_from.cH A D15-May-2014495 2522

hdr_listsubject.cH A D15-May-2014565 2421

hdr_mime.cH A D15-May-2014956 4638

hdr_subject.cH A D15-May-2014186 129

hdr_transferenc.cH A D15-May-2014331 1815

idx.hH A D03-May-202210 KiB291131

idxthread.cH A D15-May-201421.3 KiB656568

idxthread.hH A D15-May-2014838 3328

installer.cH A D15-May-20143.4 KiB157131

iopause.cH A D15-May-20141.7 KiB7956

iopause.h1H A D15-May-2014284 2013

iopause.h2H A D15-May-2014317 1912

ip4.hH A D15-May-2014158 106

ip4_scan.cH A D15-May-2014612 2217

lock.hH A D15-May-2014148 105

lock_ex.cH A D15-May-2014275 1410

lockfile.cH A D15-May-2014347 1816

log.cH A D15-May-20141.4 KiB5445

log.hH A D15-May-2014140 85

make-compile.shH A D15-May-2014132 43

make-libcompile.shH A D15-May-2014139 43

make-load.shH A D15-May-201477 32

make-makelib.shH A D15-May-2014210 1715

make-makeso.shH A D15-May-201441 21

make-messages-c.shH A D15-May-201461 54

make-messages.shH A D15-May-201438 43

makehash.cH A D15-May-20141.7 KiB6247

makehash.hH A D15-May-2014204 116

makelang.shH A D15-May-2014198 129

makepath.cH A D15-May-2014472 2119

messages.cH A D15-May-20142.8 KiB138115

messages.hH A D15-May-2014442 1410

mime.hH A D15-May-20142 KiB8056

ndelay.hH A D15-May-201498 85

ndelay_on.cH A D15-May-2014245 1510

now.3H A D15-May-2014257 1513

now.cH A D15-May-2014112 97

now.hH A D15-May-201491 95

open.hH A D15-May-2014268 138

open_append.cH A D15-May-2014205 95

open_read.cH A D15-May-2014177 95

open_trunc.cH A D15-May-2014203 95

openreadclose.cH A D15-May-2014370 1915

openreadclose.hH A D15-May-2014144 95

qmail.cH A D15-May-20144.6 KiB173155

qmail.hH A D15-May-2014662 2823

qmail_copy.cH A D15-May-2014717 4542

quote.cH A D15-May-20141.7 KiB7560

quote.hH A D15-May-2014197 96

readclose.cH A D15-May-2014575 2419

readclose.hH A D15-May-2014181 106

readwrite.hH A D15-May-2014119 96

scan.hH A D15-May-20141.4 KiB3122

scan_8long.cH A D15-May-2014299 1311

scan_ulong.cH A D15-May-2014339 1713

seek.hH A D15-May-2014302 189

seek_set.cH A D15-May-2014229 116

select.h1H A D15-May-2014135 117

select.h2H A D15-May-2014159 128

sender.cH A D15-May-20143.6 KiB138108

sender.hH A D15-May-201480 74

sgetopt.3H A D15-May-2014463 2927

sgetopt.cH A D15-May-20141.3 KiB5336

sgetopt.hH A D15-May-2014492 2417

sig.hH A D15-May-2014149 106

sig_catch.cH A D15-May-2014344 1715

sig_pipe.cH A D15-May-2014155 64

slurp.cH A D15-May-2014329 1816

slurp.hH A D15-May-2014124 85

slurpclose.cH A D15-May-2014407 1816

slurpclose.hH A D15-May-2014107 74

socket.hH A D15-May-2014649 2317

socket_bind.cH A D15-May-2014792 3628

socket_conn.cH A D15-May-2014722 3628

socket_tcp.cH A D15-May-2014356 2015

socket_udp.cH A D15-May-2014355 2015

str.hH A D15-May-2014475 1711

str_chr.cH A D15-May-2014374 2015

str_cpy.cH A D15-May-2014303 1512

str_diff.cH A D15-May-2014463 1813

str_diffn.cH A D15-May-2014524 1613

str_len.cH A D15-May-2014275 1712

str_rchr.cH A D15-May-2014467 2418

str_start.cH A D15-May-2014366 1611

stralloc.3H A D15-May-20142.6 KiB161143

stralloc.hH A D15-May-20141.1 KiB3222

stralloc_arts.cH A D15-May-2014204 119

stralloc_cat.cH A D15-May-2014198 106

stralloc_catb.cH A D15-May-2014361 1511

stralloc_cats.cH A D15-May-2014194 117

stralloc_copy.cH A D15-May-2014249 116

stralloc_eady.cH A D15-May-2014248 95

stralloc_num.cH A D15-May-2014649 3324

stralloc_opyb.cH A D15-May-2014296 1410

stralloc_opys.cH A D15-May-2014196 117

stralloc_pend.cH A D15-May-2014198 84

strerr.cH A D15-May-20141.1 KiB5749

strerr.hH A D15-May-20143.7 KiB9684

sub-mysql.cH A D03-May-20227.8 KiB268214

sub-pgsql.cH A D15-May-20148.1 KiB293227

sub-sqlite3.cH A D15-May-20147.1 KiB258197

sub-std.cH A D15-May-201415 KiB579470

sub_sql.cH A D15-May-201417.1 KiB500381

sub_sql.hH A D15-May-20142.9 KiB8779

sub_std.hH A D15-May-2014937 4331

subdb.cH A D15-May-20147.5 KiB304266

subdb.hH A D15-May-20143 KiB11995

subfd.3H A D15-May-20141.1 KiB6253

subfd.hH A D15-May-2014162 117

subfderr.cH A D15-May-2014189 86

subfdin.cH A D15-May-2014185 86

subfdout.cH A D15-May-2014190 86

subgetopt.3H A D15-May-20145.7 KiB358331

subgetopt.cH A D15-May-20141.4 KiB6860

subgetopt.hH A D15-May-2014613 2720

subhash.cH A D15-May-2014277 1714

subhash.hH A D15-May-2014180 96

substdi.cH A D15-May-20141.3 KiB7562

substdio.3H A D15-May-20142.2 KiB116106

substdio.cH A D15-May-2014168 119

substdio.hH A D15-May-20141.4 KiB5137

substdio_copy.3H A D15-May-2014580 4237

substdio_copy.cH A D15-May-2014298 1714

substdio_in.3H A D15-May-20142.4 KiB141126

substdio_out.3H A D15-May-20141.8 KiB10089

substdo.cH A D15-May-20141.7 KiB8973

surf.3H A D15-May-2014468 2421

surf.cH A D15-May-2014730 2620

surf.hH A D15-May-2014134 85

surfpcs.3H A D15-May-20141.1 KiB7061

surfpcs.cH A D15-May-20141.7 KiB7666

surfpcs.hH A D15-May-2014449 2216

tai.hH A D15-May-2014604 2717

tai_pack.cH A D15-May-2014331 1914

taia.hH A D15-May-2014972 3524

taia_add.cH A D15-May-2014427 2115

taia_approx.cH A D15-May-2014149 95

taia_frac.cH A D15-May-2014160 95

taia_less.cH A D15-May-2014329 159

taia_now.cH A D15-May-2014289 1511

taia_pack.cH A D15-May-2014378 2317

taia_sub.cH A D15-May-2014478 2417

taia_uint.cH A D15-May-2014192 137

test-getconfopt.cH A D15-May-20142.2 KiB9885

tryattribute.cH A D15-May-201438 21

trycpp.cH A D15-May-2014144 107

trydrent.cH A D15-May-2014136 117

tryflock.cH A D15-May-2014161 117

trylib.cH A D15-May-201415 54

trypoll.cH A D15-May-2014376 2113

trysgact.cH A D15-May-2014211 139

trysysel.cH A D15-May-2014110 97

tryulong32.cH A D15-May-2014433 1511

tryulong64.cH A D15-May-2014379 1411

trywaitp.cH A D15-May-2014120 106

uint16.hH A D15-May-2014263 128

uint16_pack.cH A D15-May-2014218 1611

uint16_unpack.cH A D15-May-2014400 2617

uint32.h1H A D15-May-2014355 1510

uint32.h2H A D15-May-2014356 1510

uint32_unpack.cH A D15-May-2014600 3425

uint64.h1H A D15-May-2014102 95

uint64.h2H A D15-May-201497 95

unfoldHDR.cH A D15-May-20148.9 KiB297247

wait.3H A D15-May-20141.6 KiB9484

wait.hH A D15-May-2014278 148

wait_pid.cH A D15-May-2014730 4228

warn-auto.shH A D15-May-201464 30

wrap.hH A D15-May-2014585 2117

wrap_chdir.cH A D15-May-2014210 1210

wrap_execbin.cH A D15-May-2014580 3225

wrap_execsh.cH A D15-May-2014181 1210

wrap_execv.cH A D15-May-2014570 2924

wrap_exitcode.cH A D15-May-2014385 2018

wrap_fork.cH A D15-May-2014243 1513

wrap_rename.cH A D15-May-2014258 1210

wrap_stat.cH A D15-May-2014346 2016

wrap_waitpid.cH A D15-May-2014290 1614

yyyymm.hH A D15-May-2014162 116

README

1(c) 1997, 1998, 1999, 2004, 2005, 2006, 2008, 2009
2  Fred Lindberg, lindberg@id.wustl.edu (code+docs+faq)
3  Fred B. Ringel, fredr@rivertown.net (faq)
4  Bruce Guenter, bruce@untroubled.org (code+docs)
5
6This software is distributed under the GNU General Public Licence as
7published by the Free Software Foundation.  See the file LICENSE for
8the conditions under which this software is made available.
9
10Like any other piece of software (and information generally), ezmlm-idx
11comes with NO WARRANTY.
12
13This software originated from ezmlm-0.53, written by Dan J. Bernstein,
14which has now been placed into the public domain.
15
16ezmlm provided basic message distribution, subscriber address handling,
17message archiving (single quoted message retrieval only), and bounce
18handling. ezmlm-idx adds multi-message threaded archive retrieval, digests,
19remote administration, message and subscription moderation, subscriber-only
20restrictions, message trailer, subject prefix, subscriber name storage,
21customizable setup, multi-language and MIME support and more. In addition,
22improved bounce handling, case-insensitive subscriber address storage,
23and support for distributed lists (main + sublist transparent to the
24subscriber). Ezmlm-idx now includes optional support for MySQL or
25PostgreSQL subscriber databases.
26
27See INSTALL for installation instructions.
28See UPGRADE to upgrade from a previous version of ezmlm-idx.
29See CHANGES to see what's new in this version.
30See FAQ for more info on ezmlm(-idx) functions and setup.
31See FILES for a list of files in this package.
32
33NOTE: Some ezmlmrc translations are not up to date.  Please check the
34status of the translations at http://www.ezmlm.org/lang/ and if your
35language is out of date, consider submitting corrections.  Your
36contribution will be acknowledged below in the next ezmlm-idx release.
37
38The RPM will put ezmlm-cgi in the bin directory. To use it, you must manually
39move it to a cgi-bin directory, set ownership and SUID (if needed), and
40set up /ezmlm/ezcgirc.
41
42See http://cr.yp.to/ezmlm.html for the latest information about ezmlm.
43
44See http://www.ezmlm.org/ for the latest version of ezmlm-idx, as well
45as on-line versions of the FAQ and docs.
46
47Mail ``ezmlm-subscribe@lists.untroubled.org'' to join the ezmlm mailing
48list (low traffic). This list is run by Bruce Guenter using ezmlm-idx.
49The archive is viewable at http://lists.untroubled.org/?list=ezmlm
50
51Send general comments, questions, bug reports, and patches to:
52	ezmlm@lists.untroubled.org
53
54ACKNOWLEDGEMENTS
55
56Translations have been provided by:
57
58TRANSLATIONS (from newest to oldest)
59nl:	Arthur Muller <Arthur@FutureQuest.net>
60it:	Tullio Andreatta <t.andreatta@troppoavanti.it>
61nl:	Maurice Snellen <maurice@hypercube.demon.nl>
62de:	Lars Kruse <lists@sumpfralle.de>
63id:	PakOgah <pakogah@pala.bo-tak.info>
64es:	Ruben Cardenal <ruben@ruben.cn>
65sv:	Mads E. Eilertsen <mads.e.eilertsen@hist.no>
66fr:	Jean-Marc Lasgouttes
67
68Older translation credits:
69de:	Frank Tegtmeyer
70ja:	Masashi Fujita (objectx@polyphony.scei.co.jp)
71da:	Torben Fjerdingstad (unitfj@tfj.uni-c.dk)
72fr:	Frank Denis (j@industrie.capgemini.fr)
73sv:	Sebastian Andersson (sa@hogia.net)
74pl:	Sergiusz Pawlowicz (ser@arch.pwr.wroc.pl)
75pt_BR:	Wanderlei Antonio Cavassin (cavassin@connectiva.com.br)
76cs:	Jan Kasprzak (kas@informatics.muni.cz)
77ru:	Roman V Isaev (rm@techno.ru)
78id:	Aria Prima Novianto (aria@isnet.org)
79it:	Roberto De Carlo (rodeca@flashnet.it)
80es:	Vicent Mas, Francesc Alted, Sonia Lorente, and Cyndy DePoy
81cn_GB:	HaiFeng Guo (haifeng@ms.lawton.com.cn)
82hu:	Julian Severn-nek (http://js.hu/)
83nl:	Willem <willem@king-pin.nl>
84
85ACKNOWLEDGEMENTS (from Fred Lindberg)
86- Fred B. Ringel, first and foremost, for a great collaboration, ideas, testing,
87  docs clarification. This makes it so much more fun.
88- Dan J. Bernstein for qmail, ezmlm, and great libraries.
89- Tullio Andreatta, for the confirm (-y option) patches.
90- Toshinori Maeno (TM; tmaeno@hpcl.titech.ac.jp) for finding an ezmlm-idx-0.20
91  bug, and MIME suggestions, suggestions about hopcount and received headers,
92  return-path header in archive, sublist loop detection, ezmlm-limit suggestion,
93  many other suggestions and explanations, help to get ezmlm-cgi Japanese
94  support to work, as well as pre-release testing.
95- Frank Tegtmeyer for inciting digests and format info/suggestions, and for
96  ezmlmrc.de.
97- Magnus St�l�ker (MAS; stalaker@umc.se) for the PostgresSQL interface.
98- Mark Delany for the original ezmlm-issub and for suggesting reordering
99  unlink() and doit() in ezmlm-warn.
100- Raul Miller and Chris Garrigues for format info/suggestions.
101- Thomas Erskine (TEE; tom@crc.doc.ca) for fix to clean sunos-4.1.3 compiles
102  and pre-release compilation on many platforms, fixes for bash-isms in
103  ezmlm-check, and testing.
104- Shuhei Kobayashi (SK; shuhei-k@jaist.ac.jp) for MIME corrections/suggestions,
105  X-sequence suggestions, ezmlm-check/make corrections, and pre-release testing.
106- Yusuf Goolamabbas (YG; yusufg@krdl.org.sg) and the Mutt developers for
107  pointing out outdated MIME, ezmlmrc improvements, outformat bug, suggestion
108  about ezmlm-moderate -r switch, and pre-release testing.
109- Brian Gentry (BG; gentry@usaccess-inc.com) for reporting the
110  ezmlm-moderate-0.12 exit code bug.
111- Anand R. Buddhev (ARB; arb@iconnect.co.ke) for fix to clean BSDI 2.1 compiles
112  and pre-release testing.
113- Masashi Fujita (MF; objectx@polyphony.scei.co.jp) for fix to clean SGI
114  compiles, lint advice, MIME suggestions, pre-release testing, a patch for
115  the ezmlm-make-0.21 -c bug, ezmlmrc.ja, and finding postmsg bug in 0.301.
116- Matthew D. Stock (MDS; stock@perdix.acsu.buffalo.edu) for pre-release testing.
117- Ximenes Zalteca for finding an ezmlm-send-0.21 bug.
118- Jukka Suomela (JS; jukka@narnia.tky.hut.fi) for inciting the ezmlm-send -cC
119  switch.
120- John White (johnjohn@triceratops.com) for questions leading to ezmlm-tstdig,
121  and for testing the example script.
122- Torben Fjerdingstad (TF; unitfj@tfj.uni-c.dk) for testing case-insensitive
123  issub.c and subscribe.c, for TARGETS, for suggesting a no-copy-to-SENDER
124  option, for ezmlmrc.da, for reporting missing MIME end for base64/QP
125  moderated [un]sub confirms, and for pre-release testing.
126- Shinya O'Hira (SOH; Shinya_Oohira@justsystem.co.jp) for reporting the
127  ezmlm-make-0.22 lock file name bug and for testing the fix. Also for many
128  helpful suggestions and hard work testing rfc2047 subject support.
129- Sadhu(sadhu@aloha.net) & Tracy Reed (TR; treed@ultraviolet.org) for reporting
130  the ezmlm-send-0.22 undefined SENDER bug, and testing the fix.
131- Scott Balantyne (SDB; sdb@ssr.com) for inciting the modifications for digest
132  out of dir/editor.
133- Frank Denis (j@industrie.capgemini.fr) for ezmlmrc.fr.
134- Marc Evans (marc@destek.net) for reporting the ezmlm-make-0.221 64-bit bug
135  and pre-release testing, and inciting, improving, and testing ezmlm-test.
136- Vince Vielhaber (VV; vev@michvhf.com) for reporting ezmlm-check problems with
137  non-bash and testing fixes.
138- Andrew Pam (AP; xanni@xanadu.net) for suggesting the ezmlm-idx -d switch and
139  reporting the ezmlm-gate failure on NULL $SENDER bug.
140- Glen Stewart (GS; glen_stewart@associate.com) for reminding me about command
141  case insensitivity and ezmlmrc typo fixes.
142- Kenji Ikeda (KI; noroi@nt.is.dnp.co.jp) for a patch to ezmlm-idx-0.23 to get
143  message numbers in subjects. I've added code to ezmlm-idx-0.30 implementing
144  this is a similar manner. Sen Nagata (sen_ml@eccosys.com) for suggesting this
145  earlier. Bugfix for missing MIME boundary in -index reply.
146- Sebastian Andersson (SA; sa@hogia.net) for ezmlmrc.sv, MIME suggestions,
147  ezmlm-weed patch, ezmlmrc version check suggestion and pre-release testing.
148- Giorgos Stathakopoulos (GS; stathako@cti.gr) for pre-release testing.
149- David Summers (DS; david@summersoft.fay.ar.us) for pre-release testing,
150  reporting a ezmlm-check bug and SPEC files for rpm:s.
151- Steinar Haug (STH; sthaug@nethelp.no) for pointing out missing ';' in
152  ezmlmrc (caused problems with /bin/sh on FreeBSD), and the trigger message
153  received lines in the digest header.
154- Peter Hunter (PH) for suggesting dir/headeradd and list address in digest
155  headers and for reporting a "cosmetic" bug in subscription logging.
156- Jim Simmons (JS) for finding the n/d switch misnaming in ezmlmrc for text file
157  editing.
158- Sergiusz Pawlowicz (SP; ser@arch.pwr.wroc.pl) for ezmlmrc.pl, and many entries
159  for mimeremove.
160- Wanderlei Antonio Cavassin (WAC; cavassin@connectiva.com.br) for
161  ezmlmrc.pt_BR.
162- Jim Simmons (     ) for finding a missing-newline-mime bug in
163  ezmlm-moderate/store/clean.
164- Monte Mitzelfelt (MM; monte@gonefishing.org) for suggesting alternative
165  From: for ezmlm-manage help messages to break responder loops.
166- Louis Larry (LL; luois@kediri.webindonesia.com) for reporting a 0.311 prefix
167  handling bug.
168- Sigi Remsmurr (SR; service@isk.de), Bill Nugent (whn@topelo.lopi.com), James
169  Smallacombe (JS; up@3am) for ezmlmrc corrections/suggestions.
170- Matthew Saunders (MS; matts@easynet.net) for ezmlm-glconf.sh corrections and
171  reporting crashability of ezmlm-get by abnormal use (fixed).
172- Petr Novotny (PN; Petr.Novotny@antek.cz) for ezdomo.tar.gz corrections.
173- Evan Champion (EC; evanc@synapse.net) for ezmlm-request bug report.
174- Jeff Hill (JH; jhill@hronline.com) for ezmlm-reject bug report.
175- Bruno Wolff (BW; bruno@cerberus.umn.edu) for Ultrix fixes.
176- Butch Evans (BE; butch@###.com) for reporting trailer problems with
177  multipart/alternative messages and testing fix.
178- Kragen Sitaker (KS; kragen@pobox.com) for reporting ezmlm-manage -get bug.
179- Lars B. Rasmusson (LBR; lbr@mjolner.dk) for prerelease testing with sun cc.
180- Mike McLeish (MMcL; Mike.Mcleish@chatsoft.com) for reporting problems
181  using the 'x' format and testing the fix.
182- Jan Kasprzak (JK; kas@informatics.muni.cz) for ezmlmrc.cs and headerremove
183  suggestions.
184- Matt McGlynn for reporting 0.32 ezmlmrc -return omission.
185- Roman V Isaev (RVI; rm@techno.ru) for ezmlmrc.ru as well as suggestions
186  on -allow automation.
187- Aria Prima Novianto (APN; aria@isnet.org) for ezmlmrc.id.
188- Roberto De Carlo (RDC; rodeca@flashnet.it) for ezmlmrc.it.
189- Vicent Mas, Francesc Alted, Sonia Lorente, and Cyndy DePoy for ezmlmrc.es.
190- HaiFeng Guo (HFG; haifeng@ms.lawton.com.cn) for ezmlmrc.cn_GB.
191- Julian Severn-nek (http://js.hu/) for ezmlmrc.hu.
192- Willem <willem@king-pin.nl> for ezmlmrc.nl.
193- Benjamin Pflugman (BPF; philemon@spin.de) for reporting multipart/signed
194  problems and testing fix.
195- Rik Myers (RM; rik@sumthin.nu), Daniel Mattos (DM; daniel@tiii.com) and others
196  for helping make ezmlm-test less platform-sensitive.
197- Michael Hirohama (MH; michael@sooth.com) for reporting Outlook problems and
198  testing a work-around.
199- Mate Wierdl (MW; mw@wierdlpc.msci.memphis.edu) for SPEC file kit and
200  suggestions on ezmlm-test, "it", etc, and pre-release testing.
201- Numerous users for suggestions/corrections for the documentation.
202- I'm sure I've forgotten others who have contributed ideas, questions,
203  comments. Thanks!
204

README.mysql

1INFORMATION ON BUILDING/USING EZMLM WITH MYSQL SUPPORT
2
3Copyright 1999 Frederik Lindberg, lindberg@id.wustl.edu
4Copyright 2007 Bruce Guenter, bruce@untroubled.org
5		You may use under GPL.
6
7For information on MySQL, see http://www.tcx.se.
8
9Most of this information is available in FAQ.
10
11If you are interested in contributing/testing a subscriber db interface
12for another SQL server, please see README.std and the routines here, and
13contact bruce@untroubled.org (it may already be in process). See end of
14this file for other ways to contribute.
15
16conf-mysql must be edited to reflect your system. On many systems, you
17also need to include ``-lsocket'', as well as change the paths to the
18/usr/local equivalents. For the i386.rpm-based systems, you need at
19least MySQL-devel to build the files. Look at your mysql docs for more info.
20
21TABLES USED FOR (My)SQL SUPPORT
22
23The basic philosophy is that the database can be on any host (if you use
24SENDER restrictions, connectivity to the main host is more important than
25to the sublists), and you choose the database and "table root" names. The
26default database is ``ezmlm'' and the default table root is ``list''. Each
27list has a separate table root. Any number of lists can share a database.
28
29The main list address table is named with the table root only, others have
30that name with various suffixes. In the following ``list'' is used as the
31table root.
32
33ADDRESS TABLES
34list		subscriber addresses
35list_slog	subscriber address log
36list_allow	subscriber aliases for posts on SENDER checked lists.
37list_allow_slog	subscriber log for list_allow
38list_deny	blacklisted addresses for posts on SENDER checked lists.
39list_deny_slog	log for list_deny.
40list_mod	moderator addresses
41list_mod_slog	log for list_mod
42list_digest	subscriber log for digest list.
43list_digest_slog	log for list_digest
44
45MESSAGE LOGGING TABLES
46list_cookie	message cookie table for main list
47list_mlog	message logging table for main list
48list_digest_cookie	message cookie table for digest list
49list_digest_mlog	message logging table for digest list
50
51SUBLIST SPLIT TABLES
52list_name	sublist split table for main list
53list_digest_name	sublist split table for digest list.
54
55The address tables contain (address,domain,hash,h,num). For normal
56lists only the address field is used. For main->sublist clusters, the other
57fields are used for load splitting. The domain is the first up to 3 characters
58of the last part of the domain name. The hash is a address hash [0-52] differnt
59from the one used by ezmlm for splitting within DIR/subscribers. When using
60the address field as a primary key, the size of the index was unreasonable.
61Therefore, ``num'' is used as a dummy primary key, and ``h'' (a 32 bit hash
62of the address) is used as an index. This markedly speeds up (un)sub with
63large (>30,000 rows) subscriber tables.
64
65The *_slog tables contain the same info as DIR/Log, i.e. address, timestamp,
66entry-type, entry-direction, and fromline. The entry-type is the first letter
67of the type of entry (probe, manual, `` '' for normal), entry-direction is
68``+'' for addition, ``-'' for removal. Fromline is the From: header contents
69taken from the subscribe confirm message or from ezmlm-sub (if used with -n).
70It is blank for all address removals, and may be blank also for additions. It
71is used by the list-log.xx command. It is trivial to JOIN this table with the
72address table to get e.g. subsciber names, subscription dates, etc. These
73tables also have the 32-bit hash ``h'' as an index. Joins should be done on
74``h'' as well as ``address'' for better performance.
75
76The *_cookie tables contain message number, timestamp, and cookie. For each
77message a pseudo-random cookie is generated that is ``impossible'' to guess
78beforehand. For lists with sublists, this is used as basic authentication,
79i.e. the sublist will refuse to process a message that doesn't contain the
80correct cookie or that the sublist has already successfully processed.
81
82The *_mlog tables contain log entries from main and sublists. These are
83timestamp, listno, done. Listno is the lowest listnumber for an active list
84entry with the name of this sublist as looked up in the *_name table. Done
85is -1 for bounce, 0 for arrived, 1 for finished processing, and 2 for receipt
86received. The routines are set up so that only the first attempt for each
87combination (listno,code) is logged.
88
89The *_name tables contain listno,name,domain,hash_lo,hash_hi,msgnum_lo,
90msgnum_hi,notuse. Listno is auto_increment and unique. Name is the name of the
91sublist. domain is the last up to 3 characters of the top domain name for
92addresses served by this list (default = ''). It is is '', the list servers
93all_domains_that_are_not_served_by_another list (in addition to domain '').
94Of the addresses that match the domain criterion, the list serves the subset
95with hash between hash_lo and hash_hi (defaults 0, 52). Any entry is ingnored if
96notuse != 0 OR the current message number is not between msgnum_lo and
97msgnum_hi.
98
99For normal lists that are not distributed (i.e. they are a single list),
100entries in the *_name tables are not needed and logging is not very
101relevant.
102
103For most lists, the only addresses that are stored in the SQL database are
104the subscribers of list and digest, and the ``allow'' aliases. It is NOT
105normally advisable to store moderator addresses there, since they are
106needed only at the main list and secrecy is more important. ``Deny'' addresses
107are few and again only needed at the main list. ``Allow'' are put in the
108SQL database when using the default ezmlmrc file only to make all relevant
109addresses manipulatable via the SQL server. The other tables are created, in
110case they are  wanted (the cost for having them as empty table is zero). The
111basedir/sql file is the decision point. If it exists, an SQL table is used;
112if not a local ezmlm db is used.
113
114CONTRIBUTIONS REQESTED
115
116I would be very grateful if there are users out there willing to do any of
117the following and contribute it to this package. Please check with me first
118(bruce@untroubled.org), as the project may already be in progress/done.
119
1201. Interfaces for other SQL servers. Oracle, SyBase, ...
121
1222. A GUI admin utility to add/remove/manipulate the sublist split, essentially
123   by modifying list_[digest_]name in a safe way. Ideally WWW if it can be
124   done securely. If you use some standard interface (JDBC/DBD) it would be
125   useful also with other SQL severs. This could even be an Access program
126   using ODBC, although writing it for a platform running qmail/ezmlm makes
127   most sense.
128
1293. a WWW GUI that allows users to subscribe/unsubscribe in a safe way. A random
130   password would be created the first time and stored in a new address->pw
131   table and mailed to the subscriber address. With that password, the user
132   would be able to [un]subscribe to lists, edit the name (for compatibility
133   implemented by adding a subscribe line to list_[digest]slog). Add/remove
134   aliases. Ideally, it should also allow searching by subscriber name. This
135   would search *_slog.fromline. If less that 'x' alternatives are found, the
136   user would be presented with names (not addresses), allowing the user to
137   cause the subscription name and password to be sent to the respective
138   subscription address. With that info, the subscriber can then unsubscribe,
139   even if s/he has forgotten the subscription address. It is complicated
140   slightly by the fact that ``fromline'' is the crude line and needs to be
141   rfc822 parsed. Again, use of a standard interface is encouraged to make it
142   compatible also with other SQL servers.
143
144The aim of all this is to make it easy to use ezmlm to run very large lists,
145easy to set up sites that handle subscriber interaction, archive access, etc,
146and hopefully easier to integrate many ezmlm as done by some WWW sites today.
147
148

README.pgsql

1INFORMATION ON BUILDING/USING EZMLM WITH POSTGRESQL SUPPORT
2
3Original source:
4(c) 1999, Frederik Lindberg, lindberg@id.wustl.edu
5		You may use under GPL.
6
7and for PostgreSQL modifications:
8(c) 1999, Magnus St�l�ker, stalaker@umc.se
9
10Rewritten as a plugin by:
11(c) 2007 Bruce Guenter, bruce@untroubled.org
12
13For information on PostgreSQL, see http://www.postgresql.org/
14
15This version of the PostgresSQL supports the basic subscriber address
16database and subscription logging. The log that is searched by the -log.
17command is the local listdir/Log file, NOT the SQL database. Message
18logging is not supported, and central admin of list clusters is not
19supported. Still, the current support covers the functionality used in
2099% of lists.
21
22Most of this information is available in FAQ.
23
24If you are interested in contributing/testing a subscriber db interface
25for another SQL server, please see README.std and the routines here,
26and contact bruce@untroubled.org (it may already be in process). See end
27of this file for other ways to contribute.
28
29conf-mysql must be edited to reflect your system. On many systems, you
30also need to include ``-lsocket'', as well as change the paths to the
31/usr/local equivalents. For the i386.rpm-based systems, you need at
32least MySQL-devel to build the files. Look at your mysql docs for more info.
33
34TABLES USED FOR (My)SQL SUPPORT
35
36The basic philosophy is that the database can be on any host (if you use
37SENDER restrictions, connectivity to the main host is more important than
38to the sublists), and you choose the database and "table root" names. The
39default database is ``ezmlm'' and the default table root is ``list''. Each
40list has a separate table root. Any number of lists can share a database.
41
42The main list address table is named with the table root only, others have
43that name with various suffixes. In the following ``list'' is used as the
44table root.
45
46ADDRESS TABLES
47list		subscriber addresses
48list_slog	subscriber address log
49list_allow	subscriber aliases for posts on SENDER checked lists.
50list_allow_slog	subscriber log for list_allow
51list_deny	blacklisted addresses for posts on SENDER checked lists.
52list_deny_slog	log for list_deny.
53list_mod	moderator addresses
54list_mod_slog	log for list_mod
55list_digest	subscriber log for digest list.
56list_digest_slog	log for list_digest
57
58MESSAGE LOGGING TABLES (not supported by this version of the interface)
59list_cookie	message cookie table for main list
60list_mlog	message logging table for main list
61list_digest_cookie	message cookie table for digest list
62list_digest_mlog	message logging table for digest list
63
64SUBLIST SPLIT TABLES (not supported by this version of the interface)
65list_name	sublist split table for main list
66list_digest_name	sublist split table for digest list.
67
68The address tables contain (address,domain,hash,h,num). For normal
69lists only the address field is used. For main->sublist clusters, the other
70fields are used for load splitting. The domain is the first up to 3 characters
71of the last part of the domain name. The hash is a address hash [0-52] differnt
72from the one used by ezmlm for splitting within DIR/subscribers. When using
73the address field as a primary key, the size of the index was unreasonable.
74Therefore, ``num'' is used as a dummy primary key, and ``h'' (a 32 bit hash
75of the address) is used as an index. This markedly speeds up (un)sub with
76large (>30,000 rows) subscriber tables.
77
78The *_slog tables contain the same info as DIR/Log, i.e. address, timestamp,
79entry-type, entry-direction, and fromline. The entry-type is the first letter
80of the type of entry (probe, manual, `` '' for normal), entry-direction is
81``+'' for addition, ``-'' for removal. Fromline is the From: header contents
82taken from the subscribe confirm message or from ezmlm-sub (if used with -n).
83It is blank for all address removals, and may be blank also for additions. It
84is used by the list-log.xx command. It is trivial to JOIN this table with the
85address table to get e.g. subsciber names, subscription dates, etc. These
86tables also have the 32-bit hash ``h'' as an index. Joins should be done on
87``h'' as well as ``address'' for better performance.
88
89The *_cookie tables contain message number, timestamp, and cookie. For each
90message a pseudo-random cookie is generated that is ``impossible'' to guess
91beforehand. For lists with sublists, this is used as basic authentication,
92i.e. the sublist will refuse to process a message that doesn't contain the
93correct cookie or that the sublist has already successfully processed.
94
95The *_mlog tables contain log entries from main and sublists. These are
96timestamp, listno, done. Listno is the lowest listnumber for an active list
97entry with the name of this sublist as looked up in the *_name table. Done
98is -1 for bounce, 0 for arrived, 1 for finished processing, and 2 for receipt
99received. The routines are set up so that only the first attempt for each
100combination (listno,code) is logged.
101
102The *_name tables contain listno,name,domain,hash_lo,hash_hi,msgnum_lo,
103msgnum_hi,notuse. Listno is auto_increment and unique. Name is the name of the
104sublist. domain is the last up to 3 characters of the top domain name for
105addresses served by this list (default = ''). It is is '', the list servers
106all_domains_that_are_not_served_by_another list (in addition to domain '').
107Of the addresses that match the domain criterion, the list serves the subset
108with hash between hash_lo and hash_hi (defaults 0, 52). Any entry is ingnored if
109notuse != 0 OR the current message number is not between msgnum_lo and
110msgnum_hi.
111
112For normal lists that are not distributed (i.e. they are a single list),
113entries in the *_name tables are not needed and logging is not very
114relevant.
115
116For most lists, the only addresses that are stored in the SQL database are
117the subscribers of list and digest, and the ``allow'' aliases. It is NOT
118normally advisable to store moderator addresses there, since they are
119needed only at the main list and secrecy is more important. ``Deny'' addresses
120are few and again only needed at the main list. ``Allow'' are put in the
121SQL database when using the default ezmlmrc file only to make all relevant
122addresses manipulatable via the SQL server. The other tables are created, in
123case they are  wanted (the cost for having them as empty table is zero). The
124basedir/sql file is the decision point. If it exists, an SQL table is used;
125if not a local ezmlm db is used.
126
127CONTRIBUTIONS REQESTED
128
129I would be very grateful if there are users out there willing to do any of
130the following and contribute it to this package. Please check with me first
131(bruce@untroubled.org), as the project may already be in progress/done.
132
1331. Interfaces for other SQL servers. Oracle, SyBase, ...
134
1352. A GUI admin utility to add/remove/manipulate the sublist split, essentially
136   by modifying list_[digest_]name in a safe way. Ideally WWW if it can be
137   done securely. If you use some standard interface (JDBC/DBD) it would be
138   useful also with other SQL severs. This could even be an Access program
139   using ODBC, although writing it for a platform running qmail/ezmlm makes
140   most sense.
141
1423. a WWW GUI that allows users to subscribe/unsubscribe in a safe way. A random
143   password would be created the first time and stored in a new address->pw
144   table and mailed to the subscriber address. With that password, the user
145   would be able to [un]subscribe to lists, edit the name (for compatibility
146   implemented by adding a subscribe line to list_[digest]slog). Add/remove
147   aliases. Ideally, it should also allow searching by subscriber name. This
148   would search *_slog.fromline. If less that 'x' alternatives are found, the
149   user would be presented with names (not addresses), allowing the user to
150   cause the subscription name and password to be sent to the respective
151   subscription address. With that info, the subscriber can then unsubscribe,
152   even if s/he has forgotten the subscription address. It is complicated
153   slightly by the fact that ``fromline'' is the crude line and needs to be
154   rfc822 parsed. Again, use of a standard interface is encouraged to make it
155   compatible also with other SQL servers.
156
157The aim of all this is to make it easy to use ezmlm to run very large lists,
158easy to set up sites that handle subscriber interaction, archive access, etc,
159and hopefully easier to integrate many ezmlm as done by some WWW sites today.
160
161

README.std

1STANDARD EZMLM DATABASE INTERFACE
2
3The sub-std.c file comprises the ezmlm subscriber database interface. issub and
4subscribe are backwards compatible with ezmlm-0.53 in terms of function,
5but use a case-insensitive hash for address storage, and take a few
6extra args to be plug-in compatible with alternative interfaces. Logging to
7the subscriber log (DIR/Log) is done from subscribe rather than externally,
8and the subscriber from line is logged as well.
9
10searchlog allows access to DIR/Log.
11
12putsubs does all output of subscriber addresses, both to qmail for subscibers,
13moderator sendouts, etc, and to list subscribers in reply to the -list command.
14
15Alternative subscriber db interface routines should perform equivalent services,
16and fall back to these services if the alternative interface is not configured,
17e.g. if DIR/subdb doe not exist.
18