-
Notifications
You must be signed in to change notification settings - Fork 0
/
document.txt
913 lines (588 loc) · 49.6 KB
/
document.txt
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
ÛßßÛ ÛÞÝÛ TM SoftWolves Software Announce.Doc
ÛÜÜÜÄÄÄÄÄÛÞÝÛÄÄÄÄÄÄ c/o Peter Karlsson
Ü Û OFT ÛÞÝÛ OLVES V„rnsta, Ullers„ter Documentation for
ßßßßÄÄÄÄÄßßßßÄÄÄÄÄÄ S-718 92 FR™VI Announcer v1.2
Hear the howl SWEDEN fax +46-(0)21-132367
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Announcer v1.2 - Posts files in message areas at BBSes
Copyright (c) 1995, 1996, 1997: Peter Karlsson
A Softwolves Software(TM) Release in 1997
This file contains some Swedish characters. If you want to correctly display these, you must use DOS codepage 437, 850 or 865. Enter CHCP at the DOS prompt to see which one you are using. See your DOS manual on how to change it.
$$TOC$$
Documentation
{Quick start} (or what you really should know)
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Announcer is completely controlled from the command line and its configuration file (see their respective chapters). There is no interactive part, which makes it easy to set the program up to automatically post files. This also implies that you need to know a bit about how the program is controlled before it's usable. I therefor recommend you to read through the two chapters "Command line format" and "The configuration file", or at least the remarks in the sample configuration file that comes with the program. This will save you a great deal of work.
If you want to use the standard settings that exist for Announcer, you simply enter
ANNOUNCE
at the command line, and the program will execute. It will now use the standard configuration file ANNOUNCE.INI and do what is told there. If any errors occur, they will be printed on the screen, and the program execution will end. A common error is that files or message bases are missing, which mostly is caused by misspelled file names, but it can also be caused by the file or message base being locked by another program.
If you wish to use the settings of another configuration file, read the chapter titled "Command line format". If you want to use the possibility to specify sender and receiver names on the command line, see the chapter "The % variables". If you want a more detailed description on how the configuration file is structured, see the chapter "ANNOUNCE.INI, the configuration file". See also the examples in the included sample configuration file.
And if you want to learn everything, read this manual through carefully and memorize it :-)
I also would like you to read the chapter "Status", which includes information on how to pay for the program.
{Background}
ÄÄÄÄÄÄÄÄÄÄ
I originally wrote this program for a local BBS, where I and a couple of my friends "competed" on who could write the most messages, and since I don't like to be on-line, I downloaded the mail and read it off-line. The problem then was that I was not able to check the statistics when I was offline, and that I always forgot to check it when I was on-line.
So, therefore I wrote this program, initially a very limited one, but as the beta testers and I personally came up with new ideas, the program grown out of this limited version to what it now is. It is now able to do more than only post top-ten-lists, it can post welcoming messages to new users, conference rules in echomail areas, automatic reminders, and much more. Your imagination is the limit (okay, so long as it is inside the program's area. It won't operate your microwave oven).
{Status}
ÄÄÄÄÄÄ
This program is released under the GNU Public License. See the COPYING file for more information.
Exceptions to the GNU Public License are these:
The file NLS.PAS by Thomas Mainka, may be copied according to the LICENSE.TXT file that comes with the NLS archive.
The Mythical Kingdom's Message Access Source, the MKSM106A.RAR archive, may be spread according to what is described in its documentation. Please note that the version that comes with Announcer has been modified to suit Announcer.
{Disclaimer of warranty}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
THIS SOFTWARE AND MANUAL ARE SOLD "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE AND SOFTWARE ENVIRONMENTS INTO WHICH THIS PROGRAM MAY BE PUT, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. GOOD DATA PROCESSING PROCEDURE DICTATES THAT ANY PROGRAM BE THOROUGHLY TESTED WITH NON- CRITICAL DATA BEFORE RELYING ON IT. THE USER MUST ASSUME THE ENTIRE RISK OF USING THE PROGRAM. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.
{Included files}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ANNOUNCE.EXE The executable program
ANNOUNCE.ICO Icon (OS/2 format)
FILE_ID.DIZ Short description for BBSes
ANNOUNCE.DOK Documentation in Swedish
ANNOUNCE.DOC Documentation
COPYING GNU Public License
NORMAL.INI Sample configuration file
PKTMODE.INI Sample configuration file
SOURCE.RAR Announcer sources
NLS.RAR NLS sources
MKSM106A.RAR MSG access sources
WOLVES.COM Softwolves Software's program catalogue
{Command line format}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ANNOUNCE [/I[drive:][path]filename] [/D[M]] [/P] [/Q] [/S]
[/F[A]] [/L] [names ...]
ANNOUNCE /?
/I[drive:][path]filename
This parameter tells Announcer that it is to use another configuration file than ANNOUNCE.INI, which is the default (unless you have changed the name of the executable file, Announcer uses the name and path of this file to create the name of the default configuration file, so if you have changed the program name to A.EXE, the default configuration file name will be A.INI).
/D
This option will tell Announcer not to post messages, but instead show status information. What is shown is the time that have passed since the messages have been posted, the intervals that have been specified for the messages (if any), the wanted minimum size, the existence of a semaphore file, and the MSGID that were used at the last posting. Please notice that you need to have run Announcer at least once to be able to use this command line switch.
the M modifier (/DM)
This modifier to the /D parameter will get Announcer to clean up the data file, so that items that are in the file and that does not match any message template in the configuration file will be removed. This is useful when message templates have been deleted from the data file. It can only be used together with /D, and will otherwise be ignored.
Please note that if the data file and the templates get "out of sync", for example if you delete a template somewhere in the middle, you cannot use /M, but have to use the special PlaceHolder token instead. /M will though zero out entries that are defined as "PlaceHolder"s.
/P
When specifying this command line parameter, Announcer will not create tear lines in the messages it creates, but instead shows its name in a PID kludge. When posting echomail to message bases, this command line option will also result in Announcer not adding an Origin line, leaving that to the tosser. When in .PKT mode, an Origin line will be created, but no tear line.
Please note that the tosser TerMail, at least in some versions, do not add a tear and Origin line when tossing, so this option will then generate invalid messages according to the Fidonet specifications. Use with caution.
/Q
This command line option will inhibit Announcer from showing any output, except for error messages, which are always printed to the stderr device. Normally all output is written to the device connected to stdout (usually the screen). May not be used together with the /FA option.
/S
Use this command line option to simulate a run by Announcer. Announcer will do everything like if it has been a real run, except that it won't create the messages or semaphores, it won't log anything to the log file (it is instead logged to the screen), and the data file is not updated. This can be useful for debugging configuration files.
/F
This command line option is used to force posting of messages even though the requirements for their posting aren't met (because of, e.g. interval or minimum file size).
the A modifier (/FA)
If you use /F all messages will be posted, while /FA asks for posting for each template. /FA cannot be used together with /Q.
/L
If you enter the /L parameter, Announcer will not update the latest posting date for the messages that are posted (the latest used MSGID will be updated, though). This can be useful for e.g. posting updated rule files directly when they are changed, together with /FA, without disturbing interval driver postings, but still get them into the same reply chain.
names
These texts will be use wherever you enter %1 to %10 (the number corresponding to the ordering on the command line), in the configuration file. They may be used to make it possible to post a standardized message to different people. If you want a space in the name you should change it to an underscore character ("_"). If you supply less than ten names, the remaining %n variables will evaluate as "Announcer". These names have no effect when used together with /D.
/?
Displays the quick help screen.
{ANNOUNCE.INI, the configuration file}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
The configuration file, default name ANNOUNCE.INI, tells Announcer what it is supposed to do, and in what way it should be done. To use Announcer, a configuration file is a must, and to use Announcer's functions I recommend you to read through this chapter. Some explanations are also included in the sample configuration file that comes with the distribution archive.
If you want comments in the file you can enter them on lines that have a semi colon (";") in the left-hand position.
By default, Announcer will look for a configuration file that is placed in the same directory as the program, and that has the same name, except that the file type is .INI. Remember that if you change the program name, if you change it to A.EXE, the configuration file name will default to A.INI.
For each configuration file, a data file, with the file type .DAT, will be created. This file contains information on latest posting date, used by the interval handling, as well as the MSGID that was used, so that the next posting can contain a REPLY kludge. (If you have "ReplyKludge No" set, no REPLY kludge will be created, but the MSGID will still be logged).
The configuration file contains two different "areas", the first one is the global area where you define default settings for all massages, and the second area is the individual settings for each message that is to be created. The settings that are used in the two areas are completely different, but they have influence on each other.
Each message template begins with a line that has the only word
Msg
on it, and is ended with the text
.End
Between these lines the configuration posts that are needed for the message are placed, and outside these the global settings can be set. Note that there is no requirement on the ordering of the different settings.
If you wish Announcer to skip over a message template, e.g. if you remove one in the middle, you can replace the Msg/.End sequence with a line only saying
PlaceHolder
which will make Announcer just process the next one.
For the global settings there are default values, which are indicated in the text below. Default values also exist for some of the message template settings, except for "From", "Subj", "File" and "Path". These four are vital, and have to be included for every message template definition. The addresses used in netmail and echomail are not considered as vital, but without them, you won't get any good results.
It is not of importance whether the keywords are written in upper- or lowercase. If you wish to have spaces included in the beginning or end of the data, you have to surround the value with quotation marks (").
{ Global settings}
---------------
These are the available global settings:
BinkleyName
This keyword refers to the .PKT mode of Announcer. It is documented in the chapter "Creating .PKT files".
BragLineIntro <intro characters for the brag-line>
This defines what should be placed before the brag-line. If this is not set up, it will default to "---" (a Fidonet tearline). This setting can be a maximum of three characters long.
example:
BragLineIntro ___
EchoTossLog <file name for the echotoss log file>
If you have many echomail areas turned on, but don't write in all of them at once, it's a good idea to log which areas you have written to, and only scan through these message areas for new messages. This is why there is an ECHOTOSS.LOG file. It is a text file that contains a list of area tags, one on each line. These tags specify the areas in which new messages are present. Since Announcer has the possibility to send echomail, it's nice if it's able to write to such a file. That's what this keyword is for.
As a parameter to this keyword you should specify a full path and filename to the file in which the area tags should be added. If the file isn't present, it will be created when needed. If the area tag already is present in the file, it will not be repeated.
For this to work, you also need to use the keyword "Echo" in the message templates. See this keyword. See also "JamTossLog" below.
example:
EchoTossLog C:\SQUISH\ECHOTOSS.LOG
FMailCfg <path and filename for FMail.Cfg>
Makes Announcer read FMail's (version 1.22) configuration file, so that one does not need to specify the paths to all message areas. Announcer will only read the FMAIL.CFG and FMAIL.AR files.
example:
FMailCfg C:\FMAIL\FMAIL.CFG
GEchoCfg <path and filename for GEcho.Cfg>
Makes Announcer read GEcho's (version 1.20) configuration file, so that one does not need to specify the paths to all message areas. Announcer will only read the GECHO.CFG and AREAFILE.GE files.
example:
GEchoCfg C:\GECHO\GECHO.CFG
IdServer <directory for the IDServer file>
IdServer No
According to the MSGID kludge specifications, the MSGID numbers that are generated should be unique for three years. With one program this is easy to handle, but with more than one it can be hard. IDServer was creaated to avoid this problem. An IDServer is a small data file that contains the next free MSGID number (and a few other things). By using this in all programs that are used, all the programs will create unique MSGID codes.
IDServer can be specified either via the environment variable IDSERVER or via this configuration option. If you have the environment variable IDSERVER set, and, by any reason, do not want Announcer to use this setting, you can specify the parameter "NO". The IDServer will then not be used.
example:
IDServer C:\
JamTossLog <path to echomail.jam/netmail.jam>
If you are using JAM areas, ECHOTOSS.LOG (see EchoTossLog above) is normally not used, but instead the files ECHOMAIL.JAM and NETMAIL.JAM. To create them, use this keyword.
As a parameter to this keyword you should specify the path to the directory in which the files are to be written. In the file, the database path and the message numbers will be logged, so it is not necessary to use "Echo".
If you have both EchoTossLog and JamTossLog defined, both will be used, but not simultaneously. JamTossLog will be used for JAM areas, and EchoTossLog for the others. If you do not use JamTossLog, but do have EchoTossLog, JAM areas will be logged in the EchoTossLog.
example:
JamTossLog C:\FASTECHO\
LogFile <file name for the log file>
If you want Announcer to log its actions to a log file, you should enable this keyword. If the file you specify is not present, it will be created, otherwise the new log lines will be appended to the end of the file.
example:
LogFile D:\LOGS\ANNOUNCE.LOG
MsgId <address to use in the MsgId string>
If you want to create MSGID kludges in local message areas, you need to specify which address string that should be used. Even though you can write anything (up to 32 characters long), it might be nice to stick to the specifications, that is that it should contain a "valid return address", and that if the address contains a space, it should be placed within quotation mark ("). For netmail and echomail, MSGID kludges will always be created, and their address strings will be created from the originating address. For such messages, this keyword serves no purpose.
example:
MsgId 999:42/417.25@MyNet
NetMailTearLine <Yes/No>
Controls whether or not you want a tearline in netmail messages or not. Please note that the PID kludge control (the /P command line option) has precedence to this setting. The default value is that tearlines are used in netmail.
example:
NetMailTearLine No
PktFrom
PktMode
PktPath
PktPwd
PktTo
These five keywords all refer to the .PKT mode of Announcer. They are documented in the chapter "Creating .PKT files".
ReplyKludge <Yes/No>
Tells Announcer whether or not to create REPLY kludges in its messages. If you don't want to link your postings to the previous one, set this to "No". The default is "Yes".
REPLY kludges will not be created in mailing lists.
example:
ReplyKludge Yes
SquishCfg <path and filename for Squish.Cfg>
Makes Announcer read SquishMail's (version 1.11) configuration file, so that one does not need to specify the paths to all message areas.
example:
SquishCfg C:\SQUISH\SQUISH.CFG
TagLineFile <file name for the tagline file>
If you want to use random taglines (taglines are quite commonly used in e-mail communities to add a small one liner joke), you need to tell Announcer where it can find a file with such things in. The tagline file you define can then be used by message *subsequent* templates. It is possible to change tagline files between the message templates. The new tagline file will then only be available to subsequent templates.
All lines that begin with either a semi colon (";") or percent sign ("%") will be considered comment lines, and will be ignored.
example:
TagLineFile D:\BLUEWAVE\DEFAULT.TAG
TagLineIntro <intro characters for taglines>
This defines what should be placed before the tagline (taglines are quite commonly used in e-mail communities to add a small one liner joke). If this is not set up, it will default to "..." (which is the most common). This setting can be a maximum of three characters long.
example:
TagLineIntro .!.
TerMailCfg <path and filename for Tm.Cfg>
Makes Announcer read TermMail's (version 3.0-5.0) configuration file, so that one does not need to specify the paths to all message areas.
Please note that if you are using relative paths in your area list, you need to difine an absolute Terminate path in Tm.Cfg (keyword 'TERMINATE').
example:
TerMailCfg C:\TERMINAT\TERMAIL\TM.CFG
{ Message templates}
-----------------
The message templates consist of the following settings:
Please note that the settings that are marked with a [*] symbol are optional. Some other parameters might be more or less limited in certain scenarios, such things are noted under the individual options.
Attributes <message attributes> [*]
With this keyword, you can select what attributes the message to be created shall have. Each attribute is represented by a letter, and you write the letter(s) you want in a row after the keyword. You can have spaces between the letters if you so wish.
Available attributes are:
"C": CrashMail
"K": Kill when sent
"A": File Attached
"R": File Request
"P": Private
"H": Hold for pickup.
Please note that the Private status also can be controlled with "Private" (see this keyword), and that the flag is ignored in netmail and echomail. You cannot use specified attributes in echomail.
example:
Attributes CK
Charset <character set> [*]
Here you can set the character set to be used for the message that is to be posted. The message file is always assumed as being stored in PC8, code page 437, and conversion will be done according to this. Possible values are "PC8" (no conversion will be made, has the same effect as leaving this keyword out), "SV7" (Swedish seven bit code), "ISO" (results in ISO 8859-1) or "ASCII" (clean seven bit ASCII code, no CHRS-kludge).
You can also convert your texts to PC8, code page 437, from either ISO 8859-1 or Swedish seven bit code. To do this, use the same string as above, but prefixed with a minus sign, i.e "-ISO" for conversion from ISO 8559-1 or "-SV7" for Swedish seven bit code.
If you enter "-ASCII", conversion will be made from ASCII with parity to ASCII without parity (i.e. the high bit in the characters will be zeroed).
If you have got a text that is in either Swedish seven bit code or ISO 8859-1, and want to post it in that character set, you can use the same strings as above, but prefixed with a plus sign, i.e "+ISO" for files in ISO 8859-1 or "+SV7" for Swedish seven bit code. The configuration file data should still be in PC8, as conversion will be done based on this presumption.
example:
Charset ISO
Create <path and file name of semaphore file> [*]
If you enter a path and file name here, Announcer will create a zero-byte semaphore file if the message were posted.
If you want Announcer to post only if a semaphore file exists, see the 'Semaphore' keyword.
example:
Create C:\ANNOUNCE\POSTED.SEM
Dest <destination address>
With this keyword you can define the destination address for the message that is to be created. It is only active for netmail, and will be ignored in other cases. If you create netmail messages you have to specify both Orig and Dest, otherwise strange things may happen, since these values then are undefined.
example:
Dest 2:204/999.41
Distribution <type of message base> [*]
Here you can set what type of message base it is that the message will be created in. Unfortunately, the program has no way of automatically recognize the base type, so you need to set it up correctly here. If you don't use this keyword at all, it will be considered as being a local area, and the parameters will be set that way. If you want to create netmail or echomail, these message base types need to be set explicitly, which can be done by using this keyword followed by either the text "NetMail" or "EchoMail". For local areas, it is optional to use the parameter "Local".
Please note that when you specify NetMail, you also need to specify Orig and Dest (see these keywords), and that Private (see this keyword) will not be active. If you choose EchoMail you need to specify Orig (see this keyword), and that if you want another Origin text than "Default Origin Line" you also need to define Origin (see this keyword). The Private flag will not be active here either.
The area type is automatically determined if you are importing a tosser configuration, and uses the area tag to find an area.
example:
Distribution NetMail
Echo <area tag> [*]
This keyword is used in conjunction with EchoTossLog in the global settings (see this section) to log in what areas there are messages to be sent. If you don't specify both, nothing will happen.
If you are importing a tosser configuration, and leave out the Path keyword, the area will be looked up using this tag. It need not then be an echomail area.
example:
Echo BLUEWAVE
File <path and filename to be posted>
With this keyword you specify the file to be used as message body in the created message. The file must exist, otherwise the program will abort with an error message. If you specify a filename without a path, it will be looked for in the directory that is active when the program is started.
example:
File C:\STAT\WRITERS.TXT
FixedWidth <flag for monospace> [*]
With FixedWidth, you can tell whether the message you want to post is meant to be shown with a monospaced font or not. Since graphical user interfaces are becoming more and more common even among Fidonet readers, it is also getting more common to read using a proportional typeface, which, unfortunately, makes tables and similar look strange. With a monospaced typeface, this problem can be cured.
Fixed Width uses a kludge line that was first specified in FrontDoor APX/w, namely "FLAGS: NPD".
The default is not to use this kludge.
example:
FixedWidth Yes
Footer <path and filename for footer file> [*]
This keyword specifies a footer file, which will be added after the "big" file. It can be a signature file, or something in that direction. If you don't give any, no footer file will be used.
No error message will be shown if the file does not exist.
example:
Footer C:\SIG\MY.SIG
From <sender name>
Here the sender name for the message to be created is specified. If the message base format does not restrict it further, the maximum length of the name is 35 characters, if you enter a name that is too long, it will be truncated to fit the maximum length.
example:
From Statistics Generator
Header <path and file name header file> [*]
This keyword specifies a header file, which will be added before the "big" file. It can be a logotype file, or something in that direction. If you don't give any, no header file will be used.
No error message will be shown if the file does not exist.
example:
Header C:\LOGOS\MY.LGO
Interval <interval> [*]
Interval @<posting date> [*]
If you don't want the message to be posted every time the program is run, you can enter an interval, given as a number of days, here. If you run Announcer each day of the week, and have the interval set to 7, a message will only be posted once a week anyway. If you don't give an interval, or an interval of zero, the message will be posted each time the program is run.
You may also tell Announcer only to post messages on certain dates, then prefix the date with an at sign ("@"). Please note that you actually need to run Announcer on that date, if you don't, it won't be posted until next month.
You can't use the two variants of the Interval keyword together in the same message template.
example:
Interval 14
Interval @1
MinSize <no. of bytes> [*]
With this optional keyword, you can specify the minimum size the message file must have for it to be posted. If the file is smaller than this amount, including the file not existing, it will not be posted.
This can also be used to post messages only if the message file exists, (if it doesn't, it is considered too small), just use MinSize 0. (To do this, you might also use Semaphore).
example:
MinSize 1024
Orig <originating address>
With this keyword you enter the originating address for the message that shall be created. It is only active in netmail and echomail, and will be ignorde otherwise. The address you enter here will be used to create a MSGID kludge. (MSGID will always be created for netmail and echomail).
The originating address is automatically determined if you are importing a tosser configuration, and uses the area tag to find an area.
example:
Orig 2:204/999.42
Origin <origin line> [*]
This is an optional keyword that is only active when you are creating echomail messages, and it is used to specify the text that should be used on the Origin line. Origin lines will always be created, even if you haven't specified any text, but it might be nice to have your own text here.
Since the Fidonet specifications says that an Origin line can be a maximum of 79 characters, including the prefix " * Origin: " and the suffix " (address)", you cannot enter a line that is too long. The line will be truncated from the right if that is the case. Precisely how long your text can be depends on how long your address is. There is room for more text if you have the address 7:7/7 than 999:999/999.999
example:
Origin My spot in the universe
Path <path to the message base>
In order for Announcer to know where the message should be posted, you need to tell it what message base should be used. The format of this path depends on the format of the message base according to the table below:
Squish: The letter "S" followed by the path to the message base stem file (without extension).
example:
Path SC:\MAX\MSG\MUFFIN
Hudson: The letter "H" followed by a three-digit, decimal, number that specifies the area number, and this in its turn followed by the directory in which the message base resides.
example:
Path H007C:\RA\MSG\MSGBASE
Fido (*.MSG): The letter "F" followed by the path to the directory in which the message base resides.
example:
Path FC:\FD\NET\
JAM: The letter "J" followed by the path to the message base stem file (without extension).
example:
Path JC:\RA2\MSG\RA_UTIL
EzyCom (before version 1.10 of EzyCom): The letter "E" followed by a for-digit, decimal, number that specifies the area number, and this in its turn followed by the path to the message base (without extension).
example:
Path E0001F:\EZY\MSG
Private <private flag>
This keyword tells whether the message that is to be posted will be private or not. You should enter "Yes" if it should be private or "No" if it is to be seen by everyone. Please notice that when you write echomail, it will automatically be seen by everyone, and if you write netmail, it will automatically be private, so in both these cases, this keyword is not needed.
example:
Private Yes
Semaphore <path and file name of semaphore file> [*]
With this keyword you can control the posting of the message with a so called semaphore file. If the specified file does not exist, no message will be created. Semaphore files are generally zero byte files that are created by a program to signal that a certain situation has occurred. An example is that a new user has logged in at the BBS. The semaphore file is not removed by Announcer.
This can also be used to post messages only if the message file exists (otherwise Announcer will give an error message), just use the same file name for the semaphore file as for the message file. (To do this, you might also use MinSize).
If you want Announcer to create a semaphore if the message were posted, see the 'Create' keyword.
example:
Semaphore c:\timed\netmail.sem
Split <number of parts> [*]
Split @<maximum part size> [*]
If the message file you want to post is large, and not all message processors on the way to the destination are able to handle such large messages, you can use this keyword to split it into any number of parts you wish.
It is also possible to give the maximum allowed size that the resulting message may have, in that case you should prefix the byte count with an at sign ("@"). The size does not include the kludges. The messages are still divided evenly.
When posting to Squish databases, the routines that are used do not support messages larger than approximately 33,000 characters. If you specify larger parts, even if it's because you're leaving out the Split keyword, the message will be splitted so that each part will not exceed 33,000 characters.
If you want the originating address in the SPLIT kludge to be correct, you have to give an Orig address, even for local messages.
You can't use the two variants of the Split keyword together in the same message template.
example:
Split 2
Split @10000
Subject <subject line>
Here the subject line of the message to be created is specified. If the message base does not restrict it further, the maximum length of the subject line is 75 characters, if you enter a subject that is too long, it will be truncated to fit the maximum length.
example:
Subject Top ten message writers
TagLine <the tagline that should be used> [*]
With this keyword you determine whether a tagline will be added to the message or not. If you don't specify this keyword, no tagline will be used. You can also set it up so that the same tagline will be used every time (a static tagline), or if it is to vary each time by reading randomly from the file you have specified with the keyword TagLineFile in the global settings (see this section).
If you want the same tagline to be used every time you can give the tagline text after the keyword (a maximum length of 80 characters is allowed), and if you want it to be chosen at random, you only enter a commercial at sign ("@").
example:
TagLine @
To <receiver name> [*]
To @<name of mailing list file> [*]
Here the receiver name of the message to be created is specified. If the message base does not restrict it further, the maximum length of the receiver name is 35 characters, if you enter a name that is too long, it will be truncated to fit the maximum length. If you don't enter any name, the receiver field will be empty.
If you wish to create a mailing list (i.e. post the same message to several people), you should enter a commercial at sign ("@") followed by the name of the file that contains all the recipients in the mailing list instead of the receiver name. This file contains lines with receiver address and receiver name separated by a space. For more information, see the chapter "Using mailing lists".
You can't use the two variants of the To keyword together in the same message template.
example:
To All
To @MYLIST.TXT
UpdatedSend <updating-flag>
With this keyword you can select whether the message file should only be posted if it has been updated since the last posting. If you select "Yes", the file date will be checked against the last posting date, and if it is older, the message will not be posted. If you select "No", no such checking will be made.
example:
UpdatedSend Yes
{The % variables}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
To make it easier to post messages to different people without having to edit the configuration file each time, it is possible to enter up to ten parameters on the command line. These parameters can be used them for sender/receiver names, subject lines, file names, receiver address in netmail, and all the other settings that are included in the message templates.
To use the parameters you pass on the command line, you should use the "%1" to "%10" variables in the configuration file. The numbering corresponds to the ordering of the parameters on the command line. They will then be exchanged with the parameters you entered. If you want spaces in the strings, they must be exchanged with an underscore ("_") on the command line.
Example: We want to send a welcoming message to new BBS members, and want a special configuration file that we can use at those times. Then a combination of the /I parameter (for more information on this parameter, please look at the chapter "Command line format"), name on the command line and variables are a good thing to have. Let's say that we define the message templates as follows:
MSG
File NEWUSER.TXT
Subject New user - welcome
To %1
From Sysopus Anonymous
Path SC:\MAX\MSG\SYSOP
Tagline My little BBS - for you and me
Private Yes
.end
If we name the configuration file NEWUSER.INI, and want to welcome a person called John Doe, we enter this at the command line:
ANNOUNCE /INEWUSER.INI John_Doe
%1 on the To line will then be exchanged for "John Doe", and the message will look like this:
From: Sysopus Anonymous (private)
To: John Doe
Subj: New user - welcome
=============================================
..contents of the file newuser.txt..
... My little BBS - for you and me
If you forget to enter a name on the command line, the variables will be exchanged for "Announcer", and the message above would have been posted to Announcer.
If you wish to add date and time somewhere, f.ex on the subject line, you can use the special variables "%d%" (date) and "%t%" (time). The date and time will be entered according to your computer's country settings. Unlike %1-%10, these variables can occur inside a string, and then only that part of the string will be changed.
{Using mailing lists}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Mailing lists are a convenient way to post the same message to several people at once. Say for example that you're the head of a local computer club, and you want to netmail its member with a bulletin each month. Posting individual messages, or setting up Announcer with one template for each receiver is tedious, the easy way out is to set up a mailing list.
To tell Announcer that it is a mailing list you want to do, and not a normal mail, you need to create a file containing all the names and addresses, and point to that file in the message template. The format of the mailing list file is straightforward, each line contains the address of the recipient, followed by the name, the two fields separated with a single space. For Announcer to understand that it is a list of names it should look for, prefix the file name at the To keyword with a commercial at sign ("@").
Announcer will identify messages posted to a mailing list by inserting a special kludge "NOTE", which shows the name of the mailing list file. If you want to change this to something more descriptive, enter the name you want on the first line of the mailing list file, prefixed with a semi colon (";").
Example, a computer club newsletter:
First, we create a file "NEWSLTR.LST", which contains the list of the recipients (only two people in this example):
;Computer Newsletter
7:342/169.31 John Doe
8:412/961.17 Jane Doe
Then we set up a message template that points to the mailing list file:
Msg
File NEWSLTR.TXT
Subject Computer Club X Newsletter
To @NEWSLTR.LST
From Bill Doe
Orig 7:342/117
Path JC:\RA2\NETMAIL
Distribution Netmail
.end
This setup will result in these two message (only header and NOTE kludge is shown in this example):
From: Bill Doe (7:342/117)
To: John Doe (7:342/169.31)
Subj: Computer Club X Newsletter
=============================================
^aNOTE: Mailing list "Computer Newsletter"
...
From: Bill Doe (7:342/117)
To: Jane Doe (8:412/961.17)
Subj: Computer Club X Newsletter
=============================================
^aNOTE: Mailing list "Computer Newsletter"
...
Since only one MSGID is recorded for each template, no REPLY kludges will be created for mailing lists, even if you have set "ReplyKludge Yes" in global configuration.
Please note that it is not possible to combine the two forms of the To keyword. Furthermore, if the message file is not found, the @ sign will be considered a part of the receiver name, which makes it possible to post to someone that has a @ as the first character of the name.
{Creating .PKT files}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Announcer has the capability of directly creating type "2+" PKT file (mail bundles). This is called ".PKT mode". The operation of Announcer differs slightly from how it normally works, and this is why it is covered in its own chapter.
To initiate .PKT mode, you need to define the four global keywords "PktMode", "PktPath", "PktFrom" and "PktTo". If you omit any of them, Announcer will have trouble operating, but due to the way Announcer processes the configuration file, it will not abort with an error message. The two keywords "PktPwd" and "BinkleyName" are optional. Here follows detailed descriptions of these six keywords (alphabetically):
BinkleyName <Yes/No> [optional]
With this option set to "Yes", you instruct Announcer to use the BinkleyTerm name style, "aaaabbbb.OUT", where aaaa is the destination net number in hexadecimal and bbbb is the destination node number, also in hexadecimal. With this, you do not need to go through any other message processing software to send a message in conjunction with a Binkley-style mailer.
BinkleyName defaults to "No", which yields a packet name of "nnnnnnnn.PKT", where nnnnnnnn is the number of seconds since January 1st 1970 (Unix time) written in hexadecimal. This is the same type of number that is used for the MSGIDs.
If the PKT file that Announcer tries to write to should already exist, Announcer will append the messages in the end. The contents of the PKT file's header will not be changed.
example:
BinkleyName Yes
PktFrom <originating address>
This keyword specifies the originating address of the .PKT file. This is generally the same address as the originating address of the messages contained in the packets.
example:
PktFrom 2:204/145.42
PktMode <temporary path for .MSG files>
PktMode is the "magic" keyword that puts Announcer in .PKT mode. It also defines the path to put Announcer's temporary .MSG files (Announcer will not directly create the .PKT file, but will instead create one .MSG file for each message, in the directory defined here. These messages will then be packed into the .PKT file).
All files with the extension .MSG will be removed from this path when Announeer is done. Announcer will add ALL .MSG files that are found in this directory, not only the ones it has created itself.
example:
PktMode C:\TEMP
PktPath <directory to put the .PKT file in>
This keyword specifies the directory in which the .PKT file will be created.
example:
PktPath C:\BINKLEY\INBOUND
PktPwd <password in .PKT file> [optional]
With this optional keyword, you can specify a password to be inserted into the .PKT file.
example:
PktPwd SECRET
PktTo <destination address>
This keyword specifies the .PKT file's destination address. It may be the same as the originating address.
example:
PktTo 2:204/145.0
Please note, that the keyword "EchoTossLog" has no effect when Announcer is in .PKT mode.
In addition to these changes in the global section, some minor changes apply to the message templates:
Distribution <type of message area>
This keyword is mandatory in .PKT mode. Also, the "Local" distribution method is not valid in this mode. Only "NetMail" and "EchoMail" can be used.
example:
Distribution EchoMail
Echo <echo tag>
This keyword is mandatory for writing echomail in .PKT mode, since the echo tag must be known. It is not used for an EchoToss.Log/EchoMail.Jam file, neither together with a tosser configuration file.
example:
Echo ISDN.EUR
The "Path" keyword cannot be used in .PKT mode. It will abort with an error message. Since all .MSG files are created in the temporary directory, there is no need to specify an alternative path.
It should also be noted that .PKT mode and normal mode can be combined in one configuration file, but only in a limited fashion. Once .PKT mode is initiated, you can't turn it off. It is also only possible to create one .PKT file per configuration file. If you enter a new PktMode keyword, the previous one will be discarded, and the .PKT file will be created from the newly defined directory. The same applies to the PktPath keyword.
To combine normal and .PKT mode, the configuration can look like this:
LogFile C:\ANNOUNCE\ANNOUNCE.LOG
; This message is posted in normal mode, in a
; local Squish area
Msg
From SysOp
To All
Subject Top Ten
File TOPTEN.TXT
Path SC:\MAX\MSG\TOPTENS
.End
; Now, we initiate .PKT mode
PktMode C:\TEMP
PktPath C:\SQUISH\INBOUND
PktFrom 2:204/145.42
PktTo 2:204/145.42
; This message will be posted in netmail via a .PKT file
Msg
From Announcer
To SysOp
Subject Top Ten
File TOPTEN.TXT
Orig 2:204/145.42
Dest 2:204/145.42
Distribution NetMail
.End
{Language}
ÄÄÄÄÄÄÄÄ
This program can run in both Swedish and English. The program will check your country setting (COUNTRY in CONFIG.SYS) and will automatically set to Swedish if you live in Sweden, Norway, Denmark or Finland, and otherwise to English. To override this setting you should use the environment variable ANNLANG. It can have either of these two values:
SWE Swedish
ENG English
You set it up with the command SET, for example:
SET ANNLANG=ENG
will set the language to English. If you want to set the language automatically when you start your computer, you can enter that line into your AUTOEXEC.BAT file.
{Revision history}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
0.10beta March 8th, 1995
* Initial version
0.11beta July 19th, 1995
+ Will strip all characters under 32 (space) except for CRLF
0.20beta August 1st, 1995
+ Can use another configuration file than LOCPOST.INI
+ Can take two names on the command line except for the INI file
name
* Changed the format of the INI file
* Changed from Bluewave bragline (~~~) to standard (___)
0.21beta August 19th, 1995
! Checks whether the configuration file exists
+ Adds a TerMail-3.00-MOOD-kludge
- No MSGIDs are created
* Changed the INI format again... Easier to expand
* Changed from bragline (___) to tearline (---)
0.22beta October 28th, 1995
! Does not complain over errors in LOCPOST.INI, but in the current
INI file
+ Tagline support
+ Internal registration module (same version to everyone!)
+ Selectable bragline intro (so now you can choose yourself :-) )
* You can enter a name on the command line without specifying an
INI file
* Did NOT change the INI file format, only expanded it :-)
* Writes error messages via STDERR instead of STDOUT
0.23beta October 31st, 1995
! The registration key did not work at all :-(
0.25beta November 9th, 1995
! Now underscores in the names on the command line works again
+ Possibility to log to file
0.30beta January 7th, 1996
! The tagline intro string wasn't really USED
+ MSGID (choosable, and with choosable string, in local messages)
+ Can create netmail and echomail
- MOOD kludge only in local messages
* Change of names from LocalPost to Announcer
* Texts in both English and Swedish
* Can read taglines randomly from a text file
0.31beta February 3rd, 1996
! Corrected the random tagline selection
! Corrected some English texts
! Echomail and Squish now works
+ FMPT and TOPT kludges are created in netmail
+ Creates REPLY kludges
+ Interval support
+ Head and footer files
1.00 April 27th, 1996
! Can handle ini file names without .INI
+ Added /D to show information
+ Added /Q to make Announcer quiet
+ Added /M for data file maintenance
* Changed the log texts somewhat
1.1 August 14th, 1996
! Fixed a bug with kludges in Squish message bases
+ Semaphore file support added
+ Added option to disable REPLY kludges
+ Can split messages in several pieces
+ Possibility to specify the file's minimum size
+ Mailing lists
+ Translation tables for posting in other charsets
+ Setting to post only if the message file is updated
+ Can create PKT files
+ Can create PID kludge instead of tearline
+ Wider selection of message attributes
- Removed the MOOD kludge, it was rather meaningless
* Checks that enough configuration items are specified
* Changed the MSGID generation to reduce the risk of dupes
* Logs echo tag instead of message base in the log file
1.11 March 5th, 1997
! Split position now calculated over the entire message
! Fixes bug with lost lines in netmail in Squish format
! Only writes posting date when message actually was posted
+ Support for packets according to FSC-0048
+ Possibility to post only on certain dates
+ Split can now define the maximum size of each part
+ Simulation mode
+ PlaceHolder
+ Multiple command line switches without space in-between
+ Support for kludge for fixed width
* Shows echo tag in log file when messages aren't posted
* Some long log file lines are splitted up
1.2 November 11th, 1997
! Zeroing of entries that are initially PlaceHolder
! Spaces between keywords and data are accepted
! Handles paragraphs longer than 255 characters
! Fixed bug in attribute handling of *.MSG areas
! Only loggs to echotoss.log for echomail areas
! SEEN-BY line bug fixed
! Bugfix in INI parser
+ Added /F[A] to force posting
+ Added /L to not change the latest posting dates
+ Added conversion from ASCII with parity
+ "+ISO", "+SV7" for posting of non-PC8 files
+ Support for ECHOMAIL.JAM/NETMAIL.JAM
+ IDSERVER support, configuration option: IdServer
+ Read tosser config of SquishMail, FMail, GEcho, TerMail
+ Added %d% and %t% to include date and time in strings
+ Possibility to turn tearline in netmail off
* /M will now zero out PlaceHolder entries in the data file
* Internal checksum calculation in the EXE file
* The EXE file is no longer compressed
* Up to ten names (%1-%10) on the command line
* New registration code format
March 7th, 1998
* Program released under GPL
{Plans for future versions}
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
* OS/2 version [in the works]
* Definable max number of lines when splitting messages
{Thanks}
ÄÄÄÄÄÄ
I would like to thank the beta testers, Peter Korkala (a.k.a PKaze) and Mikael Klasson (a.k.a Omega/Moment 22), for their help with finding bug and coming up with new features! Without you this program would never have become what it is now. Thanks!
Thanks also to Carl Olofsson and Leif T Andersson for the help with ideas on how to read a random line from a file.
Thanks for ideas from Fredrik Fischer, Cristoffer Crussell and Andreas Selstam.
Thanks to Andreas Hansson and Harald Fragner for information about how to make waiting loops without disturbing multitasking operating systems.
Thanks to those who registered the program while it still was shareware.
This program uses source code written by Eddy L O Jansson, Fidonet#2:206/233, that is released as Public Domain. It also uses the module NLS.PAS, written by Thomas Mainka, with permission from the author, and the routine check_date, written by Michael Hoenie, from the SWAG archives.
Finally, a slightly modified version of Mythical Kingdom Software's "MK Msg Access Source" is used, which is copyright 1992-1994 by Mark May, and released as freeware. This uses parts of the JAM API, JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch, Mats Wallin. ALL RIGHTS RESERVED.
The pagination and table of contents of this document were created using Pager version 4.2c from Softwolves Software.
Trademarks mentioned in this documentation:
Trademark Owner
========= =====
BinkleyTerm Bit Bucket Software, Co.
Blue Wave Cutting Edge Computing
FMail Folkert J. Wijnstra
FrontDoor/APX Definite Solutions
GEcho Gerard J. van der Land
Squish Lanius Corporation
TerMail Bo Bendtsen, SerWiz
Trademarks forgotten in this list are still recognized as trademarks of their respective holders.