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
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
|
Alpine Technical Notes
Version 2.20.14, July 2016
Table of Contents
Introduction
* Design Goals
* Alpine Components
Background Details
* Domain Names
* RFC 2822 Compliance
* SMTP and Sendmail
* Internet Message Access Protocol (IMAP)
* Multipurpose Internet Mail Extensions (MIME)
* Folder Collections
Building and Installation
* Compile-time Options
* Including LDAP Functionality
* Including Kerberos 5 Functionality
* Other Alpine Compile-time Options
* IMAPd Compile-time Options
* Building the Alpine Programs
* Installing Alpine and Pico on UNIX Platforms
* Installing PC-Alpine
* Installing IMAPd
* Support Files and Environment Variables: UNIX Alpine
* Support Files, Environment Variables, and Registry Values:
PC-Alpine
Command Line Arguments
* Alpine
* Pico
* Pilot
Configuration and Preferences
* Alpine Configuration
* General Configuration Variables
* Configuration Features
* Hidden Config Variables and Features
* Retired Variables
* Tokens for Index and Replying
* Conditional Inclusion of Text for Reply-Leadin, Signatures, and
Templates
* Per Server Directory Configuration
* Color Configuration
* Index Line Color Configuration
* Role Configuration
* Filtering Configuration
* Scoring Configuration
* Other Rules Configuration
* Search Rules Configuration
* Patterns
* Configuring News
Configuration Notes
+ Alpine in Function Key Mode
+ Domain Settings
+ Syntax for Collections
+ Syntax for Folder Names
+ Server Name Syntax
+ Folder Namespaces
+ What is a Mail Drop?
+ Sorting a Folder
+ Alternate Editor
+ Signatures and Signature Placement
+ Feature List Variable
+ Configuration Inheritance
+ Using Environment Variables
+ SMTP Servers
+ MIME.Types file
+ Color Details
+ S/MIME Overview
+ Additional Notes on PC-Alpine
Behind the Scenes
* Address Books
* Remote Configuration
* Checkpointing
* Debug Files
* INBOX and Special Folders
* Internal Help Files
* International Character Sets
* Interrupted and Postponed Messages
* Message Status
* MIME: Reading a Message
* MIME: Sending a Message
* New Mail Notification
* NFS
* Printers and Printing
* Save and Export
* Sent Mail
* Spell Checker
* Terminal Emulation and Key Mapping
Introduction
Design Goals
Throughout _Alpine_ development, we have had to strike a balance
between the need to include features which advanced users require and
the need to keep things simple for beginning users. To strike this
balance, we have tried to adhere to these design principles:
- The model presented to the user has to be simple and clear.
Underlying system operation is hidden as much as possible.
- It's better to have a few easily understood commands that can
be repeated than to have some more sophisticated command that
will do the job all at once.
- Whenever the user has to select a command, file name, address,
etc., the user should be given (or can get) a menu from which to
make the selection. Menus need to be complete, small, organized
and well thought out.
- _Alpine_ must provide immediate feedback for the user with
each operation.
- _Alpine_ must be very tolerant of user errors. Any time a user
is about to perform an irreversible act (send a message, expunge
messages from a folder), _Alpine_ should ask for confirmation.
- Users should be able to learn by exploration without fear of
doing anything wrong. This is an important feature so the user
can get started quickly without reading any manuals and so fewer
manuals are required.
- The core set of _Alpine_ functions should be kept to a minimum
so new users don't feel "lost" in seemingly extraneous commands
and concepts.
Just as there were goals relating to the look and feel of _Alpine_,
there were equally important goals having to do with _Alpine_'s
structure-the things that users never see but still rely on every time
they use _Alpine_. While _Alpine_ can be used as a stand-alone mail
user agent, one of its strongest assets is its use of the Internet
Message Access Protocol (IMAP) for accessing remote email folders. In
addition, _Pine_ (the predecessor of _Alpine_) was one of the first
programs to support the Multipurpose Internet Mail Extensions (MIME)
specification. With MIME, _Alpine_ users can reliably send any binary
file to any other person on the Internet who uses a MIME compliant
email program.
The decision to use IMAP and MIME reflects the importance of
interoperability, standardization and robustness in _Alpine_. As you
work with _Alpine_ more, you will see other features which reflect the
same values. For example, _Alpine_ enforces strict compliance with RFC
2822, implements a strong mail folder locking mechanism and verifies a
process before overwriting any files (e.g. addressbook, expunging
messages).
Alpine Components
If you have picked up the _Alpine_ distribution, then you already know
that _Alpine_ comes in a few different pieces. They are:
_Alpine_
The main code from which the _Alpine_ program is compiled.
_Pico_
_Pico_ is the name for the _Alpine_ composer. The _Pico_ code is
used in two ways: (1) it is compiled on its own to be a
stand-alone editor and, (2) it is compiled as a library for
_Alpine_ to support composition of messages within _Alpine_.
_Pico_ is _Alpine_'s internal editor invoked when users need to
fill in header lines or type the text of an email message.
_Imap_
An API for IMAP. Includes the C-Client library, which is
compiled into _Alpine_, and the IMAP server _IMAPd_. C-Client
implements the IMAP protocol and also negotiates all access
between _Alpine_ and the mail folders it operates on, even if
the folders are local. The C-Client routines are used for email
folder parsing and interpreting MIME messages. _IMAPd_ is a
separate server that handles IMAP connections from any
IMAP-compliant email program. When _Alpine_ accesses a remote
mailbox, the _Alpine_ program is the IMAP client and the _IMAPd_
program is the IMAP server. Of course, _Alpine_ can use any
IMAP-compliant IMAP server, not just _IMAPd_.
Background Details
Domain Names
Domain names are used to uniquely name each host on the Internet. A
domain name has a number of parts separated by periods. Each label
represents a level in the hierarchy. An example of a name is:
olive.cac.washington.edu
In this domain name the top-level label is _edu_, indicating it is at
an educational institution, the second-level label is _washington_,
indicating the University of Washington. _cac_ is a specific department
within the University of Washington, and _olive_ is the host name. The
top-level names are assigned by Internet organizations, and other names
are assigned at the appropriate level. The Domain Name Service, DNS, is
the distributed database used to look up these names.
_Alpine_ relies on domain names in multiple places. A domain name is
embedded into the message-id line generated for each piece of email. A
domain name is needed to contact an IMAP server to get access to remote
INBOXes and folders. Most importantly, domain names are needed to
construct the From: line of your outgoing messages so that people on
the Internet will be able to get email back to you.
On UNIX systems, you can set the domain via the user-domain variable in
the _Alpine_ configuration file, or rely on the file /etc/hosts which
usually sets the name of the local host. While _Alpine_ can often
deliver email without the domain name being properly configured, it is
best to have this set correctly. Problems can usually be solved by
adjusting the system's entry in the /etc/hosts file. The
fully-qualified name should be listed before any abbreviations. For
example,
128.95.112.99 olive.cac.washington.edu olive
is preferred over
128.95.112.99 olive olive.cac.washington.edu
On PCs, the task of configuring the domain name is a bit different.
Often times PCs do not have domain names-they have _IP addresses_. IP
addresses are the numbers which uniquely identify a computer on the
network. The way you configure your IP address depends on the
networking software which you use on the PC. You can refer to the
documentation which came with your networking software or see the PC
specific installation notes for help configuring the IP address with
your network software.
With PCs, it is vital that users set the variable user-domain in the
_Alpine_ configuration file (PINERC).
Details on configuring _Alpine_ with correct domain names can be found
in the Domain Settings section of this document.
__________________________________________________________________
RFC 2822 Compliance
_Alpine_ tries to adhere to RFC 2822 fairly strictly.
As far as outgoing email is concerned, _Alpine_ fully-qualifies
addresses whenever possible. They are even displayed in fully-qualified
form on the terminal as the user composes a message. This makes
addresses more clear and gives a hint to the user that the network
extends beyond the local organization. _Alpine_ implements
fully-qualified domain names by tacking on the local domain to all
unqualified addresses which a user types in. Any address which does not
contain an "@" is considered unqualified.
The format for addresses allows for spaces and special characters in
the full name of an address. For this reason, commas are required to
separate addresses. If any special characters as defined in RFC 2822
appear in the full name, quotes are required around the address.
_Alpine_ will insert the quotes automatically if needed. The common
cases where this happens are with periods after initials and
parentheses.
_Alpine_ expects dates to be in the standard RFC 822 format which is
something like:
[www, ] dd mmm yy hh:mm[:ss] [timezone]
It will attempt to parse dates that are not in this format. When an
unparsable date is encountered it is shown as question marks in the
FOLDER INDEX screen.
__________________________________________________________________
SMTP and Sendmail
_Alpine_ is a _user agent_ not a _message transfer agent_ (MTA). In
plain English, that means _Alpine_ does not know how to interact with
other computers on the Internet to deliver or receive email. What
_Alpine_ does know how to do is help users read, organize and create
email. The "dirty work" of delivering and accepting email is handled by
other programs.
All outgoing email is delivered to an SMTP server or to a mail transfer
agent. A common mail transfer agent is sendmail. The usual method of
delivery used by _Alpine_ is to use either a local or a remote SMTP
server.
The selection of which MTA to use depends on the settings of
smtp-server, sendmail-path, and compile-time options. The first MTA
specified in the following list is used:
1. _sendmail-path_ in /usr/local/lib/pine.conf.fixed
2. _smtp-server_ in /usr/local/pine.conf.fixed
3. _sendmail-path_ specified on the command line.
4. _smtp-server_ specified on the command line.
5. _sendmail-path_ in the user's .pinerc file.
6. _smtp-server_ in the user's .pinerc file.
7. _sendmail-path_ in /usr/local/lib/pine.conf
8. _smtp-server_ in /usr/local/pine.conf
9. DF_SENDMAIL_PATH defined at compile time.
10. SENDMAIL and SENDMAILFLAGS defined at compile time.
If the _sendmail-path_ form is used, a child process is forked, and the
specified command is executed with the message passed on standard
input. Standard output is then passed back and displayed for the user.
_NOTE: The program MUST read the message to be posted on standard input,
AND operate in the style of sendmail's "-t" option. This method is not
recommended unless there are special reasons you want to do this._
If an _smtp-server_ is specified, _Alpine_ operates as an SMTP client.
SMTP stands for _Simple Mail Transfer Protocol_; it specifies the rules
by which computers on the Internet pass email to one another. In this
case, _Alpine_ passes outgoing email messages to a designated SMTP
server instead of to a mail transfer program on the local machine. A
program on the server then takes care of delivering the message. To
make _Alpine_ operate as an SMTP client, the smtp-server variable must
be set to the IP address or host name of the SMTP server within your
organization. This variable accepts a comma separated list of servers,
so you can specify multiple alternate SMTP servers. _PC-Alpine_ only
runs as an SMTP client so the _smtp-server_ option is mandatory.
For UNIX _Alpine_, if neither _smtp-server_ or _sendmail-path_ is set,
the default sendmail program is invoked with the "-bs -odb -oem" flags,
and the message is sent using the SMTP protocol.
__________________________________________________________________
Internet Message Access Protocol (IMAP)
IMAP is a remote access protocol for message stores. _Alpine_ uses IMAP
to get at messages and folders which reside on remote machines. With
IMAP, messages are kept on the server. An IMAP client (such as
_Alpine_) can request specific messages, headers, message structures,
message parts, etc. The client can also issue commands which delete
messages from folders on the server. IMAP's closest kin is POP, the
Post Office Protocol, which works by transferring an entire mailbox to
the client where all the mail is kept. For a comparison of IMAP and
POP, see the paper "Comparing Two Approaches to Remote Mailbox Access:
IMAP vs. POP" by Terry Gray. A more detailed exploration of message
access may be found in the paper " Message Access Paradigms and
Protocols."
IMAP Features:
* Allows access to mail folders from more than one client computer.
* Works well over low-bandwidth lines because information is sent in
small pieces as needed by the user. For example, only header
information is sent to build index lists, and if someone sends a
large audio file via MIME, you can choose when (or if) you want to
get that part of the message.
* Email can be delivered and stored on a well-maintained and reliable
server which is "always-up".
* Folders can be accessed and manipulated from anywhere on the
Internet.
* Users can get to messages stored in different folders within the
same _Alpine_ session.
* Allows use of IMAP server for searching and parsing.
* The latest revision of IMAP (IMAP4) also provides for disconnected
operation, including resynchronization of message state between
mail servers and message caches on clients. _Alpine_ does not
support this capability, however.
IMAP4rev1 is described in RFC 3501. Further information about IMAP may
be obtained from the University of Washington's IMAP Information
Center.
_Alpine_ is an IMAP4rev1 client.
__________________________________________________________________
Multipurpose Internet Mail Extensions (MIME)
MIME is a way of encoding a multipart message structure into a standard
Internet email message. The parts may be nested and may be of seven
different types: Text, Audio, Image, Video, Message, Application and
Multipart (nested). The MIME specification allows email programs such
as _Alpine_ to reliably and simply exchange binary data (images,
spreadsheets, etc.). MIME includes support for international character
sets, tagging each part of a message with the character set it is
written in, and providing 7-bit encoding of 8-bit character sets.
The MIME standard was officially published in June of 1992 as RFC 1341
and subsequently revised in RFC 2045 when it became a full Internet
Standard. _Pine_ 3.0 was one of the first email programs to Implement
MIME. Now, there are dozens of commercial and freely available
MIME-capable email programs. In addition, MIME is being added to
newsreaders so MIME messages can be posted and read in USENET
newsgroups.
The MIME standard also includes support for non-ASCII text in message
headers through the extensions described in RFC 1342 and subsequently
revised in RFC 2047.
An actual MIME message looks something like this:
Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
From: David L Miller <dlm@cac.washington.edu>
To: David L Miller <dlm@cac.washington.edu>
Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?= =?is
o-8859-1?Q?=E2=E3=29?=
Message-Id: <Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu>
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
Content-Id: <Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu>
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--0-1737669234-826673975=:21583
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu>
The text of the message would go here. It is readable if
one doesn't mind wading around a little bit of the MIME
formatting. After this is a binary file in base 64
encoding.
|\ | |\/| David L. Miller dlm@cac.washington.edu (206) 685-6240
|/ |_ | | Software Engineer, Pine Development Team (206) 685-4045 (FAX)
University of Washington, Networks & Distributed Computing, JE-20
4545 15th Ave NE, Seattle WA 98105, USA
--0-1737669234-826673975=:21583
Content-Type: APPLICATION/ZIP; NAME="test.zip"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu>
Content-Description: Test Attachment
UEsDBBQAAAAIAGh8bCBbZKT4ygIAAHgFAAAEAAAAdGVzdIVUX2vbMBB/16c4
9rSBNyjsYX1UHSUROLInycv2qNhKI5ZYxlLa5dvvpDRLw6CFgJF09/t3Rxo3
WDBDD43rPJjJQpxMbw9m+h3AbyHuLLSDe7JTcPGUbtYm7NzwGP3wBYQnnT8c
7NQ5s4djsC8t4QbmYE6wsfjpLTy7uPPHCOPk/ATPk4vRDmS008GF4PzwPich
zY3m4LfxOQlPNy4GcEO3P/a2h2j/xGyp9ONpco+7CHf33+4/393ff4XNibzL
c1UVfXJXQIdIBRx877b4TYy9C3Fym2NEyzsX/pNDet8dD3aIJiagLbo2wwnG
4zT6cK66ZLK1NhH9J4tcZQEy7OxkNyd4nMwQbV9glP7JZb87E3O32fgnm7We
XQ8+us4SM47WTCkgMPt9enc2ZAW5c+Pj7o32l0IXXk/r8pSRE3A4jqOfIqqF
G+PFlSdRDOaQduXNESTwtDcYfJ8191gWXUjYmOJ43Oxdh11JTzRuSPcY37+B
vNqmf0O5RB1G27mt64rLCp4X8pW1L6BvxunCeYHNk3F7s9lb+GAwyvAhOyNE
Lxm0gv9gUnH9C+o5rKlacrHQtYAZV2VF+UoBrSp8kJIKzZkqgP1sJFMKagl8
1VSczQqy5noJki2onIGuQS+5AlXPNfaxArgoq3aGwJDq6lZDxVdcU82RKMG/
4JArTVKzYrJc4pE+8CoJpGIGc65FIp8jO4WGSs3LtqISmlY2tUKyVMUFETWw
H0xoUMvE8KbXB4aC6EPFzrDiF6iGlZxWBeFixiUrdXJb1kKx7y2C4hPM6Iou
WI4hdVyO6yXVqkZqiXmottLJ9lzWK1LVKttqk8oZ1TS1NrJGS5jqeslQI0aK
ieCvzNlgNZJqiccCc5WafLxmKdii4gsmSvYpISkteamzkRwXJiG5SoUpcERK
8xIE8QQ7o+eh5WAUy1qYRP8rioip/maI+OfyF1BLAQIUAxQAAAAIAGh8bCBb
ZKT4ygIAAHgFAAAEAAAAAAAAAAEAAACkgQAAAAB0ZXN0UEsFBgAAAAABAAEA
MgAAAOwCAAAAAA==
--0-1737669234-826673975=:21583--
For details about _Alpine_'s implementation of MIME, see the two MIME
sections "MIME: Reading a Message" and "MIME: Sending a Message" later
in this document.
__________________________________________________________________
Folder Collections
Folder Collections are _Alpine_'s way of dealing with more than a
single group of folders.
For a more complete description of Folder Collections, see the section
on "Syntax for Collections."
The _Alpine_ distribution is designed to require as little
configuration and effort at compile time as possible. Still, there are
some _Alpine_ behaviors which are set at the time you compile _Alpine_.
For each of these, there is a reasonable (our opinion) default built
into the code, so most systems administrators will have no need for
these steps.
Building and Installation
Compile-time Options
_Alpine_'s UNIX build environment is based on Autotools (the GNU Build
System). Once you've unpacked the source distribution find the file
configure in the top-level directory. You may look at the many options
available by typing
./configure --help
or you could just try building with the command
./configure
followed by
make
Note, while the UW IMAP Toolkit (whose c-client library _Alpine_ uses
for mailbox access) build is not based on Autotools, _Alpine_'s
configure script should set an appropriate make target and compilation
options for most systems.
Some of the following can only be set when you build. Others, however,
can be overridden by command-line flags to _Alpine_ or settings in
_Alpine_'s user or system configuration files. Some of the options which
can be set when building:
Including LDAP Functionality
By default, the configure script will attempt to find the LDAP library
support for you. If you are having trouble with LDAP take a look at the
configure options
--with-ldap-dir=DIR
Specify the root of the LDAP lib/include path.
--with-ldap-include-dir=DIR
Specify the LDAP include path.
--with-ldap-lib-dir=DIR
Specify the LDAP library path.
--without-ldap
Disable LDAP support.
_Alpine_ uses LDAPv3 protocol. When using the LDAPv3 protocol, the
results are assumed to be in the UTF-8 character set, which _Alpine_
handles well. If the LDAP server returns non-ascii data which is not
encoded as UTF-8 you will probably run into problems.
Including Kerberos 5 Functionality
This works analogously to the LDAP build. By default, the configure
script will attempt to find the Kerberos library support for you. If
you are having trouble with Kerberos take a look at the configure
options
--with-krb5-dir=DIR
Specify the root of the Kerberos lib/include path.
--with-krb5-include-dir=DIR
Specify the Kerberos include path.
--with-krb5-lib-dir=DIR
Specify the Kerberos library path.
--without-krb5
Disable Kerberos support.
Other Alpine Compile-time Options
--disable-nls
Do not use Native Language Support. NLS refers to the use of GNU
gettext utilities to localize a program, in the sense that
English is translated to some other language. At the time this
was written the low-level support for NSL is included in _Alpine_
but no translations have been done. If there is no translation
available, that means that disabling NLS will make no
difference. If you have trouble building which is due to gettext
or libintl you could try this option, or one of the following.
--with-libintl-prefix[=DIR]
--without-libintl-prefix
--with-ssl-dir=DIR
Specify the root of the SSL lib/include path (OpenSSL).
--with-ssl-include-dir=DIR
Specify the SSL include path.
--with-ssl-lib-dir=DIR
Specify the SSL library path.
--with-ssl-certs-dir=DIR
Specify the path to the SSL certificates directory.
--without-ssl
Disable SSL support.
--without-pthread
Do not test for nor build with POSIX thread support, which is
used only for the Busy-Cue in the status line at this time.
--without-smime
Disable S/MIME support.
--disable-debug
Never create debug files.
--with-smtp-msa=PATH
Local Mail Submission Agent (sendmail, by default).
--with-smtp-msa-flags=FLAGS
MSA flags for SMTP on stdin/stdout (-bs -odb -oem).
There are many more options which you can see using the
./configure --help
command.
IMAPd Compile-time Options
There are no options or settings required for the version of _IMAPd_
distributed with _Alpine_. If you need to be doing more complex
modifications to IMAP, then you should pick up the IMAP development
package and work with that code. The developer's version of IMAP is
available for anonymous ftp from ftp.cac.washington.edu in the
directory mail. The file is called imap.tar.Z. Unless it has changed
since _Alpine_ was released, the directory imap in the _Alpine_
distribution is the IMAP development package.
The c-client library has not been converted to use the GNU Build
System's autotools. The _Alpine_ configure script will try to correctly
guess the arguments needed for the c-client make command and will build
the library, but if you need to change anything you should take a look
at imap/docs/BUILD for more detailed instructions.
__________________________________________________________________
Building the Alpine Programs
You may have already compiled _Alpine_ and tried it out. If so, great!
If not, you should be able to do it without too much trouble by
following these step-by-step instructions:
1. Make sure you're in the root of the _Alpine_ source. When you type
ls you should see the following files and directories (or something
close to it):
aclocal.m4 config.sub imap Makefile.am packages web
alpine configure include Makefile.in pico
build.bat configure.ac install-sh mapi pith
build.cmd contrib LICENSE missing po
config.guess depcomp ltmain.sh mkinstalldirs README
config.rpath doc m4 NOTICE VERSION
2. Give the command ./configure Configure should grind away for a few
minutes.
3. When configure is complete, give the command make. If make stops
and asks
Do you want to build with IPv6 anyway? Type y or n please:
you should answer with a 'y'. The compiler should grind away for a
few minutes. The _Alpine_ binary will end up in .../alpine/alpine
and the Pico and Pilot binaries in .../pico/pico and
.../pico/pilot. Other binaries you may be interested in are
.../alpine/rpdump and .../alpine/rpload and c-client binaries in
the directories .../imap/imapd, .../imap/ipopd, .../imap/mailutil,
and so on.
4. If you need to try again, make sure you're getting a clean start by
giving the command make clean.
__________________________________________________________________
Installing Alpine and Pico on UNIX Platforms
Installing _Alpine_ and _Pico_ is simple. You take the program files
which you have just transferred or built and you move them to the
correct directory on your system. Most often the binaries go in
/usr/local/bin though sometimes they are placed in /usr/bin. All the
help text is compiled into _Alpine_ so there are no _required_
auxiliary files. Instead of copying the binaries manually, you may use
make install to install them.
There are three optional auxiliary files: /usr/local/lib/pine.info,
/usr/local/lib/pine.conf, and /usr/local/lib/pine.conf.fixed. The file
pine.info contains text on how to get further help on the local system.
It is part of the help text for the main menu and should probably refer
to the local help desk or the system administrator. If this file
doesn't exist a generic version which suggests ``talking to the
computer support staff at your site'' is shown. The file pine.conf is
used to set system-wide default configurations for _Alpine_. The file
pine.conf.fixed is also used to set system-wide default configurations
for _Alpine_. The difference between these two files is that
configuration variables set in the pine.conf.fixed file may not
normally be over-ridden by a user. See the section on Alpine
Configuration later in this document for details about the pine.conf
and pine.conf.fixed files.
__________________________________________________________________
Installing PC-Alpine
The PC-Alpine distribution comes as a .zip file. To install, unzip the
files to a directory where you would like the program to reside. Modern
Windows versions come with the capability of unzipping .zip files.
Failing that, you can use one of the many .zip file extractors out
there. Following current Windows conventions, a common directory into
which the files could be extracted would be C:\Program
Files\PC-Alpine\.
Having extracted PC-Alpine's .zip file to the directory of choice, you
can now run that directory's alpine.exe, which is the actual PC-Alpine
program. For convenience, you could place shortcuts to it on the task
bar, start menu, etc.
Upon first running PC-Alpine, you may be asked where you would like to
access your Configuration file (called the _pinerc_). This is useful in
accessing already existing configuration files, and it does not matter
where this file gets created. If you are connecting to an IMAP server
to access your email, it is also possible to store this Configuration
data on that server, which facilitates accessing the same configuration
from multiple machines (in fact, your configuration may have already
been set up this way for use with other _Alpine_ programs).
After having established the location of the configuration file, it may
be necessary to specify a few configuration settings before reading or
sending mail. You may be prompted for the following (which may also be
edited from the (S)etup (C)onfig screen from the Main Menu):
Folder to open as inbox (or _inbox-path_) - This can be an inbox
residing on an IMAP or POP3 server, or one residing locally. An example
of an INBOX for an IMAP server is: {server.example.com}INBOX.
User-id, Personal name, and host/domain, which are to be used as your
email address.
SMTP server to forward message - You must enter your SMTP server
before you can send any messages.
At this point, you will be able to read and send email messages. There
are, however, many more preferences that you can set in the
Configuration screen.
__________________________________________________________________
Installing IMAPd
When the _Alpine_ distribution is built on a UNIX system, the IMAP
server binary, imapd, is compiled. Installing imapd requires placing
the binary in the appropriate directory, usually /usr/etc, and adding
entries to /etc/services and /etc/inetd.conf or their counterparts.
Instead of including installation instructions here we'll just include
a pointer to detailed instructions in the c-client distribution. Please
take a look at the file imap/docs/BUILD in the source tree.
__________________________________________________________________
Support Files and Environment Variables: UNIX Alpine
This section lists the various files which _Alpine_ uses which are not
email folders. All of these are the default names of files, they may
vary based on _Alpine_'s configuration.
/usr/local/lib/pine.conf
Pine's global configuration file.
/usr/local/lib/pine.conf.fixed
Non-overridable global configuration file.
/usr/local/lib/pine.info
Local pointer to system administrator.
~/.pinerc
Personal configuration file for each user.
~/.pinercex
Personal exceptions configuration file for each user.
~/.addressbook
Personal addressbook
~/.newsrc
Personal USENET subscription list. This is shared with other
newsreading programs.
~/.pine-debugX
The files created for debugging _Alpine_ problems. By default,
there are 4 .pine-debug files kept at any time.
~/.signature
A signature file which will be included in all outgoing email
messages.
~/.pine-interrupted-mail
The text of a message which was interrupted by some unexpected
error which _Alpine_ detected.
~/mail/postponed-msgs
A folder of messages which the user chose to postpone.
/etc/mailcap
System-wide mail capabilities file. Only used if $MAILCAPS not
set.
~/.mailcap
Personal mail capabilities file. Combines with system-wide
mailcap. Only used if $MAILCAPS not set.
The location of the following support files may be controlled by
variables in the personal or global _Alpine_ configuration file:
signature, addressbook and its index file, postponed messages, and
newsrc.
Unix _Alpine_ uses the following environment variables:
TERM
Tells _Alpine_ what kind of terminal is being used.
DISPLAY
Determines if _Alpine_ will try to display IMAGE attachments.
TMPDIR, TMP, or TEMP
Specifies location of temporary storage area, first one set wins
SHELL
If not set, default is /bin/sh
MAILCAPS
A semicolon delimited list of path names to mailcap files.
__________________________________________________________________
Support Files, Environment Variables, and Registry Settings: PC-Alpine
This section lists the various files which _PC-Alpine_ uses which are
not normal mail folders. All of these are the default names of files,
they may vary based on _Alpine_'s configuration.
$PINERC or <PineRC registry value> or $HOME\PINE\PINERC or <PINE.EXE
dir>\PINERC
Path to (required) personal configuration file.
$PINERCEX or $HOME\PINE\PINERCEX or <PINE.EXE dir>\PINERCEX
Path to personal exceptions configuration file.
$PINECONF
Path of optional global configuration file.
<PINERC directory>\ADDRBOOK
Personal addressbook
<PINERC directory>\PINEDEBG.TXT
Location of _Alpine_ debug file.
<PINERC directory>\MAILCAP and/or <PINE.EXE dir>\MAILCAP
These paths are only used if $MAILCAPS not set.
$HOME\NEWSRC or <PINERC directory>\NEWSRC
Personal USENET subscription list. This may be shared with other
newsreading programs.
$HOME\MAIL\INTRUPTD
The text of a message which was interrupted by some unexpected
error which _Alpine_ detected.
$HOME\MAIL\POSTPOND
A folder of messages which the user chose to postpone.
Registry Values:
HKEY_LOCAL_MACHINE\Software\University of Washington\Alpine\1.0
_Pinedir_: The directory that contains the _Alpine_ executable.
_PineEXE_: The name of the _Alpine_ executable (most commonly
"alpine.exe").
HKEY_CURRENT_USER\Software\University of Washington\Alpine\1.0
_PineRC_: The path that points to the default pinerc to use.
HKEY_LOCAL_MACHINE\Software\Clients\Mail\Alpine
_DLLPath_: The path that points to _Alpine_'s pmapi32.dll.
HKLM\Software\Clients\Mail\Alpine\shell\open\command
_(Default)_: When set as the default mailer, this is the command
that is run by external programs.
HKLM\Software\Clients\Mail\Alpine\Protocols\Mailto\DefaultIcon
_(Default)_: This points to the icon to display in relation to
_Alpine_'s mailto URL rendering.
HKLM\Software\Clients\Mail\Alpine\Protocols\Mailto\shell\open\command
_(Default)_: This value is the command that gets run by external
programs when a mailto URL is run with _PC-Alpine_ set as the
default mailer.
HKLM\Software\Clients\News\Alpine\shell\open\command
_(Default)_: When set as the default newsreader, this is the
command that is run by external programs.
HKLM\Software\Clients\News\Alpine\Protocols\news\DefaultIcon
_(Default)_: This points to the icon to display in relation to
_Alpine_'s news URL rendering.
HKLM\Software\Clients\News\Alpine\Protocols\news\shell\open\command
_(Default)_: This value is the command that gets run by external
programs when a news URL is run with _Alpine_ set as the default
newsreader.
HKLM\Software\Clients\News\Alpine\Protocols\nntp\DefaultIcon
_(Default)_: This points to the icon to display in relation to
_Alpine_'s nntp URL rendering.
HKLM\Software\Clients\News\Alpine\Protocols\nntp\shell\open\command
_(Default)_: This value is the command that gets run by external
programs when a nntp URL is run with _Alpine_ set as the default
newsreader.
_Alpine_'s personal configuration file may be in the same directory as
the executable, or if that is inconvenient because the executable is on
a shared or read-only drive, then it can be in a file named by the
$PINERC environment variable, or in $HOME\ALPINE\PINERC, where if not
set, $HOME defaults to the root of the current working drive.
Most of the other support files key off of the location of the PINERC
file. However, in the case of the NEWSRC file, the path $HOME\NEWSRC is
checked first. Also, the postponed messages and interrupted message
folders are placed in the default folder collection, normally in the
directory $HOME\MAIL.
The location of the following support files may be controlled by
variables in the personal or global _Alpine_ configuration file:
signature, addressbook (and its index file), postponed messages, and
newsrc.
_PC-Alpine_ uses the following environment variables:
PINERC
Overrides default path to pinerc file.
PINERCEX
Overrides default path to personal exceptions configuration
file.
PINECONF
Optional path to global _Alpine_ config file.
HOME
If not set, _Alpine_ uses the root of the current drive, e.g. C:
TMPDIR, TMP, or TEMP
Specifies location of temporary storage area, first one set wins
COMSPEC
Specifies shell for external commands.
MAILCAPS
A semicolon delimited list of path names to mailcap files.
Command Line Arguments
Alpine
_Alpine_ and _PC-Alpine_ can accept quite a few command-line arguments.
Many of these arguments overlap with variables in the _Alpine_
configuration file. If there is a difference, then a flag set in the
command line takes precedence. Both _Alpine_ and _PC-Alpine_ expect
command line arguments (other than addresses) to be preceded by the "-"
(dash) as normally used by UNIX programs.
_[addresses]_
Send-to: If you give _Alpine_ an argument or arguments which do
not begin with a dash, _Alpine_ treats them as email addresses.
_Alpine_ will startup in the composer with a message started to
the addresses specified. Once the message is sent, the _Alpine_
session closes. Standard input redirection is allowed. Separate
multiple addresses with a space between them. Addresses are
placed in the "To" field only.
< _file_
_Alpine_ will startup in the composer with _file_ read into the
body of the message. Once the message is sent, the _Alpine_
session closes.
-attach _file_
Go directly into composer with given file attached.
-attachlist _file-list_
Go directly into composer with given files attached. This must
be the last option on the command line.
-attach_and_delete _file_
Go directly into composer with given file attached, delete when
finished.
-aux _local_directory_
_PC-Alpine_ only. This tells _PC-Alpine_ the local directory to
use for storing auxiliary files, like debug files, address
books, and signature files. The pinerc may be local or remote.
-nosplash
_PC-Alpine_ only. This tells _PC-Alpine_ to not display the
splash screen upon startup. This may be helpful for certain
troubleshooting or terminal server scenarios.
-bail
If the personal configuration file doesn't already exist, exit.
This might be useful if the configuration file is accessed using
some remote filesystem protocol. If the remote mount is missing
this will cause _Alpine_ to quit instead of creating a new
pinerc.
-c _n_
When used with the -f option, apply the _n_th context. This is
used when there are multiple folder collections (contexts) and
you want to open a folder not in the primary collection.
-conf
Configuration: Prints a sample system configuration file to the
screen or standard output. To generate an initial system
configuration file, execute
alpine -conf > /usr/local/lib/pine.conf
To generate a system configuration file using settings from an
old system configuration file, execute
alpine -P old-pine.conf -conf > /usr/local/lib/pine.conf
A system configuration file is not required.
-convert_sigs _-p pinerc_
Convert signatures contained in signature files into literal
signatures.
-copy_abook _<local_abook_file> <remote_abook_folder>_
Copy an address book file to a remote address book folder. If
the remote folder doesn't exist, it will be created. If it
exists but the first message in the folder isn't a remote
address book header message, the copy will be aborted. This flag
will not usually be used by a user. Instead, the user will
create a remote address book from within _Alpine_ and copy
entries from the local address book by using aggregate Save in
the address book screen.
-copy_pinerc _<local_pinerc_file> <remote_pinerc_folder>_
Copy a pinerc configuration file to a remote pinerc folder. If
the remote folder doesn't exist, it will be created. If it
exists but the first message in the folder isn't a remote pinerc
header message, the copy will be aborted. This flag may be
useful to users who already have a local pinerc file and would
like to convert it to a remote pinerc folder and use that
instead. This gives a way to bootstrap that conversion without
having to manually reset all of the variables in the remote
pinerc folder.
-d _debug-level_
Debug Level: Sets the level of debugging information written by
_Alpine_. _Debug-level_ can be set to any integer 0-9. A debug
level of 0 turns off debugging for the session. (Actually there
are some levels higher than 9, but you probably don't want to
see them. Sensitive authentication information is hidden at
levels less than 10.)
-d _keywords_
You may use a more detailed version of the debugging flag to set
the debug level in separate parts of _Alpine_. The possibilities
are flush, timestamp, imap=0..4, tcp, numfiles=0..31, and
verbose=0..9. _Flush_ causes debugging information to be flushed
immediately to the debug file as it is written. _Verbose_ is the
general debugging verbosity level. _Timestamp_ causes timestamps
to be added to the debug file, which is useful when you are
trying to figure out what is responsible for delays. _Numfiles_
sets the number of debug files saved. _Imap_ sets the debug
level for the debugging statements related to the conversation
with the IMAP server, and more generally, for the debugging
related to _Alpine_'s interaction with the C-Client library. If
_imap_ is set higher than 4, sensitive authentication information
will be included in the debug file. _Tcp_ adds more TCP/IP
debugging information.
-f _folder_
Startup folder: _Alpine_ will open this folder in place of the
standard INBOX.
-F _file_
Open named text file for viewing and forwarding.
-h
Help: Prints the list of available command-line arguments to the
screen.
-i
_Alpine_ will start up in the FOLDER INDEX screen instead of the
MAIN MENU.
Configuration equivalent: _initial-keystroke-list=i_.
-I _a,b,c,..._
Initial Keystrokes: _Alpine_ will execute this comma-separated
sequence of commands upon startup. This allows users to get
_Alpine_ to start in any of its menus/screens. You cannot include
any input to the composer in the initial keystrokes. The key
<Return> is represented by a ``CR'' in the keystroke list; the
spacebar is designated by the letters ``SPACE''. Control keys
are two character sequences beginning with ``^'', such as
``^I''. A tab character is ``TAB''. Function keys are ``F1'' -
``F12'' and the arrow keys are ``UP'', ``DOWN'', ``LEFT'', and
``RIGHT''. A restriction is that you can't mix function keys and
character keys in this list even though you can, in some cases,
mix them when running _Alpine_. A user can always use only
_character_ keys in the startup list even if he or she is using
_function_ keys normally, or vice versa. If an element in this
list is a string of characters surrounded by double quotes (")
then it will be expanded into the individual characters in the
string, excluding the double quotes.
Configuration equivalent: _initial-keystroke-list_
-install
For _PC-Alpine_ only, this option prompts for some basic setup
information, then exits.
-k
Function-Key Mode: When invoked in this way, _Alpine_ expects
the input of commands to be function-keys. Otherwise, commands
are linked to the regular character keys.
Configuration equivalent: _use-function-keys_ included in
_feature-list_.
-n _n_
Message-Number: When specified, _Alpine_ starts up in the FOLDER
INDEX screen with the current message being the specified
message number.
-nowrite_password_cache
This tells _Alpine_ to use the local password cache if there is
one, but to never offer writing new passwords to the cache.
-o _folder_
Opens the INBOX (or a folder specified via the -f argument)
ReadOnly.
-p _pinerc_
Uses the named file as the personal configuration file instead
of _~/.pinerc_ or the default PINERC search sequence _PC-Alpine_
uses. Pinerc may be either a local file or a remote
configuration folder.
-P _pinerc_
Uses the named file as the system wide configuration file
instead of _/usr/local/lib/pine.conf_ on UNIX, or nothing on
_PC-Alpine_. Pinerc may be either a local file or a remote
configuration folder.
-passfile _passfile_
This tells _Alpine_ what file should be used as the password
file. This should be a fully-qualified filename.
-pinerc _file_
Output fresh pinerc configuration to _file_, preserving the
settings of variables that the user has made. Use _file_ set to
``-'' to make output go to standard out.
-r
Restricted Mode: For UNIX _Alpine_ only. _Alpine_ in restricted
mode can only send email to itself. Save and export are limited.
-registry _cmd_
For _PC-Alpine_ only, this option affects the values of
_Alpine_'s registry entries. Possible values for _cmd_ are set,
noset, clear, clearsilent, and dump. _Set_ will always reset
_Alpine_'s registry entries according to its current settings.
_NoSet_ will never set any values in the registry, but it will
still use the values already set in the registry. _Clear_ will
clear the registry values. _Clearsilent_ will silently clear the
registry values. _Dump_ will display the values of current
registry settings. Note that the dump command is currently
disabled. Without the -registry option, _PC-Alpine_ will write
values into the registry only if there currently aren't any
values set.
-sort _key_
Sort-Key: Specifies the order messages will be displayed in for
the FOLDER INDEX screen. _Key_ can have the following values:
arrival, date, subject, orderedsubj, thread, from, size, score,
to, cc, arrival/reverse, date/reverse, subject/reverse,
orderedsubj/reverse, thread/reverse, from/reverse, size/reverse,
score/reverse, to/reverse, and cc/reverse. The default value is
"arrival". The _key_ value reverse is equivalent to
arrival/reverse.
Configuration equivalent: _sort-key_.
-supported
Some options may or may not be supported depending on how
_Alpine_ was compiled. This is a way to determine which options
are supported in the particular copy of _Alpine_ you are using.
-install
For _PC-Alpine_ only, this option removes references to Alpine
in Windows settings. The registry settings are removed and the
password cache is cleared.
-url _url_
Open the given URL.
-v
Version: Print version information to the screen.
-version
Version: Print version information to the screen.
-x _exceptions_config_
Configuration settings in the exceptions config override your
normal default settings. _Exceptions_config_ may be either a
local file or a remote pinerc folder.
-z
Enable Suspend: When run with this flag, the key sequence ctrl-z
will suspend the _Alpine_ session.
Configuration equivalent: _enable-suspend_ included in
_feature-list_.
-_option_=_value_
Assign _value_ to the config option _option_. For example,
_-signature-file=sig1_ or _-feature-list=signature-at-bottom_.
(Note: feature-list values are additive and features may be
preceded with no- to turn them off).
Pico
The following command line options are supported in _Pico_:
+_n_
Causes _Pico_ to be started with the cursor located _n_ lines
into the file. (Note: no space between "+" sign and number)
-a
Display all files and directories, including those beginning
with a period (.).
-b
Enable the option to Replace text matches found using the "Where
is" command. This now does nothing. Instead, the option is
always turned on (as if the -b flag had been specified).
-d
Rebind the "delete" key so the character the cursor is on is
rubbed out rather than the character to its left.
-e
Enable file name completion.
-f
Use function keys for commands. _This option supported only in
conjunction with UW Enhanced NCSA telnet._
-g
Enable "Show Cursor" mode in file browser. Cause cursor to be
positioned before the current selection rather than placed at
the lower left of the display.
-k
Causes "Cut Text" command to remove characters from the cursor
position to the end of the line rather than remove the entire
line.
-m
Enable mouse functionality. This only works when _Pico_ is run
from within an X Window System "xterm" window.
-n_n_
The -n_n_ option enables new mail notification. The _n_ argument
is optional, and specifies how often, in seconds, your mailbox
is checked for new mail. For example, -n60 causes _Pico_ to
check for new mail once every minute. The default interval is
180 seconds, while the minimum allowed is 30. (Note: no space
between "n" and the number)
-o _dir_
Sets operating directory. Only files within this directory are
accessible. Likewise, the file browser is limited to the
specified directory subtree.
-p
Preserve the "start" and "stop" characters, typically Ctrl-Q and
Ctrl-S, which are sometimes used in communications paths to
control data flow between devices that operate at different
speeds.
-q
TermdefWins. Termcap or terminfo escape sequences are used in
preference to default escape sequences.
-Q _quotestr_
Set the quote string. Especially useful when composing email,
setting this allows the quote string to be checked for when
Justifying paragraphs. A common quote string is "> ".
-r_n_
Sets column used to limit the "Justify" command's right margin.
-t
Enable "tool" mode. Intended for when _Pico_ is used as the
editor within other tools (e.g., Elm, Pnews). _Pico_ will not
prompt for save on exit, and will not rename the buffer during
the "Write Out" command.
-v
View the file only, disallowing any editing.
-version
Print version information.
-w
Disable word wrap (thus allow editing of long lines).
_Note: Pico will break any lines over 255 characters when
reading a file, regardless of word wrapping._
-x
Disable keymenu at the bottom of the screen.
-z
Enable ^Z suspension of _Pico_.
Pilot
The following command line options are supported in _Pilot_:
-a
Display all files including those beginning with a period (.).
-f
Use function keys for commands. _This option supported only in
conjunction with UW Enhanced NCSA telnet._
-g
Enable "Show Cursor" mode. Cause cursor to be positioned before
the current selection rather than placed at the lower left of
the display.
-m
Enable mouse functionality. This only works when _Pilot_ is run
from within an X Window System "xterm" window.
-n_n_
The -n_n_ option enables new mail notification. The _n_ argument
is optional, and specifies how often, in seconds, your mailbox
is checked for new mail. For example, -n60 causes _Pilot_ to
check for new mail once every minute. The default interval is
180 seconds, while the minimum allowed is 30. (Note: no space
between "n" and the number)
-o _dir_
Sets operating directory. Only files within the specified
directory are accessible and browsing is limited to the
specified directory subtree.
-v
Enable single vertical column display.
-x
Disable keymenu at the bottom of the screen.
-z
Enable ^Z suspension of _Pilot_.
Configuration and Preferences
Alpine Configuration
There is very little in _Alpine_ which _requires_ compile-time
configuration. In most cases, the compiled-in preferences will suit
users and administrators just fine. When running _Alpine_ on a UNIX
system, the default built-in configuration can be changed by setting
variables in the system configuration files, /usr/local/lib/pine.conf
or /usr/local/lib/pine.conf.fixed. (Actually, these files can be
changed using the configure arguments --with-system-pinerc=VALUE or
--with-system-fixed-pinerc=VALUE.) The location of the pine.conf file
can be changed with the -P command line argument. Both _Alpine_ and
_PC-Alpine_ also use personal (user-based) configuration files. On UNIX
machines, the personal configuration file is the file ~/.pinerc. For
_PC-Alpine_ systems, the personal configuration file is in $PINERC or
<PineRC registry value> or ${HOME}\ALPINE\PINERC or <ALPINE.EXE
dir>\PINERC. Or the personal configuration file can be specified with
the -p command line argument.
All of these configuration files, other than the fixed system config
pine.conf.fixed on UNIX systems, may optionally be remote configuration
files instead of local files. This is discussed further in the
following section and in Remote Configuration.
After the personal configuration, _Alpine_ may optionally use a
personal exceptions configuration file which is specified with the
command line option "-x exceptions_config". "Exceptions_config" may
also be either a local file or a remote configuration folder. For Unix
_Alpine_, if you don't have a "-x" command line option, _Alpine_ will
look for the file ".pinercex" in the same local directory that the
regular config file is located in. If the regular config file is remote
then Unix _Alpine_ looks in the home directory for ".pinercex".
For _PC-Alpine_, if you don't have a "-x" command line option,
_PC-Alpine_ will use the value of the environment variable $PINERCEX. If
that is not set, _PC-Alpine_ will look for the local file "PINERCEX" in
the same local directory that the regular config file is located in. If
the regular config file is remote then _PC-Alpine_ looks in the local
directory specfied by the "-aux local_directory" command line argument,
or the directory ${HOME}\ALPINE, or in <ALPINE.EXE directory>.
The syntax of a non-list configuration variable is this:
<variable> = <value>
If the value is absent then the variable is unset. To set a variable to
the empty value two double quotes (""). This is equivalent to an absent
value except that it overrides any system-wide default value that may
be set. Quotes may be used around any value. All values are strings and
end at the end of the line or the closing quote. Leading and trailing
space is ignored unless it is included in the quotes. There is one
variable, _use-only-domain-name_, for which the only appropriate values
are _yes_ and _no_. That's because it is a variable from the early days
of _Alpine_ before features existed.
There is also a second type of variable, lists. A list is a
comma-separated list of values. The syntax for a list is:
<variable> = <value> [, <value> , ... ]
A list can be continued on subsequent lines by beginning the line with
white-space. Both the per-user and global configuration files may
contain comments which are lines beginning with a #.
For UNIX _Alpine_, there are five ways in which each variable can be
set. In decreasing order of precedence they are:
1. the system-wide _fixed_ configuration file
2. a command line argument
3. the personal exceptions file
4. the personal configuration file
5. the system-wide configuration file.
If the variable is not set in any of those places, there is a default
setting in the source code.
So, system-wide fixed settings always take precedence over command line
flags, which take precedence over per-user exception settings, which
take precedence over per-user settings, which take precedence over
system-wide configuration settings. _PC-Alpine_ has the same list,
except that it does not use a system-wide _fixed_ configuration file.
This can be modified slightly by using inheritance, which is covered
below.
You may get a sample/fresh copy of the system configuration file by
running _alpine -conf_. The result will be printed on the standard
output with very short comments describing each variable. (The online
help in the Setup screens provides much longer comments.) If you need
to fix some of the configuration variables, you would use the same
template for the fixed configuration file as for the regular
system-wide configuration file. (If it isn't clear, the purpose of the
fixed configuration file is to allow system administrators to restrict
the configurability of _Alpine_. It is by no means a bullet-proof
method.) _Alpine_ will automatically create the personal configuration
file the first time it is run, so there is no need to generate a
sample. _Alpine_ reads and writes the personal configuration file
occasionally during normal operation. Users will not normally look at
their personal configuration file, but will use the Setup screens from
within _Alpine_ to set the values in this file. If a user does add
additional comments to the personal configuration file they will be
retained.
References to environment variables may be included in the _Alpine_
configuration files. The format is $variable or ${variable}. The
character ~ will be expanded to the $HOME environment variable. For a
more complete explanation of how environment variables work, see the
section Using Environment Variables.
When environment variables are used for _Alpine_ settings which take
lists, you must have an environment variable set for each member of the
list. That is, _Alpine_ won't properly recognize an environment
variable which is set equal to a comma-delimited list. It is OK to
reference unset environment variables in the _Alpine_ configuration
file, which will expand to nothing.
Remote and Local Configuration
There are two types of storage for configuration information. _Local_
configuration files are used by default. These are just regular files
on the UNIX system or on the PC. _Remote_ configuration folders are
stored on an IMAP server. The advantage of using a remote configuration
is that the same information may be accessed from multiple platforms.
For example, if you use one computer at work and another at home, the
same configuration could be used from both places. A configuration
change from one place would be seen in both places. Technical
information about remote configuration is in Remote Configuration.
Generic and Exceptional Configuration
If you use _Alpine_ from more than one platform it may be convenient to
split your configuration information into two pieces, a generic piece
and exceptions which apply to a particular platform. For example,
suppose you use _Alpine_ from home and from work. Most of your
configuration settings are probably the same in both locations, so
those settings belong in the generic settings configuration. However,
you may use a different SMTP server and INBOX from home than you do
from work. The "smtp-server" and "inbox-path" variables could be part
of your exceptional configuration so that they could be different in
the two places.
You can use the command line option "-x config" to split your
configuration into generic and exceptional pieces. Config may be either
local or remote.
For most people, splitting the configuration information into two
pieces is only going to be useful if the generic information is
accessed remotely. If you already have a local pinerc file with
settings you like you may find that the command Setup/RemoteConfigSetup
will be useful in helping you convert to a remote configuration. The
command line flag copy_pinerc may also be useful.
Configuration Inheritance
Configuration inheritance is a power user feature. It is confusing and
not completely supported by the configuration user interface.
For configuration variables which are lists, like "smtp-server" or
"incoming-folders", the inheritance mechanism makes it possible to
_combine_ the values of options from different configuration locations
instead of _replacing_ the value. Configuration Inheritance has more
information about how inheritance is used.
__________________________________________________________________
General Configuration Variables
The following is a list of all _Alpine_ configuration variables, in
alphabetical order. Note that not all variables apply to all versions
of _Alpine_ and that some variables are only applicable in a system
configuration file and some are only applicable in a personal
configuration file. These are configuration _variables_. Configuration
Features are in a separate section.
_addrbook-sort-rule_
This variable sets up the default address book sorting.
Currently, _Alpine_ will accept the values _dont-sort_,
_fullname-with-lists-last_, _fullname_,
_nickname-with-lists-last_, and _nickname_. The default is to sort
by fullname with lists last. If you use an address book from
more than one computer and those computers sort the address book
differently then the sort order will be the order where the last
change to the address book was made. There are two reasons the
sorting might be different on different systems. First, the
addrbook-sort-rule may be set differently in the two places.
Second, the collation rules on the two computers may be
different. For example, one system might ignore special
characters while the other doesn't or one may sort upper and
lower case letters together while the other doesn't. In any
case, the order you see is the order on the system where the
last change was made, for example by an address book edit or a
Take Address command.
This option is displayed as "Addressbook Sort Rule".
_address-book_
A list of personal address books. Each entry in the list is an
optional nickname followed by a pathname or file name relative
to the home directory. The nickname is separated from the rest
of the line with whitespace. Instead of a local pathname or file
name, a remote folder name can be given. This causes the address
book to be a Remote address book. Remote folder syntax is
discussed in Syntax for Remote Folders. This list of address
books will be combined with the global-address-book list to
arrive at the complete set of address books.
_addressbook-formats_
This option specifies the format that address books are
displayed in. By default, address books are displayed with the
nicknames in the first column, the fullnames in the second
column, and addresses in the third column. The system figures
out reasonable defaults for the widths of the columns. An
address book may be given a different format by listing special
tokens in the order you want them to display. The possible
tokens are NICKNAME, FULLNAME, ADDRESS, FCC, and COMMENT. More
details are included in the online help for this variable.
_alt-addresses_
This option provides a place for you to list alternate email
addresses you may have. Each address in the list should be the
actual email address part of an address, without the full name
field or the angle brackets. For example:
user@example.com
The matching is case-insensitive, so this would match any of
User@example.com, user@Example.Com, or USER@EXAMPLE.COM as well.
If set, the option affects the behavior of the Reply command and
the "+" symbol in the MESSAGE INDEX, which denotes that a
message has been addressed specifically to you.
In the default INDEX display the personal name (or email
address) of the person listed in the message's "From:" header
field is usually displayed except when that address is yours or
one of your alternate addresses. In that case you will usually
see the name of the first person specified in the message's
"To:" header field with the prefix "To: " prepended.
With respect to Reply, the reply-to-all option will exclude
addresses listed here.
The feature copy-to-address-to-from-if-it-is-us is somewhat
related to this option.
In addition to a list of actual addresses, you may use regular
expressions (as used with egrep with the ignore case flag) to
describe the addresses you want to match. _Alpine_ will somewhat
arbitrarily interpret your entry as a regular expression if it
contains any of the characters *, |, +, ?, {, [, ^, $, or \.
Otherwise, it will be treated literally. The feature
disable-regular-expression-matching-for-alternate-addresses may
be used to turn off regular expression processing regardless of
whether or not special characters appear in the entry.
A description of how regular expressions work is beyond the
scope of this help text, but some examples follow.
The entry
.*@example.com
in the alt-addresses list would mean that any address with a
domain name of example.com (such as fred@example.com or
wilma@example.com) will be considered one of your alternate
addresses. Strictly speaking, the dot in example.com ought to be
escaped with a backslash, as in example\.com, and a dollar sign
anchor ought to come at the end of the expression to prevent a
match of example.com.org. Complicating things further, the
dollar sign is special in the _Alpine_ configuration (it
signifies environment variable expansion) so the dollar sign
should be doubled or backslash escaped for _Alpine_'s sake.
Quotes around the whole expression will not escape the dollar
sign successfully. So this example should look like
.*@example\.com$$
The entry
^fred[0-9]*@example.com$$
would match fred3@example.com or fred17@example.com as well as
fred@example.com.
You could match all addresses that look like
fred+stuff@example.com for any value of stuff with the entry
^fred\+.*@example.com$$
Notice that you have to escape the plus sign with a backslash
because plus is a special character in regular expressions. If
you wanted to match plain fred as well as fred+stuff the
expression
^fred(()|\+.*)@example.com$$
would do it, but it would be easier to just add fred@example.com
as a separate entry.
One more example, a match of all first-level subdomains, is
given by
^fred@[[:alnum:]_-]*\.example\.com$$
Because the regular expression matching is based on an old
library (hs_regex) the regular expressions might not work
exactly as you expect, but they should be close.
This option is displayed as "Alternate Addresses".
_bugs-additional-data_
System-wide configuration files only. Program/Script used by
_Report Bug_ command. Output from the program/script is captured
and attached to the bug report.
_bugs-fullname_, _bugs-address_, _local-fullname_, _local-address_,
_suggest-fullname_, and _suggest-address_
System-wide configuration files only. These are used by the bug
report commands which can be accessed from some of the Help
screens.
_busy-cue-rate_
When _Alpine_ is delayed for some reason it usually shows that
something is happening with a small animated display in the
status message line near the bottom of the screen. This option
sets how frequently the characters (for example, a spinning bar)
in the active status message lines are updated. At most, it can
be set to be udpated 20 times per second.
Setting this value to zero will prevent display of the
animations altogether.
The option busy-cue-spinner-only can be used to remove the
randomness from this animated display.
_character-set_
This is now obsolete, replaced by three separate variables:
_display-character-set_, _keyboard-character-set_, and
_posting-character-set_. See the section on International
Character Sets for more details.
_color-style_
UNIX _Alpine_ only (color is automatically on with _PC-Alpine_).
If the terminal or terminal emulator you are using is capable of
displaying colors, this variable controls whether or not color
will be used in _Alpine_. If you turn color on and things are
set up correctly, you should see color appear on the screen
immmediately. Modern terminal emulators are usually capable of
displaying colors.
This variable may be set to any of the following values:
no-color
Don't use color.
use-termdef
In order to decide if your terminal is capable of color,
_Alpine_ looks in the terminal capabilities database,
TERMINFO or TERMCAP, depending on how _Alpine_ was
compiled. This is a good option to choose if you switch
between a color and a non-color terminal with the same
_Alpine_ configuration. _Alpine_ will know to use color on
the color terminal because it is described in the termcap
entry, and _Alpine_ will know to use black and white on
the non-color terminal. Color Details has more information
about configuring a termcap entry for color. This is
usually something a system administrator does.
force-ansi-8color
Because setting up a termcap entry is confusing and
because the terminal capabilities database is often not
correctly configured for color, this choice and the next
may be easier for you to use. If your terminal emulator
responds to ANSI color escape sequences, which many do,
this option will cause _Alpine_ to believe your terminal
will respond to the escape sequences which produce eight
different foreground and background colors. The escape
sequences used to set the foreground colors are
ESC [ 3 <color_number> m
where the color_number is an ASCII digit between 0 and 7.
The numbers 0 through 7 should correspond to the colors
black, red, green, yellow, blue, magenta, cyan, and white.
Some terminal emulators use a pre-ANSI scheme which swaps
the colors blue and red and the colors yellow and cyan.
This will cause the default colors to be different, but
other than that things should work fine. There is also a
9th color available, the last one shown, which is the
default color from the terminal emulator. When used as a
background color some people refer to this color as
"transparent", which is why the letters "TRAN" are shown
in the color swatch of the SETUP COLOR screen. The
foreground transparent color is shown as the color of the
"TRAN" text. (The transparent color will not work
correctly in a PC-Alpine configuration.) The escape
sequences used to set the background colors are the same
as for the foreground colors except a "4" replaces the
"3".
Note: With the Tera Term terminal emulator this setting
works well. You should also have the Tera Term "Full
color" option turned OFF. You may find the "Full color"
option in Tera Term's "Setup" menu, in the "Window"
submenu.
force-ansi-16color
Many terminal emulators know about the same eight colors
above plus eight more. This option attempts to use all 16
colors. The same escape sequences as for the eight-color
terminal are used for the first eight colors. The escape
sequences used to set foreground colors 8-15 are the same
as for 0-7 except the "3" is replaced with a "9". The
background color sequences for colors 8-15 are the same as
for 0-7 except the "4" is replaced with "10". You can tell
if the 16 colors are working by turning on this option and
then going into one of the color configuration screens,
for example, the configuration screen for Normal Color. If
you see 16 different colors to select from (plus a 17th
for the transparent color), it's working.
force-xterm-256color
Some versions of xterm (and some other terminal emulators)
have support for 256 colors. The escape sequences used to
set the foreground colors are
ESC [ 38 ; 5 ; <color_number> m
where the color_number is an ASCII digit between 0 and
255. Background colors are the same with the 38 replaced
with a 48. The numbers 0 through 15 are probably similar
to the 16 color version above, then comes a 6x6x6 color
cube, followed by 24 colors of gray. The terminal default
(transparent) color is the 257th color at the bottom. Some
terminal emulators will misinterpret these escape
sequences causing the terminal to blink or overstrike
characters or to do something else undesirable.
The PuTTY terminal emulator has an option called "Allow
terminal to use xterm 256-colour mode" which allows PuTTY
to work well with this 256-color setting.
There are two other possible color values which may be useful in
some situations. In the color configuration screens there will
sometimes be a color which has the label "NORM" inside its color
swatch. If this is selected the corresponding foreground or
background Normal Color will be used. Another similar color is
the one that has the label "NONE" inside its color swatch. The
meaning of this setting is that no color changing will be done.
This NONE color is only useful in contexts where _Alpine_ is
already coloring the text some color other than the Normal
Color. For example, if the Reverse Color is set then the current
line in the MESSAGE INDEX will be colored. If one of the index
symbols (for example, the Index-to-me Symbol) has the NONE color
as its background then the symbol's foreground color will be
used to draw the actual text but the background color will be
the same as whatever the background color already was. The color
values which end up in the configuration file for these special
values are the 11-character words "norm-padded", "none-padded",
and "transparent".
The normal default is "no-color".
Once you've turned on color you may set the colors of many
objects on the screen individually. The Color Configuration
section has more information, or you may just try it by running
the "Setup" command and typing "K" for Kolor to enter the color
configuration screen (Kolor instead of Color because C means
Config). Most categories of color which _Alpine_ supports are
configurable there. Index line color is configured separately.
_composer-word-separators_
This option affects how a "word" is defined in the composer. The
definition of a word is used when using the Forward Word and
Backward Word commands in the composer, as well as when using
the spell checker. Whitespace is always considered a word
separator. Punctuation (like question marks, periods, commas,
and so on) is always a word separator if it comes at the end of
a word. By default, a punctuation character which is in the
middle of a word does not break up that word as long as the
character before and the character after it are both
alphanumeric. If you add a character to this option it will be
considered a word separator even when it occurs in the middle of
an alphanumeric word. For example, if you want to skip through
each part of an address instead of skipping the whole address at
once you might want to include"@" and "." in this list. If you
want the word-skipper to stop on each part of a UNIX filename
you could add "/" to the list. The equal sign and dash are other
possibilities you might find helpful.
_composer-wrap-column_
This option specifies an aspect of _Alpine_'s Composer. This
gives the maximum width that auto-wrapped lines will have. It's
also the maximum width of lines justified using the ^J Justify
command. The normal default is _74_. The largest allowed setting
is normally _80_ in order to prevent very long lines from being
sent in outgoing mail. When the mail is actually sent, trailing
spaces will be stripped off of each line.
_current-indexline-style_
current-indexline-style.
_customized-hdrs_
You may add your own custom headers to outgoing messages. Each
header you specify here must include the header tag (Reply-To:,
Approved:, etc.) and may optionally include a value for that
header. If you want to see these custom headers each time you
compose a message, you must add them to your
default-composer-hdrs list, otherwise they become part of the
rich header set which you only see when you press the rich
header command. (If you are looking for a way to change which
headers are _displayed_ when you view a message, take a look at
the viewer-hdrs option instead.) Here's an example which shows
how you might set your From address
From: Full Name <user@example.com>
and another showing how you might set a Reply-To address
Reply-To: user@example.com
You may also set non-standard header values here. For example,
you could add
Organization: My Organization Name
or even
X-Favorite-Colors: Purple and Gold
If you include a value after the colon then that header will be
included in your outgoing messages unless you delete it before
sending. If a header in the Customized-Headers list has only a
tag but no value, then it will not be included in outgoing
messages unless you edit a value in manually. For example, if
Reply-To:
is in the list, then the Reply-To header will be available for
editing but won't be included unless a value is added while in
the composer.
It's actually a little more complicated than that. The values of
headers that you set with the Customized-Headers option are
defaults. If the message you are about to compose already has a
value for a header, that value is used instead of a value from
your Customized-Headers. For example, if you are Replying to a
message the Subject field will already be filled in. In that
case, if the Customized-Headers list contains a Subject line,
the custom subject will _NOT_ be used. The subject derived from
the subject of the message you are Replying to will be used
instead.
It is also possible to make header setting even more complicated
and more automatic by using Roles, but if all you want to do is
set a default value for a header, you don't need to think about
Roles.
If you change your From address you may also find it useful to
add the changed From address to the alt-addresses configuration
option.
Limitation: Because commas are used to separate the list of
Customized-Headers, it is not possible to have the value of a
header contain a comma. Nor is there currently an "escape"
mechanism provided to make this work.
This option is displayed as "Customized Headers".
_dead-letter-files_
This option affects _Alpine_'s behavior when you cancel a
message being composed. _Alpine_'s usual behavior is to write
the canceled message to a file named "dead.letter" in your home
directory, or "DEADLETR" when using _PC-Alpine_, overwriting any
previous message.
If you set this option to a value higher than one, then that
many copies of dead letter files will be saved. For example, if
you set this option to "3" then you may have files named
"DEADLETR", "DEADLETR2", and "DEADLETR3"; or "dead.letter",
"dead.letter2", and "dead.letter3". In this example, the most
recently cancelled message will be in "dead.letter", and the
third most recently cancelled message will be in "dead.letter3".
The fourth most recently cancelled message will no longer be
saved.
If you set this option to zero, then NO record of canceled
messages is maintained.
If the feature Quell-Dead-Letter-On-Cancel is set, that
overrides whatever you set for this option. If this option had
existed at the time, then the Quell feature would not have been
added, but it is still there for backwards compatibility. So, in
order for this option to have the desired effect, make sure the
Quell feature is turned off.
_default-composer-hdrs_
You can control which headers you want visible when composing
outgoing email using this option. You can specify any of the
regular set, any Rich Header, or any Customized-Hdrs which you
have already defined. If you use this setting at all, you must
specify all the headers you want to see, you can't just add to
the regular header set. The default set is To:, Cc:, Attchmnt:,
and Subject:.
Note that the "Newsgroups:" header will be abbreviated in the
Composer display, but should be spelled out in full here.
This option is displayed as "Default Composer Headers".
_default-fcc_
The name of the folder to which all outgoing mail goes is set
here. The compiled-in default is _sent-mail_ (UNIX) or _sentmail_
(PC). It can be set to "" (two double quotes with nothing
between them) to turn off saving copies of outgoing mail. If
_default-fcc_ is a relative file name, then it is relative to
your default collection for saves (see folder-collections).
This option is displayed as "Default Fcc (File carbon copy)".
_default-saved-msg-folder_
This option determines the default folder name for _Saves_... If
this is not a path name, it will be in the default collection
for saves. Any valid folder specification, local or IMAP, is
allowed. This default folder only applies when the
saved-msg-name-rule doesn't override it. Unix _Alpine_ default
is normally _saved-messages_ in the default folder collection.
_PC-Alpine_ default is _SAVEMAIL_ (normally stored as
_SAVEMAIL.MTX_).
This option is displayed as "Default Saved Message Folder".
_disable-these-authenticators_
This variable is a list of SASL (Simple Authentication and
Security Layer) authenticators which will be disabled. SASL is a
mechanism for authenticating to IMAP, POP3, SMTP, and other
network servers.
_Alpine_ matches its list of supported authenticators with the
server to determine the most secure authenticator that is
supported by both. If no matching authenticators are found,
_Alpine_ will revert to plaintext login (or, in the case of SMTP,
will be unable to authenticate at all).
The candidates for disabling are listed below. There may be more
if you compile _Alpine_ with additional authenticators and/or a
newer version of the c-client library.
+ GSSAPI
+ CRAM-MD5
+ PLAIN
+ LOGIN
Normally, you will not disable any authenticators. There are two
exceptions:
1. You use a broken server that advertises an authenticator, but
does not actually implement it.
2. You have a Kerberos-capable version of _Alpine_ and the server
is also Kerberos-capable, but you can not obtain Kerberos
credentials on the server machine, thus you desire to disable
GSSAPI (which in turn disables _Alpine_'s Kerberos support).
It is never necessary to disable authenticators, since _Alpine_
will try other authenticators before giving up. However,
disabling the relevant authenticator avoids annoying error
messages.
_disable-these-drivers_
This variable is a list of mail drivers which will be disabled.
The candidates for disabling are listed below. There may be more
in the future if you compile _Alpine_ with a newer version of
the c-client library.
+ mbox
+ mbx
+ mh
+ mix
+ mmdf
+ mtx
+ mx
+ news
+ phile
+ tenex
+ unix
The _mbox_ driver enables the following behavior: if there is a
file called mbox in your home directory, and if that file is
either empty or in Unix mailbox format, then every time you open
_INBOX_ the _mbox_ driver will automatically transfer mail from
the system mail spool directory into the mbox file and delete it
from the spool directory. If you disable the _mbox_ driver, this
will not happen.
It is not recommended to disable the driver which supports the
system default mailbox format. On most non-SCO systems, that
driver is the _unix_ driver. On most SCO systems, it is the
_mmdf_ driver. The system default driver may be configured to
something else on your system; check with your system manager
for additional information.
It is most likely not very useful for you to disable any of the
drivers other than possibly _mbox_. You could disable some of
the others if you know for certain that you don't need them but
the performance gain in doing so is very modest.
_display-character-set_
See the discussion in International Character Sets for details.
_display-filters_
This option defines a list of text-filtering commands (programs
or scripts) that may be used to filter text portions of received
messages prior to their use (e.g., presentation in the "Message
Text" display screen). For security reasons, the full path name
of the filter command must be specified.
Display filters do not work with _PC-Alpine_.
The command is executed and the message is piped into its
standard input. The standard output of the command is read back
by _Alpine_. The __TMPFILE__ token (see below) overrides this
default behavior.
The filter's use is based on the configured _trigger_ string.
The format of a filter definition is:
<trigger> <command> <arguments>
You can specify as many filters as you wish, separating them
with a comma. Each filter can have only one trigger and command.
Thus, two trigger strings which invoke the same command require
separate filter specifications.
The _trigger_ is simply text that, if found in the message, will
invoke the associated command. If the trigger contains any space
characters, it must be placed within quotes. Likewise, should
you wish a filter to be invoked unconditionally, define the
trigger as the null string, "" (two consecutive double-quote
characters). If the trigger string is found anywhere in the text
of the message the filter is invoked. Placing the trigger text
within the tokens defined below changes where within the text
the trigger must be before considering it a match.
Trigger Modifying Tokens:
__CHARSET(string)__
This token tells _Alpine_ to invoke the supplied command
if the text is in a character set matching string (e.g.,
ISO-8859-2 or ISO-2022-JP).
__LEADING(string)__
This token tells _Alpine_ to invoke the supplied command
if the enclosed string is found to be the first
non-whitespace text.
NOTE: Quotes are necessary if string contains the space
character.
__BEGINNING(string)__
This token tells _Alpine_ to invoke the supplied command
if the enclosed string is found at the beginning of any
line in the text.
NOTE: Quotes are necessary if string contains the space
character.
The "command" and "arguments" portion is simply the command line
to be invoked if the trigger string is found. Below are tokens
that _Alpine_ will recognize and replace with special values
when the command is actually invoked.
Command Modifying Tokens:
__TMPFILE__
When the command is executed, this token is replaced with
the path and name of the temporary file containing the
text to be filtered. _Alpine_ expects the filter to
replace this data with the filter's result. NOTE: Use of
this token implies that the text to be filtered is not
piped into standard input of the executed command and its
standard output is ignored. _Alpine_ restores the tty
modes before invoking the filter in case the filter
interacts with the user via its own standard input and
output.
__RESULTFILE__
When the command is executed, this token is replaced with
the path and name of a temporary file intended to contain
a status message from the filter. _Alpine_ displays this
in the message status field.
__DATAFILE__
When the command is executed, this token is replaced with
the path and name of a temporary file that _Alpine_
creates once per session and deletes upon exit. The file
is intended to be used by the filter to store state
information between instances of the filter.
__PREPENDKEY__
When the command is executed, this token indicates that a
random number will be passed down the input stream before
the message text. This number could be used as a session
key. It does not appear as a command-line argument. It is
sent in this way to improve security. The number is unique
to the current _Alpine_ session and is only generated once
per session.
The feature disable-terminal-reset-for-display-filters is
related.
Performance caveat/considerations:
Testing for the trigger and invoking the filter doesn't come for
free. There is overhead associated with searching for the
trigger string, testing for the filter's existence and actually
piping the text through the filter. The impact can be reduced if
the Trigger Modifying Tokens above are employed.
Limitation:
If Header Colors are being used, the sequences of bytes which
indicate color changes will be contained in the text which is
passed to the display-filter. If this causes problems you'll
need to turn off Header Colors. The thirteen bytes which
indicate a color change are the character \377 followed by \010
for a foreground color or \011 for a background color. Then
comes eleven characters of RGB data which looks something like
255, 0,255, depending on the particular color, of course.
_download-command_
This option affects the behavior of the _Export_ command. It
specifies a Unix program name, and any necessary command line
arguments, that _Alpine_ can use to transfer the exported
message to your personal computer's disk.
_download-command-prefix_
This option is used in conjunction with the _download-command_
option. It defines text to be written to the terminal emulator
(via standard output) immediately prior to starting the download
command. This is useful for integrated serial line file transfer
agents that permit command passing (e.g., Kermit's APC method).
_editor_
UNIX _Alpine_ only. Sets the name of the alternate editor for
composing mail (message text only, not headers). It will be
invoked with the "^_" command or it will be invoked
automatically if the enable-alternate-editor-implicitly feature
is set.
_empty-header-message_
When sending, if both the To and Cc fields are empty and you are
sending the message to a Bcc, _Alpine_ will put a special
address in the To line. The default value is
"undisclosed-recipients: ;". The reason for this is to avoid
embarrassment caused by some Internet mail transfer software
that interprets a "missing" To: header as an error and replaces
it with an Apparently-to: header that may contain the addresses
you entered on the Bcc: line, defeating the purpose of the Bcc.
You may change the part of this message that comes before the ":
;" by setting the _empty-header-message_ variable to something
else.
_fcc-name-rule_
Determines default folder name for fcc when composing.
Currently, _Alpine_ will accept the values _default-fcc_,
_by-recipient_, or _last-fcc-used_. If set to _default-fcc_, then
_Alpine_ will use the value defined in the default-fcc variable
(which itself has a default) for the Fcc header field. If set to
_by-recipient_, then _Alpine_ will use the name of the recipient
as a folder name for the fcc. The relevant recipient is the
first address in the To field. If set to "last-fcc-used", then
_Alpine_ will offer to Fcc to whatever folder you used
previously. In all cases, the field can still be edited after it
is initially assigned. If the fcc field in the address book is
set for the first To address, that value over-rides any value
derived from this rule.
_feature-list_
This is a list of the many features (options) which may be
turned on or off. There is a separate section titled
Configuration Features which explains each of the features.
There is some additional explanation about the _feature-list_
variable itself in Feature List Variable.
_file-directory_
_PC-Alpine_ only. This value affects the Composer's "^J Attach"
command, the Attachment Index Screen's "S Save" command, and the
Message Index's "E Export" command.
Normally, when a filename is supplied that lacks a leading
"path" component, _Alpine_ assumes the file exists in the user's
home directory. Under Windows operating systems, this definition
isn't always clear. This feature allows you to explictly set
where _Alpine_ should look for files without a leading path.
NOTE: this feature's value is ignored if either use-current-dir
feature is set or the PINERC has a value for the operating-dir
variable.
_folder-collections_
This is a list of one or more collections where saved mail is
stored. See the sections describing folder collections and
collection syntax for more information. The first collection in
this list is the default collection for _Save_s, including
default-fcc's.
_folder-extension_
_PC-Alpine_ only. File extension used for local folder names.
This is .MTX by default.
_folder-reopen-rule_
_Alpine_ normally checks for new mail in the currently open
folder and in the INBOX every few minutes.
There are some situations where automatic new-mail checking does
not work. For example, if a mail folder is opened using the POP
protocol or a newsgroup is being read using the NNTP protocol,
then new-mail checking is disabled.
It may be possible to check for new mail in these cases by
reopening the folder. _Alpine_ does not do this for you
automatically, but you may do the commands manually to cause
this to happen. You reopen by going back to the folder list
screen from the message index screen with the "<" command, and
then going back into the message index screen with the ">"
command. (Actually, any method you would normally use to open a
folder will work the same as the "<" followed by ">" method. For
example, the GoTo Folder command will work, or you may use L to
go to the Folder List screen and Carriage Return to reopen the
folder.)
There are some cases where _Alpine_ knows that reopening the
folder should be useful as a way to discover new mail. At the
time of this writing, connections made using the POP protocol,
news reading using the NNTP protocol, local news reading, and
local ReadOnly folders which are in the traditional UNIX or the
MMDF format all fall into this category. There are other cases
where it _may_ be a way to discover new mail, but _Alpine_ has
no way of knowing, so it might also just be an exercise in
futility. All remote, ReadOnly folders other than those listed
just above fall into this category. The setting of this option
together with the type of folder controls how _Alpine_ will
react to the apparent attempt to reopen a folder.
If you don't reopen, then you will just be back in the message
index with no change. You left the index and came back, but the
folder remained "open" the whole time. However, if you do reopen
the folder, the folder is closed and then reopened. In this
case, the current state of the open folder is lost. The New
status, Important and Answered flags, selected state, Zoom
state, collapsed or expanded state of threads, current message
number, and any other temporary state is all lost when the
reopen happens. For POP folders (but not NNTP newsgroups) the
Deleted flags are also lost.
In the possibilities listed below, the text says "POP/NNTP" in
several places. That really implies the case where _Alpine_
knows it is a good way to discover new mail, which is more than
just POP and NNTP, but POP and NNTP are the cases of most
interest. This option probably has more possible values than it
deserves. They are:
Always reopen
_Alpine_ will not ask whether you want to reopen but will
just do the reopen whenever you type a command that
implies a reopen, regardless of the access method. In
other words, it is assumed you would always answer Yes if
asked about reopening.
Yes for POP/NNTP, Ask about other remote [Yes]
_Alpine_ will assume a Yes answer if the access method is
POP or NNTP, but will ask you whether to reopen other
remote folders, with a default answer of Yes.
Yes for POP/NNTP, Ask about other remote [No]
_Alpine_ will assume a Yes answer if the access method is
POP or NNTP, but will ask you whether to reopen other
remote folders, with a default answer of No.
Yes for POP/NNTP, No for other remote
_Alpine_ will assume a Yes answer if the access method is
POP or NNTP, and will assume a No answer for all other
remote folders.
Always ask [Yes]
_Alpine_ will not differentiate based on access method. It
will always ask for all remote folders, with a default
answer of Yes.
Always ask [No]
_Alpine_ will not differentiate based on access method. It
will always ask for all remote folders, with a default
answer of No.
Ask about POP/NNTP [Yes], No for other remote
_Alpine_ will ask if the access method is POP or NNTP,
with a default answer of Yes. It will never attempt to
reopen other remote folders.
Ask about POP/NNTP [No], No for other remote
This is the default. _Alpine_ will ask if the access
method is POP or NNTP, with a default answer of No. It
will never attempt to reopen other remote folders.
Never reopen
_Alpine_ will never attempt to reopen already open
folders.
Remember, wherever it says POP or NNTP above it really means POP
or NNTP or any of the other situations where it is likely that
reopening is a good way to discover new mail.
There is an alternative that may be of useful in some
situations. Instead of manually checking for new mail you can
set up a Mail Drop and automatically check for new mail.
_folder-sort-rule_
This option controls the order in which folder list entries will
be presented in the FOLDER LIST screen. Choose one of the
following:
_Alphabetical_
sort by alphabetical name independent of type
_Alpha-with-dirs-last_
sort by alphabetical name grouping directory entries to
the end of the list
_Alpha-with-dirs-first_
sort by alphabetical name grouping directory entries to
the start of the list
The normal default is _Alphabetical_.
_font-name_
Winsock version of _PC-Alpine_ only.
_font-size_
Winsock version of _PC-Alpine_ only.
_font-style_
Winsock version of _PC-Alpine_ only.
_forced-abook-entry_
System-wide _Alpine_ configuration files only. Force these
address book entries into all writable personal address books.
This is a list variable. Each item in the list has the form:
Nickname | Fullname | Address
with optional whitespace in all the obvious places.
_form-letter-folder_
A Form Letter Folder is a mail folder that is intended to
contain messages that you have composed and that are intended to
be sent in their original form repeatedly.
Setting this variable will alter _Alpine_'s usual behavior when
you execute the Compose command. Normally, _Alpine_ offers a
chance to continue a postponed or interrupted message should one
or the other exist. When this variable is set to a folder name
that exists, _Alpine_ will also offer the chance to select a
message from the folder to insert into the composer, much like
when continuing a postponed message. The difference, however, is
that _Alpine_ will not automatically delete the selected message
from the Form Letter Folder.
Setting this variable will also affect _Alpine_'s behavior when
you Postpone a message from the composer. Normally, _Alpine_
simply stashes the message away in your Postponed-Folder.
Regardless of the specified folder's existence, _Alpine_ will
ask which folder you intend the message to be stored in. Choose
the "F" option to store the message in your Form Letter Folder.
This is the most common way to add a message to the folder.
Another method of adding messages to the folder is via the
_Alpine_ composer's Fcc: field. If you are sending a message that
you expect to send in the same form again, you can enter the
Form Letter Folder's name in this field. _Alpine_, as usual,
will copy the message as it's sent. Note, when you later select
this message from your Form Letter Folder, it will have the same
recipients as the original message.
To delete a message from the Form Letter Folder, you can either
select the folder from a suitable FOLDER LIST screen, or use the
Delete command in the MESSAGE INDEX offered when selecting from
the folder as part of the Compose command. You can delete a Form
Letter Folder just as any other folder from a suitable FOLDER
LIST screen.
You may find that the Roles facility can be used to replace the
Form Letter Folder.
_global-address-book_
A list of shared address books. Each entry in the list is an
optional nickname followed by a pathname or file name relative
to the home directory. A SPACE character separates the nickname
from the rest of the line. Instead of a local pathname or file
name, a remote folder name can be given. This causes the address
book to be a Remote address book. Remote folder syntax is
discussed in Syntax for Remote Folders. This list will be added
to the address-book list to arrive at the complete set of
address books. Global address books are defined to be ReadOnly.
_goto-default-rule_
This value affects _Alpine_'s behavior when using the _Goto_
command. There are five possible values for this option:
_folder-in-first-collection_
_Alpine_ will offer the most recently visited folder in
the default collection found in the "Collection List"
screen as the default.
_inbox-or-folder-in-first-collection_
If the current folder is _INBOX_, _Alpine_ will offer the
most recently visited folder in the default collection
found in the "Collection List" screen. If the current
folder is other than _INBOX_, _INBOX_ is offered as the
default.
_inbox-or-folder-in-recent-collection_
This is _Alpine_'s default behavior. If the current folder
is _INBOX_, _Alpine_ will offer the last open folder as
the default. If the current folder is other than _INBOX_,
_INBOX_ is offered as the default.
_first-collection-with-inbox-default_
Instead of offering the most recently visited folder in
the default collection, the default collection is offered
but with _INBOX_ as the default folder. If you type in a
folder name it will be in the default collection. If you
simply accept the default, however, your _INBOX_ will be
opened.
_most-recent-folder_
The last accepted value simply causes the most recently
opened folder to be offered as the default regardless of
the currently opened folder.
NOTE: The default while a newsgroup is open remains the same;
the last open newsgroup.
_header-general-background-color_
_header-general-foreground-color_
Header Colors.
_image-viewer_
This variable names the program to call for displaying parts of
a MIME message that are of type IMAGE. If your system supports
the _mailcap_ system, you don't need to set this variable.
_inbox-path_
This specifies the name of the folder to use for the _INBOX_. By
default this is unset and the system's default is used. The most
common reason for setting this is to open an IMAP mailbox for
the _INBOX_. For example, _{imap5.u.example.edu}inbox_ will open
the user's standard _INBOX_ on the mail server, _imap5_.
_incoming-archive-folders_
This is like read-message-folder, only more general. This is a
list of folder pairs, with the first separated from the second
in the pair by a space. The first folder in a pair is the folder
you want to archive, and the second folder is the folder that
read messages from the first should be moved to. Depending on
how you define the auto-move-read-msgs feature, you may or may
not be asked when you leave the first folder if you want read
messages to be moved to the second folder. In either case,
moving the messages means they will be deleted from the first
folder.
If these are not path names, they will be in the default
collection for _Save_s. Any valid folder specification, local or
remote (via IMAP), is allowed. There is no default.
_incoming-check-interval_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
This option specifies, in seconds, how often _Alpine_ will check
for new mail and state changes in Incoming Folders when Incoming
Folders Checking is turned on. The default is 3 minutes (180).
This value applies only to folders that are local to the system
that _Alpine_ is running on or that are accessed using the IMAP
protocol. The similar option incoming-check-interval-secondary
applies to all other monitored folders.
_incoming-check-interval-secondary_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
This option together with the option incoming-check-interval
specifies, in seconds, how often _Alpine_ will check for new
mail and state changes in Incoming Folders when Incoming Folders
Checking is turned on. The default for this option is 3 minutes
(180). For folders that are local to this system or that are
accessed using the IMAP protocol the value of the option
incoming-check-interval is used. For all other monitored
folders, the value of this option is used.
The reason there are two separate options is because it is
usually less expensive to check local and IMAP folders than it
is to check other types, like POP or NNTP folders. You may want
to set this secondary value to a higher number than the primary
check interval.
_incoming-check-list_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
When monitoring the Incoming Message Folders for Unseen messages
Alpine will normally monitor all Incoming Folders. You may use
this option to restrict the list of monitored folders to a
subset of all Incoming Folders.
_incoming-check-timeout_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
Sets the time in seconds that Alpine will attempt to open a
network connection used for monitoring for Unseen messages in
Incoming Folders. The default is 5. If a connection has not
completed within this many seconds Alpine will give up and
consider it a failed connection.
_incoming-folders_
This is a list of one or more folders other than _INBOX_ that
may receive new messages. This list is slightly special in that
it is always expanded in the folder lister. In the future, it
may become more special. For example, it would be nice if
_Alpine_ would monitor the folders in this list for new mail.
_incoming-startup-rule_
This rule affects _Alpine_'s behavior when opening the _INBOX_
or another folder from the "INCOMING MESSAGE FOLDERS". This rule
tells _Alpine_ which message to make the current message when an
incoming folder is opened. There are seven possible values for
this option:
_first-unseen_
The current message will be the first unseen message which
has not been marked deleted, or the last message if all of
the messages have been seen. This is the default setting.
_first-recent_
This is similar to _first-unseen_. Instead of first unseen
it is the first recent message. A message is considered to
be recent if it arrived since the last time the folder was
open (by any mail client, not just the current one). So
this option causes the current message to be set to the
first undeleted-recent message, or the last message if
none is both undeleted and recent.
_first-important_
This will result in the current message being set to the
first message marked Important (but not Deleted). If no
messages are marked Important, then it will be the last
message.
_first-important-or-unseen_
This selects the minimum of the first unseen and the first
important messages.
_first-important-or-recent_
This selects the first of the first recent and the first
important messages.
_first_
Set the current message to the first undeleted message
unless all are deleted. In that case set it to the last
message.
_last_
Set the current message to the last undeleted message
unless all are deleted. In that case set it to the last
message.
_incoming-unseen-background-color_
_incoming-unseen-foreground-color_
Incoming Unseen Color.
_index-answered-background-color_
_index-answered-foreground-color_
_index-arrow-background-color_
_index-arrow-foreground-color_
_index-deleted-background-color_
_index-deleted-foreground-color_
_index-from-background-color_
_index-from-foreground-color_
_index-highpriority-background-color_
_index-highpriority-foreground-color_
_index-important-background-color_
_index-important-foreground-color_
_index-lowpriority-background-color_
_index-lowpriority-foreground-color_
_index-new-background-color_
_index-new-foreground-color_
_index-opening-background-color_
_index-opening-foreground-color_
_index-recent-background-color_
_index-recent-foreground-color_
_index-subject-background-color_
_index-subject-foreground-color_
_index-to-me-background-color_
_index-to-me-foreground-color_
_index-unseen-background-color_
_index-unseen-foreground-color_
Index Colors.
_index-format_
This option is used to customize the content of lines in the
MESSAGE INDEX screen. Each line is intended to convey some
amount of immediately relevant information about each message in
the current folder.
_Alpine_ provides a pre-defined set of informational fields with
reasonable column widths automatically computed. You can,
however, replace this default set by listing special tokens in
the order you want them displayed.
The list of available tokens is here.
Spaces are used to separate listed tokens. Additionally, you can
specify how much of the screen's width the taken's associated
data should occupy on the index line by appending the token with
a pair of parentheses enclosing either a number or percentage.
For example, "SUBJECT(13)" means to allocate 13 characters of
space to the subject column, and "SUBJECT(20%)" means to
allocate 20% of the available space to the subjects column,
while plain "SUBJECT" means the system will attempt to figure
out a reasonable amount of space.
There is always one space between every pair of columns, so if
you use fixed column widths (like 13) you should remember to
take that into account. Several of the fields are virtually
fixed-width, so it doesn't make much sense to specify the width
for them. The fields STATUS, FULLSTATUS, IMAPSTATUS, MSGNO, the
DATE fields, SIZE, and DESCRIPSIZE all fall into that category.
You _may_ specify widths for those if you wish, but you're
probably better off letting the system pick those widths.
The default is equivalent to:
index-format=STATUS MSGNO SMARTDATETIME24 FROMORTO(33%) SIZENARROW SUBJ
KEY(67%)
This means that the four fields without percentages will be
allocated first, and then 33% and 67% of the _remaining_ space
will go to the from and subject fields. If one of those two
fields is specified as a percentage and the other is left for
the system to choose, then the percentage is taken as an
absolute percentage of the screen, not of the space remaining
after allocating the first four columns. It doesn't usually make
sense to do it that way. If you leave off all the widths, then
the subject and from fields (if both are present) are allocated
space in a 2 to 1 ratio, which is almost exactly the same as the
default.
What you are most likely to do with this configuration option is
to specify which fields appear at all, which order they appear
in, and the percentage of screen that is used for the from and
subject fields if you don't like the 2 to 1 default.
If you want to retain the default format that _Pine_ 4.64 had,
use
Index-Format=STATUS MSGNO DATE FROMORTO(33%) SIZE SUBJKEY(67%)
_and_ set the feature Disable-Index-Locale-Dates.
_initial-keystroke-list_
This is a comma-separated list of keystrokes which _Alpine_
executes on startup. Items in the list are usually just
characters, but there are some special values. _SPACE,_ _TAB,_
and _CR_ mean a space character, tab character, and a carriage
return, respectively. _F1_ through _F12_ stand for the twelve
function keys. _UP, DOWN, LEFT, _and_ RIGHT _stand for the arrow
keys. Control characters are represented with _^<char>_. A
restriction is that you can't mix function keys and character
keys in this list even though you can, in some cases, mix them
when running _Alpine_. A user can always use only _character_
keys in the startup list even if he or she is using _function_
keys normally, or vice versa. If an element in this list is a
string surrounded by double quotes (") then it will be expanded
into the individual characters in the string, excluding the
double quotes.
_kblock-passwd-count_
System-wide _Alpine_ configuration files only. Number of times a
user will have to enter a password when they run the keyboard
lock command in the main menu.
_keyboard-character-set_
See the discussion in International Character Sets for details.
_keylabel-background-color_
_keylabel-foreground-color_
KeyLabel Color.
_keyname-background-color_
_keyname-foreground-color_
KeyName Color.
_keywords_
You may define your own set of keywords and optionally set them
on a message by message basis. These are similar to the
"Important" flag which the user may set using the Flag command.
The difference is that the Important flag is always present for
each folder. User-defined keywords are chosen by the user. You
may set up the list of possible keywords here, or you may add
keywords from the Flag Details screen that you can get to after
typing the Flag (*) command. After the keywords have been
defined, then you use the Flag command to set or clear the
keywords in each message. The behavior of the flag command may
be modified by using the Enable-Flag-Screen-Implicitly option or
the Enable-Flag-Screen-Keyword-Shortcut option.
Keywords may be used when Selecting messages (Select Keyword).
Keywords may also be used in the Patterns of Rules (Filters,
Indexcolors, etc). Filter rules may be used to set keywords
automatically. Keywords may be displayed as part of the Subject
of a message by using the SUBJKEY or SUBJKEYINIT tokens in the
Index-Format option. The Keyword-Surrounding-Chars option may be
used to modify the display of keywords using SUBJKEY and
SUBJKEYINIT slightly. Keywords may also be displayed in a column
of their own in the MESSAGE INDEX screen by using the KEY or
KEYINIT tokens. It is also possible to color keywords in the
index using the Setup/Kolor screen (Keyword Colors). Keywords
are not supported by all mail servers.
You may give keywords nicknames if you wish. If the keyword
definition you type in contains a SPACE character, then the
actual value of the keyword is everything after the last SPACE
and the nickname for that keyword is everything before the last
SPACE. For example, suppose you are trying to interoperate with
another email program which uses a particular keyword with an
unpleasant name. Maybe it uses a keyword called
VendorName.SoftwareName.08
but for you that keyword means that the message is work-related.
You could define a keyword to have the value
Work VendorName.SoftwareName.08
and then you would use the name "Work" when dealing with that
keyword in _Alpine_. If you defined it as
My Work VendorName.SoftwareName.08
the nickname would be everything before the last SPACE, that is
the nickname would be "My Work".
Some commonly used keywords begin with dollar signs. This
presents a slight complication, because the dollar sign is
normally used to signify environment variable expansion in the
_Alpine_ configuration. In order to specify a keyword which
begins with a dollar sign you must precede the dollar sign with
a second dollar sign to escape its special meaning. For example,
if you want to include the keyword
$Label1
as one of your possible keywords, you must enter the text
$$Label1
instead.
_keyword-surrounding-chars_
This option controls a minor aspect of _Alpine_'s MESSAGE INDEX
and MESSAGE TEXT screens. If you have modified the Index-Format
option so that either the "SUBJKEY" or "SUBJKEYINIT" tokens are
used to display keywords or their initials along with the
Subject; then this option may be used to modify the resulting
display slightly. By default, the keywords or initials displayed
for these tokens will be surrounded with curly braces ({ and })
and a trailing space. For example, if keywords "Work" and "Now"
are set for a message, the "SUBJKEY" token will normally look
like
{Work Now} actual subject
and the SUBJKEYINIT token would look like
{WN} actual subject
The default character before the keywords is the left brace ({)
and the default after the keywords is the right brace followed
by a space (} ).
This option allows you to change that. You should set it to two
values separated by a space. The values may be quoted if they
include space characters. So, for example, the default value
could be specified explicitly by setting this option to
Keyword-Surrounding-Chars="{" "} "
The first part wouldn't need to be quoted (but it doesn't hurt).
The second part does need the quotes because it includes a space
character. If you wanted to change the braces to brackets you
could use
Keyword-Surrounding-Chars="[" "] "
Inside the quotes you can use backslash quote to mean quote, so
Keyword-Surrounding-Chars="\"" "\" "
would produce
"Work Now" actual subject
It is also possible to color keywords in the index using the
Setup/Kolor screen (Keyword Colors).
It is not possible to change the fact that a space character is
used to separate the keywords if more than one keyword is set
for a message. It is also not possible to change the fact that
there are no separators between the keyword initials if more
than one keyword is set.
This option is displayed as "Keyword Surrounding Characters".
_last-time-prune-questioned_
Personal configuration file only. This variable records the
month the user was last asked if his or her _sent-mail_ folders
should be pruned. The format is _yy.mm_. This is automatically
updated by _Alpine_ when the the pruning is done or declined. If
a user wanted to make _Alpine_ stop asking this question he or
she could set this time to something far in the future. This may
not be set in the system-wide configuration files. Note: The _yy_
year is actually the number of years since 1900, so it will be
equal to 101 in the year 2001.
_last-version-used_
Personal configuration file only. This is set automatically by
_Alpine_. It is used to keep track of the last version of _Alpine_
that was run by the user. Whenever the version number increases,
a new version message is printed out. This may not be set in the
system-wide configuration files.
_ldap-servers_
This is only available if _Alpine_ was linked with an LDAP
library when it was compiled. This variable is normally managed
by _Alpine_ though it can be set in the system-wide
configuration files as well as the personal configuration. It is
a list variable. Each item in the list contains quite a bit of
extra information besides just the server name. To put this into
a system-wide config file the easiest thing to do is to
configure a personal _Alpine_ for the LDAP server then copy the
configuration line into the system-wide config file. Each item
in the list looks like:
server_name[:port] "quoted stuff"
The server_name is just a hostname and it is followed by an
optional colon and port number. The default port is 389.
Following the server name is a single SPACE character followed
by a bunch of characters inside double quotes. The part inside
the quotes is a set of _tag_ = _value_ pairs. Each tag is
preceded by a slash (/) and followed by an equal sign. The value
for that tag is the text up to the next slash. An example of
some quoted stuff is:
"/base=o=University of Washington, c=US/impl=0/.../nick=My Server"
This would set the search base for this server to o=University
of Washington, c=US, set the implicit bit to zero, and set the
nickname for the server to My Server. All of the tags correspond
directly to items in the Setup/Directory screen so experiment
with that if you want to see what the possible tags and values
are.
_literal-signature_
With this option your actual signature, as opposed to the name
of a file containing your signature, is stored in the _Alpine_
configuration file. If this is defined it takes precedence over
the _signature-file_ option.
This is simply a different way to store the signature data. The
signature is stored inside your _Alpine_ configuration file
instead of in a separate signature file. Tokens contained in the
signature work the same way they do with the regular
signature-file.
The Setup/Signature command in _Alpine_'s Main Menu will edit
the _literal-signature_ by default. However, if no
_literal-signature_ is defined and the file named in the
_signature-file_ option exists, then the latter will be used
instead. Compose (Reply, Forward, ...) will default to using the
_literal-signature_ if defined, otherwise it will use the
contents of the file named in _signature-file_.
The _Alpine_ composer is used to edit the literal-signature. The
result of that edit is first converted to a C-style string
before it is stored in the configuration file. In particular,
the two character sequence \n (backslash followed by the
character "n") will be used to signify a line-break in the
signature. You don't have to enter the \n, but it will be
visible in the SETUP CONFIGURATION window after you are done
editing the signature.
_mail-check-interval_
This option specifies, in seconds, how often _Alpine_ will check
for new mail. If set to zero, new-mail checking is disabled.
(You can always manually force a new-mail check by typing ^L
(Ctrl-L), which is also the command to refresh the screen, or by
typing the Next command when the current message is the last
message of the folder.) There is a minimum value for this
option, normally 15 seconds. The default value is normally 150
seconds. The higher you set this option, the easier it is on the
server.
There are some situations where automatic new-mail checking does
not work. See the discussion about new-mail checking in
folder-reopen-rule.
The new-mail checking will not happen exactly at the frequency
that you specify. For example, _Alpine_ may elect to defer a
non-INBOX mail check if you are busy typing. Or, it may check
more frequently than you have specified if that is thought to be
necessary to keep the server from closing the connection to the
folder due to inactivity. If _Alpine_ checks for new mail as a
side effect of another command, it will reset the timer, so that
new-mail checking may seem to happen irregularly instead of
every X seconds like clockwork.
If you are anxious to know about new mail as soon as possible,
set the check interval low, and you'll know about the new mail
by approximately that amount of time after it arrives. If you
aren't so worried about knowing right away, set this option to a
higher value. That will save the server some processing time and
may save you some of the time you spend waiting for new-mail
checks to happen if you are dealing with a slow server or slow
network connection.
If you suspect that new-mail checking is causing slow downs for
you, you may want to look into the options
Quell-Mailchecks-Composing-Except-Inbox,
Quell-Mailchecks-Composing-Inbox and
Mail-Check-Interval-Noncurrent, which refine when mail checking
is done.
If the mailbox being check uses a Mail Drop then there is a
minimum time (maildrop-check-minimum) between new-mail checks.
Because of this minimum you may notice that new mail does not
appear promptly when you expect it. The reason for this is to
protect the server from over-zealous opening and closing of the
Mail Drop folder, since that is a costly operation.
A side effect of disabling mail checking is that there will be
situations in which the user's IMAP connection will be broken
due to inactivity timers on the server. Another side effect is
that the user-input-timeout option won't work.
_mail-check-interval-noncurrent_
This option is closely related to the Mail-Check-Interval
option, as well as the Quell-Mailchecks-Composing-Except-Inbox
and Quell-Mailchecks-Composing-Inbox options. If the
"Mail-Check-Interval" option is set to zero, then automatic
new-mail checking is disabled and this option will have no
effect.
Normally this option is set to zero, which means that the value
used will be the same as the value for the
"Mail-Check-Interval". If you set this option to a value
different from zero (usually larger than the value for
"Mail-Check-Interval") then that is the check interval that will
be used for folders which are not the currently open folder or
the INBOX. You may not even have any folders that are noncurrent
and not the INBOX. If you do, it is likely that they are due to
Stay-Open-Folders you have configured. This option also affects
the rate of mail checking done on cached connections to folders
you previously had open but are no longer actively using. You
aren't expected to understand that last sentence, but if you are
interested take a look at Max-Remote-Connections, and the
related options.
_mail-directory_
This variable was more important in previous versions of
_Alpine_. Now it is used only as the default for storing personal
folders (and only if there are no folder-collections defined).
The default value is _~/mail_ on UNIX and _${HOME}\MAIL_ on a
PC.
_mailcap-search-path_
This variable is used to replace _Alpine_'s default mailcap file
search path. It takes one or more file names (full paths must be
specified) in which to look for mail capability data.
_maildrop-check-minimum_
New-mail checking for a Mail Drop is a little different from new
mail checking for a regular folder. One of the differences is
that the connection to the Mail Drop is not kept open and so the
cost of checking (delay for you and additional load for the
server) may be significant. Because of this additional cost we
set a minimum time that must pass between checks. This minimum
only applies to the automatic checking done by _Alpine_. If you
force a check by typing ^L (Ctrl-L) or by typing the Next
command when you are at the end of a folder index, then the
check is done right away.
This option specifies, in seconds, the _minimum_ time between
Mail Drop new-mail checks. You may want to set this minimum high
in order to avoid experiencing some of the delays associated
with the checks. Note that the time between checks is still
controlled by the regular Mail-Check-Interval option. When
_Alpine_ is about to do an automatic check for new mail (because
the Mail-Check-Interval has expired) then if the time since the
last new-mail check of any open Mail Drops has been greater than
the MailDrop-Check-Minimum, the Mail Drop is checked for new
mail as well. Therefore, it is only useful to set this option to
a value that is higher than the Mail-Check-Interval.
If this option is set to zero, automatic Mail Drop new-mail
checking is disabled. There is a minimum value, normally 60
seconds. The default value is normally 60 seconds as well. This
applies to the INBOX and to the currently open folder if that is
different from the INBOX.
_max-remote-connections_
This option affects low-level behavior of _Alpine_. The default
value for this option is _2_. If your INBOX is accessed using
the IMAP protocol from an IMAP server, that connection is kept
open throughout the duration of your _Alpine_ session,
independent of the value of this option. The same is true of any
Stay-Open-Folders you have defined. This option controls
_Alpine_'s behavior when connecting to remote IMAP folders other
than your INBOX or your Stay-Open-Folders. It specifies the
maximum number of remote IMAP connections (other than those
mentioned above) that _Alpine_ will use for accessing the rest
of your folders. If you set this option to zero, you will turn
off most remote connection re-use. It's difficult to understand
exactly what this option does, and it is usually fine to leave
it set to its default value. It is probably more likely that you
will be interested in setting the Stay-Open-Folders option
instead of changing the value of this option. A slightly longer
explanation of what is going on with this option is given in the
next paragraphs.
There are some time costs involved in opening and closing remote
IMAP folders, the main costs being the time you have to wait for
the connection to the server and the time for the folder to
open. Opening a folder may involve not only the time the server
takes to do its processing but time that _Alpine_ uses to do
filtering. These times can vary widely. They depend on how
loaded the server is, how large the folder being opened is, and
how you set up filtering, among other things. Once _Alpine_ has
opened a connection to a particular folder, it will attempt to
keep that connection open in case you use it again. In order to
do this, _Alpine_ will attempt to use the Max-Remote-Connections
(the value of this option) IMAP connections you have alloted for
this purpose.
For example, suppose the value of this option is set to "2". If
your INBOX is accessed on a remote server using the IMAP
protocol, that doesn't count as one of the remote connections
but it is always kept open. If you then open another IMAP
folder, that would be your first remote connection counted as
one of the Max-Remote-Connections connections. If you open a
third folder the second will be left open, in case you return to
it. You won't be able to tell it has been left open. It will
appear to be closed when you leave the folder but the connection
will remain in the background. Now suppose you go back to the
second folder (the first folder after the INBOX). A connection
to that folder is still open so you won't have to wait for the
startup time to open it. Meanwhile, the connection to the third
folder will be left behind. Now, if you open a fourth folder,
you will bump into the Max-Remote-Connections limit, because
this will be the third folder other than INBOX and you have the
option set to "2". The connection that is being used for the
third folder will be re-used for this new fourth folder. If you
go back to the third folder after this, it is no longer already
connected when you get there. You'll still save some time since
_Alpine_ will re-use the connection to the fourth folder and you
have already logged in on that connection, but the folder will
have to be re-opened from scratch.
If a folder is large and the startup cost is dominated by the
time it takes to open that folder or to run filters on it, then
it will pay to make the value of this option large enough to
keep it open. On the other hand, if you only revisit a handful
of folders or if the folders are small, then it might make more
sense to keep this number small so that the reconnect time (the
time to start up a new connection and authenticate) is
eliminated instead.
You may also need to consider the impact on the server. On the
surface, a larger number here may cause a larger impact on the
server, since you will have more connections open to the server.
On the other hand, not only will _you_ be avoiding the startup
costs associated with reopening a folder, but the _server_ will
be avoiding those costs as well.
When twenty five minutes pass without any active use of an IMAP
connection being saved for possible re-use, that connection will
be shut down,
This option is displayed as "Maximum Remote Connections".
_meta-message-background-color_
_meta-message-foreground-color_
Meta-message Color.
_mimetype-search-path_
This variable is used to replace _Alpine_'s default mime.types
file search path. It takes one or more file names (full paths
must be specified) in which to look for file-name-extension to
MIME type mapping data. See the Config Notes for details on
_Alpine_'s usage of the MIME.Types File.
_new-version-threshold_
When a new version of _Alpine_ is run for the first time it
offers a special explanatory screen to the user upon startup.
This option helps control when and if that special screen
appears for users that have previously run _Alpine_. It takes as
its value a _Alpine_ version number. _Alpine_ versions less than
the specified value will supress this special screen while
versions equal to or greater than that specified will behave
normally.
_newmail-fifo-path_
This option is only available in UNIX _Alpine_. However, there
is a very similar feature built in to _PC-Alpine_. In
_PC-Alpine_'s Config menu at the top of the screen is an option
called "New Mail Window".
You may have _Alpine_ create a FIFO special file (also called a
named pipe, see mkfifo(3) and fifo(4)) where it will send a
one-line message each time a new message is received in the
current folder, the INBOX, or any open Stay-Open-Folders. To
protect against two different _Alpine_s both writing to the same
FIFO, _Alpine_ will only create the FIFO and write to it if it
doesn't already exist.
A possible way to use this option would be to have a separate
window on your screen running the command
cat filename
where "filename" is the name of the file given for this option.
Because the file won't exist until after you start _Alpine_, you
must _first_ start _Alpine_ and _then_ run the "cat" command.
You may be tempted to use "tail -f filename" to view the new
mail log. However, the common implementations of the tail
command will not do what you are hoping.
The width of the messages produced for the FIFO may be altered
with the NewMail-Window-Width option.
On some systems, fifos may only be created in a local
filesystem. In other words, they may not be in NFS filesystems.
This requirement is not universal. If the system you are using
supports it, it should work. (It is often the case that your
home directory is in an NFS filesystem. If that is the case, you
might try using a file in the "/tmp" filesystem, which is
usually a local filesytem.) Even when it is possible to use an
NFS-mounted filesystem as a place to name the fifo (for example,
your home directory), it will still be the case that the reader
(probably the "cat" command) and the writer (_Alpine_) of the
fifo must be running on the same system.
_newmail-window-width_
UNIX _Alpine_ only.
This option is only useful if you have turned on the
NewMail-FIFO-Path option. That option causes new mail messages
to be sent to a fifo file. Those messages will be 80 characters
wide by default. You can change the width of the messages by
changing this option. For example, if you are reading those
messages in another window you might want to set this width to
the width of that other window.
For UNIX _Alpine_, this option is only useful if you have turned
on the NewMail-FIFO-Path option. That option causes new mail
messages to be sent to a fifo file. Those messages will be 80
characters wide by default. You can change the width of those
messages by changing this option. For example, if you are
reading those messages in another window you might want to set
this width to the width of that other window.
If you are using _PC-Alpine_, it has an option in the Config
menu to turn on the "New Mail Window". The present option also
controls the width of that window.
_news-active-file-path_
This option tells _Alpine_ where to look for the "active file"
for newsgroups when accessing news locally, rather than via
NNTP. The default path is usually /usr/lib/news/active.
_news-collections_
This is a list of collections where news folders are located.
See the section describing collections for more information.
_news-spool-directory_
This option tells _Alpine_ where to look for the "news spool"
for newsgroups when accessing news locally, rather than via
NNTP. The default path is usually /usr/spool/news.
_newsrc-path_
This option overrides the default name _Alpine_ uses for your
"newsrc" news status and subscription file. If set, _Alpine_
will take this value as the full pathname for the desired newsrc
file.
_nntp-range_
This option applies only to newsgroups accessed using the NNTP
protocol. It does not, for example, apply to newsgroups accessed
using an IMAP-to-NNTP proxy.
When you open a connection to a News server using the NNTP
protocol, you normally have access to all of the articles in
each newsgroup. If a server keeps a large backlog of messages it
may speed performance some to restrict attention to only the
newer messages in a group. This option allows you to set how
many article numbers should be checked when opening a newsgroup.
You can think of "nntp-range" as specifying the maximum number
of messages you ever want to see. For example, if you only ever
wanted to look at the last 500 messages in each newsgroup you
could set this option to 500. In actuality, it isn't quite that.
Instead, for performance reasons, it specifies the range of
article numbers to be checked, beginning with the highest
numbered article and going backwards from there. If there are
messages that have been canceled or deleted their article
numbers are still counted as part of the range.
So, more precisely, setting the "nntp-range" will cause article
numbers
last_article_number - nntp-range + 1 through last_article_number
to be considered when reading a newsgroup. The number of
messages that show up in your index will be less than or equal
to the value of "nntp-range".
The purpose of this option is simply to speed up access when
reading news. The speedup comes because _Alpine_ can ignore all
but the last nntp-range article numbers, and can avoid
downloading any information about the ignored articles. There is
a cost you pay for this speedup. That cost is that there is no
way for you to see those ignored articles. The articles that
come before the range you specify are invisible to you and to
_Alpine_, as if they did not exist at all. There is no way to see
those messages using, for example, an unexclude command or
something similar. The only way to see those articles is to set
this option high enough (or set it to zero) and then to reopen
the newsgroup.
If this option is set to 0 (which is also the default), then the
range is unlimited. This option applies globally to all NNTP
servers and to all newsgroups on those servers. There is no way
to set different values for different newsgroups or servers.
_nntp-server_
One or more NNTP servers (host name or IP address) which _Alpine_
will use for reading and posting news. If you read and post news
to and from a single NNTP server, you can get away with only
setting the _nntp-server_ variable and leaving the
_news-collections_ variable unset.
When you define an NNTP server, _Alpine_ implicitly defines a
news collection for you, assuming that server as the news server
and assuming that you will use the NNTP protocol and a local
newsrc configuration file for reading news. See also Configuring
News.
Your NNTP server may offer NNTP "AUTHINFO SASL" or "AUTHINFO
USER" authentication. It may even require it. If your NNTP
server does offer such authentication you may specify a user
name parameter to cause _Alpine_ to attempt to authenticate. The
same is true for the server name in a folder collection which
uses NNTP. This parameter requires an associated value, the
username identifier with which to establish the server
connection. An example might be:
nntpserver.example.com/user=katie
If authentication is offered by the server, this will cause
_Alpine_ to attempt to use it. If authentication is not offered
by the server, this will cause _Alpine_ to fail with an error
similar to:
Error: NNTP authentication not available
For more details about the server name possibilities see Server
Name Syntax.
_normal-background-color_
_normal-foreground-color_
Normal Color.
_opening-text-separator-chars_
This option controls a minor aspect of _Alpine_'s MESSAGE INDEX
screen. With some setups the text of the subject is followed by
the opening text of the message if there is any room available
in the index line. If you have configured your Index-Format
option to include one of the Subject tokens which causes this
behavior (SUBJECTTEXT, SUBJKEYTEXT, or SUBJKEYINITTEXT), then
this option may be used to modify what is displayed slightly. By
default, the Subject is separated from the opening text of the
message by the three characters space dash space;
" - "
Use this option to set it to something different. The value must
be quoted if it includes any space characters. For example, the
default value could be specified explicitly by setting this
option to
Opening-Text-Separator-Chars=" - "
This option is displayed as "Opening Text Separator Characters".
_operating-dir_
System-wide _Alpine_ configuration files only. This names the
root of the tree to which the user is restricted when reading
and writing folders and files. It is usually used in the _fixed_
configuration file.
_patterns-filters2_
Matching patterns and their corresponding actions are stored in
this variable. These patterns are used with Filtering. This
variable is normally maintained through the Setup/Rules/Filters
configuration screen. It is a list variable. Each member of the
list is a single pattern/action pair, or it can be a file which
contains zero or more lines of pattern/action pairs. The only
way to create a filters file is to use the InsertFile command in
the Setup/Rules/Filters screen with a filename which doesn't yet
exist. Then use the Shuffle command to move existing filter
patterns into the file. This isn't very convenient but it isn't
thought that many users will need this functionality. The
purpose of filter files is for sharing filters.
This option is displayed as "Patterns Filters".
_patterns-indexcolors_
Matching patterns and their corresponding actions are stored in
this variable. These patterns are used for Index Line Colors.
This variable is normally maintained through the
Setup/Rules/Indexcolor configuration screen. It is a list
variable. Each member of the list is a single pattern/action
pair, or it can be a file which contains zero or more lines of
pattern/action pairs. The only way to create a indexcolor file
is to use the InsertFile command in the Setup/Rules/Indexcolor
screen with a filename which doesn't yet exist. Then use the
Shuffle command to move existing patterns into the file. This
isn't very convenient but it isn't thought that many users will
need this functionality. The purpose of indexcolor files is for
sharing indexcolors.
_patterns-other_
Matching patterns and their corresponding actions are stored in
this variable. These patterns are used with Miscellaneous Rules
configuration. This variable is normally maintained through the
Setup/Rules/Other configuration screen. It is a list variable.
Each member of the list is a single pattern/action pair, or it
can be a file which contains zero or more lines of
pattern/action pairs. The only way to create a rules file is to
use the InsertFile command in the Setup/Rules/Other screen with
a filename which doesn't yet exist. Then use the Shuffle command
to move existing rules into the file. This isn't very convenient
but it isn't thought that many users will need this
functionality.
_patterns-roles_
Matching patterns and their corresponding actions are stored in
this variable. These patterns are used with Roles. This variable
is normally maintained through the Setup/Rules/Roles
configuration screen. It is a list variable. Each member of the
list is a single pattern/action pair, or it can be a file which
contains zero or more lines of pattern/action pairs. The only
way to create a roles file is to use the InsertFile command in
the Setup/Rules/Roles screen with a filename which doesn't yet
exist. Then use the Shuffle command to move existing roles into
the file. This isn't very convenient but it isn't thought that
many users will need this functionality. The purpose of role
files is for sharing roles.
_patterns-scores2_
Matching patterns and their corresponding actions are stored in
this variable. These patterns are used with Scoring. This
variable is normally maintained through the
Setup/Rules/SetScores configuration screen. It is a list
variable. Each member of the list is a single pattern/action
pair, or it can be a file which contains zero or more lines of
pattern/action pairs. The only way to create a scores file is to
use the InsertFile command in the Setup/Rules/SetScores screen
with a filename which doesn't yet exist. Then use the Shuffle
command to move existing scoring patterns into the file. This
isn't very convenient but it isn't thought that many users will
need this functionality. The purpose of scoring files is for
sharing scoring rules.
This option is displayed as "Patterns Scores".
_patterns-search_
Matching patterns for use with the Select command are stored in
this variable. These patterns are used with Search Rules
configuration. This variable is normally maintained through the
Setup/Rules/searCh configuration screen. It is a list variable.
Each member of the list is a single pattern, or it can be a file
which contains zero or more lines of patterns. The only way to
create a rules file is to use the InsertFile command in the
Setup/Rules/searCh screen with a filename which doesn't yet
exist. Then use the Shuffle command to move existing rules into
the file. This isn't very convenient but it isn't thought that
many users will need this functionality.
_personal-name_
Personal configuration file only. User's full personal name. On
UNIX systems, the default is taken from the accounts data base
(/etc/passwd). The easiest way to change the full From address
is with the customized-hdrs variable.
_personal-print-category_
Personal configuration file only. This is the category that the
default print command belongs to. There are three categories.
Category 1 is an attached printer which uses the ANSI escape
sequence, category 2 is the standard system print command, and
category 3 is the set of custom printer commands defined by the
user. This just helps _Alpine_ figure out where to put the
cursor when the user runs the _Setup/Printer_ command. This is
not used by _PC-Alpine_.
_personal-print-command_
Personal configuration file only. This corresponds to the third
category in the printer menu, the personally selected print
commands. This variable contains the list of custom commands
that the user has entered in the _Setup/Printer_ screen. This is
not used by _PC-Alpine_.
_posting-character-set_
See the discussion in International Character Sets for details.
_postponed-folder_
The folder where postponed messages are stored. The default is
_postponed-msgs_ (Unix) or _POSTPOND_ (PC).
_print-font-name_
Winsock version of _PC-Alpine_ only.
_print-font-size_
Winsock version of _PC-Alpine_ only.
_print-font-style_
Winsock version of _PC-Alpine_ only.
_printer_
Personal configuration file only. This is the current setting
for a user's printer. This variable is set from _Alpine_'s
_Setup/Printer_ screen.
_prompt-background-color_
_prompt-foreground-color_
Prompt Color.
_pruned-folders_
This variable allows you to define a list of one or more folders
that _Alpine_ will offer to prune for you in the same way it
automatically offers to prune your "sent-mail" folder each
month. Each folder in this list must be a folder in your default
folder collection (the first folder collection if you have more
than one), and it is just the relative name of the folder in the
collection, not the fully-qualified name. It is similar to
sent-mail. Instead of something like
pruned-folders={servername}mail/folder
the correct value to use would be
folder
There is an assumption here that your first collection is the
folders in
{servername}mail
Once a month, for each folder listed, _Alpine_ will offer to
move the contents of the folder to a new folder of the same name
but with the previous month's date appended. _Alpine_ will then
look for any such date-appended folder names created for a
previous month, and offer each one it finds for deletion.
If you decline the first offer, no mail is moved and no new
folder is created.
The new folders will be created in your default folder
collection.
_pruning-rule_
By default, _Alpine_ will ask at the beginning of each month
whether or not you want to rename your sent-mail folder to a
name like sent-mail-month-year. (See the feature
prune-uses-yyyy-mm to change the format of the folder to
sent-mail-yyyy-mm.) It will also ask whether you would like to
delete old sent-mail folders. If you have defined
read-message-folder or pruned-folders _Alpine_ will also ask
about pruning those folders. With this option you may provide an
automatic answer to the rename questions and you may tell
_Alpine_ to not ask about deleting old folders.
_quote1-background-color_
_quote1-foreground-color_
_quote2-background-color_
_quote2-foreground-color_
_quote3-background-color_
_quote3-foreground-color_
Quote Colors.
_quote-replace-string_
This option specifies what string to use as a quote when
_viewing_ a message. The standard way of quoting messages when
replying is the string "> " (quote space). With this variable
set, viewing a message will replace occurrences of "> " with the
replacement string. This setting works best when
Reply-Indent-String or the equivalent setting in your
correspondents' mail programs is set to the default "> ", but it
will also work fine with the Reply-Indent-String set to ">".
Enable the feature Quote-Replace-Nonflowed to also have
quote-replacement performed on non-flowed messages.
Setting this option will replace ">" and "> " with the new
setting. This string may include trailing spaces. To preserve
those spaces enclose the full string in double quotes.
No padding to separate the text of the message from the quote
string is added. This means that if you do not add trailing
spaces to the value of this variable, text will be displayed
right next to the quote string, which may be undesirable. This
can be avoided by adding a new string separated by a space from
your selection of quote string replacement. This last string
will be used for padding. For example, setting this variable to
">" " " has the effect of setting ">" as the
quote-replace-string, with the text padded by a space from the
last quote string to make it more readable.
One possible setting for this variable could be " " (four
spaces wrapped in quotes), which would have the effect of
indenting each level of quoting four spaces and removing the
">"'s. Different levels of quoting could be made more
discernible by setting colors for quoted text.
Replying to or forwarding the viewed message will preserve the
original formatting of the message, so quote-replacement will
not be performed on messages that are being composed.
_quote-suppression-threshold_
This option should be used with care. It will cause some of the
quoted text to be eliminated from the display when viewing a
message in the MESSAGE TEXT screen. For example, if you set the
Quote-Suppression-Threshold to the value "5", this will cause
quoted text that is longer than five lines to be truncated.
Quoted text of five or fewer consecutive lines will be displayed
in its entirety. Quoted text of more than six lines will have
the first five lines displayed followed by a line that looks
something like
[ 12 lines of quoted text hidden from view ]
As a special case, if exactly one line of quoted text would be
hidden, the entire quote will be shown instead. So for the above
example, quoted text which is exactly six lines long will will
be shown in its entirety. (In other words, instead of hiding a
single line and adding a line that announces that one line was
hidden, the line is just shown.)
If the sender of a message has carefully chosen the quotes that
he or she includes, hiding those quotes may change the meaning
of the message. For that reason, _Alpine_ requires that when you
want to set the value of this variable to something less than
four lines, you actually have to set it to the negative of that
number. So if you want to set this option to "3", you actually
have to set it to "-3". The only purpose of this is to get you
to think about whether or not you really want to do this! If you
want to delete all quoted text you set the value of this option
to the special value "-10".
The legal values for this option are
0 Default, don't hide anything
-1,-2,-3 Suppress quote lines past 1, 2, or 3 lines
4,5,6,... Suppress if more than that many lines
-10 Suppress all quoted lines
If you set this option to a non-default value you may sometimes
wish to view the quoted text that is not shown. When this is the
case, the HdrMode (Header Mode) command may be used to show the
hidden text. Typing the "H" command once will show the hidden
text. Typing a second "H" will also turn on Full Header mode.
The presence or absence of the HdrMode command is determined by
the "Enable-Full-Header-Cmd" Feature-List option in your _Alpine_
configuration, so you will want to be sure that is turned on if
you use quote suppression.
For the purposes of this option, a quote is a line that begins
with the character ">".
Quotes are only suppressed when displaying a message on the
screen. The entire quote will be left intact when printing or
forwarding or something similar.
_read-message-folder_
If set, mail in the _INBOX_ that has been read but not deleted
is moved here, or rather, the user is asked whether or not he or
she wants to move it here upon quitting _Alpine_.
_remote-abook-history_
Sets how many extra copies of remote address book data will be
kept in each remote address book folder. The default is three.
These extra copies are simply old versions of the data. Each
time a change is made a new copy of the address book data is
appended to the folder. Old copies are trimmed, if possible,
when _Alpine_ exits. An old copy can be put back into use by
deleting and expunging newer versions of the data from the
folder. Don't delete the first message from the folder. It is a
special header message for the remote address book and it must
be there. This is to prevent regular folders from being used as
remote address book folders and having their data destroyed.
_remote-abook-metafile_
Personal configuration file only. This is usually set by _Alpine_
and is the name of a file that contains data about remote
address books and remote configuration files.
_remote-abook-validity_
Sets the minimum number of minutes that a remote address book
will be considered up to date. Whenever an entry contained in a
remote address book is used, if more than this many minutes have
passed since the last check the remote server will be queried to
see if the address book has changed. If it has changed, the
local copy is updated. The default value is five minutes. The
special value of -1 means never check. The special value of zero
means only check when the address book is first opened.
No matter what the value, the validity check is always done when
the address book is about to be changed by the user. The check
can be initiated manually by typing _^L_ (Ctrl-L) while in the
address book maintenance screen for the remote address book.
_reply-indent-string_
This variable specifies an aspect of _Alpine_'s _Reply_ command.
When a message is replied to and the text of the message is
included, the included text usually has the string "> "
prepended to each line indicating it is quoted text.
This option specifies a different value for that string. If you
wish to use a string which begins or ends with a space, enclose
the string in double quotes.
Besides simple text, the prepended string can be based on the
message being replied to. The following tokens are substituted
for the message's corresponding value:
_FROM_
This token gets replaced with the message sender's
"username". At most six characters are used.
_NICK_
This token gets replaced with the nickname of the message
sender's address as found in your addressbook. If no
addressbook entry is found, Pine replaces the characters
"_NICK_" with nothing. At most six characters are used.
_INIT_
This token gets replaced with the initials of the sender
of the message.
When the enable-reply-indent-string-editing feature is enabled,
you are given the opportunity to edit the string, whether it is
the default or one automatically generated using the above
tokens.
_reply-leadin_
This option is used to customize the content of the introduction
line that is included when replying to a message and including
the original message in the reply. The normal default (what you
will get if you delete this variable) looks something like:
On Sat, 24 Oct 1998, Fred Flintstone wrote:
where the day of the week is only included if it is available in
the original message. You can replace this default with text of
your own. The text may contain tokens that are replaced with
text that depends on the message you are replying to. For
example, the default is equivalent to:
On _DAYDATE_, _FROM_ wrote:
Since this variable includes regular text mixed with special
tokens the tokens have to be surrounded by underscore
characters. For example, to use the token "PREFDATE" you would
need to use "_PREFDATE_", not "PREFDATE".
The list of available tokens is here.
By default, the text is all on a single line and is followed by
a blank line. If your _Reply-Leadin_ turns out to be longer than
80 characters when replying to a particular message, it is
shortened. However, if you use the token
_NEWLINE_
anywhere in the value, no end of line or blank line is appended,
and no shortening is done. The _NEWLINE_ token may be used to
get rid of the blank line following the text, to add more blank
lines, or to form a multi-line _Reply-Leadin_. To clarify how
_NEWLINE_ works recall that the default value is:
On _DAYDATE_, _FROM_ wrote:
That is equivalent to
On _DAYDATE_, _FROM_ wrote:_NEWLINE__NEWLINE_
In the former case, two newlines are added automatically because
no _NEWLINE_ token appears in the value of the option (for
backwards compatibility). In the latter case, the newlines are
explicit. If you want to remove the blank line that follows the
_Reply-Leadin_ text use a single _NEWLINE_ token like
On _DAYDATE_, _FROM_ wrote:_NEWLINE_
Because of the backwards compatibility problem, it is not
possible to remove all of the ends of lines, because then there
will be no _NEWLINE_ tokens and that will cause the automatic
adding of two newlines! If you want, you may embed newlines in
the middle of the text, as well, producing a multi-line
_Reply-Leadin_.
By default, no attempt is made to localize the date. If you
prefer a localized form you may find that one of the tokens
_PREFDATE_ or _PREFDATETIME_ is a satisfactory substitute. If
you want more control one of the many other date tokens, such as
_DATEISO_, might be better.
For the adventurous, there is a way to conditionally include
text based on whether or not a token would result in specific
replacement text. For example, you could include some text based
on whether or not the _NEWS_ token would result in any
newsgroups if it was used. It's explained in detail here.
In the very unlikely event that you want to include a literal
token in the introduction line you must precede it with a
backslash character. For example,
\_DAYDATE_ = _DAYDATE_
would produce something like
_DAYDATE_ = Sat, 24 Oct 1998
It is not possible to have a literal backslash followed by an
expanded token.
_reverse-background-color_
_reverse-foreground-color_
Reverse Color.
_rsh-command_
Sets the format of the command used to open a UNIX remote shell
connection. The default is "%s %s -l %s exec /etc/r%sd". All
four "%s" entries MUST exist in the provided command. The first
is for the command's pathname, the second is for the host to
connnect to, the third is for the user to connect as, and the
fourth is for the connection method (typically imap).
_rsh-open-timeout_
Sets the time in seconds that _Alpine_ will attempt to open a
UNIX remote shell connection. The default is 15, the minimum
non-zero value is 5, and the maximum is unlimited. If this is
set to zero rsh connections will be completely disabled.
_rsh-path_
Sets the name of the command used to open a UNIX remote shell
connection. The default is typically /usr/ucb/rsh.
_saved-msg-name-rule_
Determines default folder name when _Sav_ing. If set to
_default-folder_ (which is the default setting), then _Alpine_
will offer the folder "saved-messages" (UNIX) or "SAVEMAIL" (PC)
for _Sav_ing messages. The default folder offered in this way
may be changed by using the configuration variable
default-saved-msg-folder.
If this rule is set to _last-folder-used_, _Alpine_ offers to
_Save_ to the folder you last successfully _Saved_ a message to
(this session). The first time you _Save_ a message in a
session, _Alpine_ offers to _Save_ the message to the default
folder.
Choosing any of the _by-_ options causes _Alpine_ to attempt to
get the chosen option's value for the message being _Saved_ (or
for the first message being Saved if using an aggregate Save).
For example, if _by-from_ is chosen, _Alpine_ attempts to get
the value of who the message came from (i.e. the from address).
_Alpine_ then attempts to _Save_ the message to a folder matching
that value. If _by-from_ is chosen and no value is obtained,
_Alpine_ uses _by-sender_. The opposite is also true. If
_by-recipient_ was chosen and the message was posted to a
newsgroup, _Alpine_ will use the newsgroup name. If _by-replyto_
is chosen and no value is obtained, _Alpine_ uses _by-from_.
If any of the "by-realname" options are chosen, _Alpine_ will
attempt to use the personal name part of the address instead of
the mailbox part. If any of the "by-nick" options are chosen,
the address is looked up in your address book and if found, the
nickname for that entry is used. Only simple address book
entries are checked, not distribution lists. Similarly, if any
of the "by-fcc" options are chosen, the fcc from the
corresponding address book entry is used. If by-realname, or the
by-nick or by-fcc lookups result in no value, then if the chosen
option ends with the "then-from", "then-sender", "then-replyto",
or "then-recip" suffix, _Alpine_ reverts to the same behavior as
"by-from", "by-sender", "by-replyto", or "by-recip" depending on
which option was specified. If the chosen option doesn't end
with one of the "then-" suffixes, then _Alpine_ reverts to the
default folder when no match is found in the address book.
Here is an example to make some of the options clearer. If the
message is From
Fred Flintstone <flint@bedrock.org>
and this rule is set to "by-from", then the default folder
offered in the save dialog would be "flint".
If this rule is set to "by-realname-of-from" then the default
would be "Fred Flintstone".
If this rule is set to "by-nick-of-from" then _Alpine_ will
search for the address "flint@bedrock.org" in your address book.
If an entry is found and it has a nickname associated with it,
that nickname will be offered as the default folder. If not, the
default saved message folder will be offered as the default.
If this rule is set to "by-fcc-of-from" then _Alpine_ will
search for the address "flint@bedrock.org" in your address book.
If an entry is found and it has an Fcc associated with it, that
Fcc will be offered as the default folder. If not, the default
saved message folder will be offered as the default.
If this rule is set to "by-nick-of-from-then-from" then _Alpine_
will search for the address "flint@bedrock.org" in your address
book. If an entry is found and it has a nickname associated with
it, that nickname will be offered as the default folder. If it
is not found (or has no nickname) then the default offered will
be the same as it would be for the "by-from" rule. That is, it
would be "flint"
This option is displayed as "Saved Message Name Rule".
_scroll-margin_
This option controls when _Alpine_'s line-by-line scrolling
occurs. Typically, when a selected item is at the top or bottom
screen edge and the UP or DOWN (and Ctrl-P or Ctrl-N) keys are
pressed, the displayed items are scrolled down or up by a single
line.
This option allows you to tell _Alpine_ the number of lines from
the top and bottom screen edge that line-by-line scrolling
should occur. For example, setting this value to one (1) will
cause _Alpine_ to scroll the display when you move to select an
item on the display's top or bottom edge (instead of moving when
you move off the edge of the screen).
By default, this variable is zero (0), indicating that scrolling
happens when you move up or down to select an item immediately
off the display's top or bottom edge.
_selectable-item-background-color_
_selectable-item-foreground-color_
Selectable-item Color.
_sending-filters_
This option defines a list of text-filtering commands (programs
and scripts) that may be selectively invoked to process a
message just before it is sent. If set, the Composer's _^X Send_
command will allow you to select which filter (or none) to apply
to the message before it is sent. For security reasons, the full
path of the filter program must be specified.
Sending filters do not work with _PC-Alpine_ and sending filters
are not used if the feature send-without-confirm is set.
Command Modifying Tokens:
__RECIPIENTS__
When the command is executed, this token is replaced with
the space delimited list of recipients of the message
being sent.
__TMPFILE__
When the command is executed, this token is replaced with
the path and name of the temporary file containing the
text to be filtered. _Alpine_ expects the filter to
replace this data with the filter's result. NOTE: Use of
this token implies that the text to be filtered is not
piped into standard input of the executed command and its
standard output is ignored. _Alpine_ restores the tty
modes before invoking the filter in case the filter
interacts with the user via its own standard input and
output.
__RESULTFILE__
When the command is executed, this token is replaced with
the path and name of a temporary file intended to contain
a status message from the filter. _Alpine_ displays this
in the message status field.
__DATAFILE__
When the command is executed, this token is replaced in
the command line with the path and name of a temporary
file that _Alpine_ creates once per session and deletes
upon exit. The file is intended to be used by the filter
to store state information between instances of the
filter.
__PREPENDKEY__
When the command is executed, this token indicates that a
random number will be passed down the input stream before
the message text. It is not included as a command-line
argument. This number could be used as a session key. It
is sent in this way to improve security. The number is
unique to the current _Alpine_ session and is only
generated once per session.
__INCLUDEALLHDRS__
When the command is executed, this token indicates that
the headers of the message will be passed down the input
stream before the message text. It is not included as a
command-line argument. The filter should, of course,
remove the headers before returning control to _Alpine_.
__MIMETYPE__
When the command is executed, this token is replaced in
the command name with a temporary file name used to accept
any new MIME Content-Type information necessitated by the
output of the filter. Upon the filter's exit, if the file
contains new MIME type information, _Alpine_ verifies its
format and replaces the outgoing message's MIME type
information with that contained in the file. This is
basically a cheap way of sending something other than
Text/Plain.
_sendmail-path_
This names the path to an alternative program, and any necessary
arguments, to be used in posting mail messages. See the section
on SMTP and Sendmail for more details.
_signature-file_
This is the name of a file which will be automatically inserted
into outgoing messages. It typically contains information such
as your name, email address and organizational affiliation.
_Alpine_ adds the signature into the message as soon as you enter
the composer so you can choose to remove it or edit it on a
message by message basis. Signature file placement in message
replies is controlled by the signature-at-bottom setting in the
feature list.
This defaults to ~/.signature on UNIX and <PINERC
directory>\PINE.SIG on a PC.
To create or edit your signature file choose Setup from the Main
Menu and then select S for Signature (Main/Setup/Signature).
This puts you into the Signature Editor where you can enter a
_few_ lines of text containing your identity and affiliation.
If the filename is followed by a vertical bar (|) then instead
of reading the contents of the file the file is assumed to be a
program which will produce the text to be used on its standard
output. The program can't have any arguments and doesn't receive
any input from _Alpine_, but the rest of the processing works as
if the contents came from a file.
Instead of storing the data in a local file, the signature data
may be stored remotely in an IMAP folder. In order to do this,
you must use a remote name for the file. A remote signature-file
name might look like:
{myimaphost.myschool.k12.wa.us}mail/signature
or, if you have an SSL-capable version of _Alpine_, you might
try
{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/signature
The syntax used here is the same as the syntax used for remote
configuration files from the command line. Note that you may not
access an existing signature file remotely, you have to create a
new _folder_ which contains the signature data. If the name you
use here for the signature file is a remote name, then when you
edit the file from the Setup/Signature command the data will be
stored remotely in the folder. You aren't required to do
anything special to create the folder, it gets created
automatically if you use a remote name.
Besides regular text, the signature file may also contain (or a
signature program may produce) tokens which are replaced with
text which usually depends on the message you are replying to or
forwarding. For example, if the signature file contains the
token
_DATE_
anywhere in the text, then that token is replaced by the date
the message you are replying to or forwarding was sent. If it
contains
_CURDATE_
that is replaced with the current date. The first is an example
of a token which depends on the message you are replying to (or
forwarding) and the second is an example which doesn't depend on
anything other than the current date. You have to be a little
careful with this facility since tokens which depend on the
message you are replying to or forwarding will be replaced by
nothing in the case where you are composing a new message from
scratch. The use of roles may help you in this respect. It
allows you to use different signature files in different cases.
The list of tokens available for use in the signature file is
here.
Instead of, or along with the use of _roles_ to give you
different signature files in different situations, there is also
a way to conditionally include text based on whether or not a
token would result in specific replacement text. For example,
you could include some text based on whether or not the _NEWS_
token would result in any newsgroups if it was used. This is
explained in detail here. This isn't for the faint of heart.
In the very unlikely event that you want to include a literal
token in the signature you must precede it with a backslash
character. For example,
\_DAYDATE_ = _DAYDATE_
would produce something like
_DAYDATE_ = Sat, 24 Oct 1998
It is not possible to have a literal backslash followed by an
expanded token.
_signature-background-color_
_signature-foreground-color_
Signature Color.
_smime-public-cert-directory_
UNIX _Alpine_ only.
If the option smime-public-cert-container is set then this
option will have no effect.
Normally, Public Certificates for use with S/MIME will be stored
in the directory which is the value of this option. Those
certificates will be stored in PEM format, one certificate per
file. The name of the file for the certificate corresponding to
emailaddress
should be
emailaddress.crt
For example, a file for user@example.com would be in the file
user@example.com.crt
in this directory.
Use the Setup/SMIME screen to modify this variable.
Typically, the public certificates that you have will come from
S/MIME signed messages that are sent to you. _Alpine_ will
extract the public certificate from the signed message and store
it in the certificates directory. These PEM format public
certificates look something like:
-----BEGIN CERTIFICATE-----
MIIFvTCCBKWgAwIBAgIQD4fYFHVI8T20yN4nus097DANBgkqhkiG9w0BAQUFADCB
rjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
...
2b9KGqDyMWW/rjNnmpjzjT2ObGM7lRA8lke4FLOLajhrz4ogO3b4DFfAAM1VSZH8
D6sOwOLJZkLY8FRsfk63K+2EMzA2+qAzMKupgeTLqXIf
-----END CERTIFICATE-----
+ General S/MIME Overview
This option is displayed as "S/MIME - Public Cert Directory".
_smime-public-cert-container_
UNIX _Alpine_ only.
If this option is set it will be used instead of
smime-public-cert-directory
This option gives you a way to store certificates remotely on an
IMAP server instead of storing the certificates one per file
locally. In order to do that you just give this option a remote
folder name for a folder which does not yet exist. The name is
similar to the name you might use for a remote configuration
file. A remote folder name might look something like:
{myimaphost.myschool.k12.wa.us}mail/publiccerts
Use the Setup/SMIME screen to modify this variable.
+ General S/MIME Overview
This option is displayed as "S/MIME - Public Cert Container".
_smime-private-key-directory_
UNIX _Alpine_ only.
In order to sign outgoing S/MIME messages you will need a
personal digital ID certificate. You will usually get such a
certificate from a certificate authority such as Thawte or
CAcert. (In order to encrypt outgoing messages you don't need a
personal digital ID, you need the public certificate of the
recipient instead.) If the option smime-private-key-container is
set then this option will have no effect.
Normally, Private Keys for use with S/MIME will be stored in the
directory which is the value of this option. Those certificates
will be stored in PEM format, one certificate per file. The name
of the file for the certificate corresponding to your
emailaddress
should be
emailaddress.key
For example, if your address is user@example.com the name of the
file would be
user@example.com.key
in this directory.
Use the Setup/SMIME screen to modify this variable.
Typically, the private key that you have will come from a
Certificate Authority. The private key should be stored in a PEM
format file that looks something like:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,2CBD328FD84CF5C6
YBEXYLgLU9NJoc1V+vJ6UvcF08RX54S6jXsmgL0b5HGkudG6fhnmHkH7+UCvM5NI
SXO/F8iuZDfs1VGG0NyitkFZ0Zn2vfaGovBvm15gx24b2xnZDLRB7/bNZkurnK5k
VjAjZ2xXn2hFp2GJwqRdmxYNqsKGu52B99oti5HUWuZ2GFRaWjn5hYOqeApZE2uA
...
oSRqfI51UdSRt0tmGhHeTvybUVrHm9eKft8TTGf+qSBqzSc55CsmoVbRzw4Nfhix
m+4TJybNGNfAgOctSkEyY/OCb49fRRQTCBZVIhzLGGmpYmkO55HbIA==
-----END RSA PRIVATE KEY-----
+ General S/MIME Overview
This option is displayed as "S/MIME - Private Key Directory".
_smime-private-key-container_
UNIX _Alpine_ only.
If this option is set it will be used instead of
smime-private-key-directory.
This option gives you a way to store keys remotely on an IMAP
server instead of storing the keys one per file locally. In
order to do that you just give this option a remote folder name
for a folder which does not yet exist. The name is similar to
the name you might use for a remote configuration file. A remote
folder name might look something like:
{myimaphost.myschool.k12.wa.us}mail/privatekeys
Use the Setup/SMIME screen to modify this variable.
+ General S/MIME Overview
This option is displayed as "S/MIME - Private Key Container".
_smime-cacert-directory_
UNIX _Alpine_ only.
If the option smime-cacert-container is set then this option
will have no effect.
CACert is a shorthand name for certification authority
certificate. Normally _Alpine_ will use the CACerts that are
located in the standard system location for CACerts. It may be
the case that one of your correspondents has a Digital ID which
has been signed by a certificate authority that is not in the
regular set of system certificate authorities. You may
supplement the system list by adding further certificates of
your own. These should be stored in the directory which is the
value of this option. The certificates will be stored in PEM
format, one certificate per file. The names of the files can be
anything ending in ".crt".
Use the Setup/SMIME screen to modify this variable.
These PEM format CA certificates look very similar to your
public certificates for particular email addresses
(smime-public-cert-directory).
+ General S/MIME Overview
This option is displayed as "S/MIME - Cert Authority Directory".
_smime-cacert-container_
UNIX _Alpine_ only.
If this option is set it will be used instead of
smime-cacert-directory.
This option gives you a way to store certificates remotely on an
IMAP server instead of storing the certificates one per file
locally. In order to do that you just give this option a remote
folder name for a folder which does not yet exist. The name is
similar to the name you might use for a remote configuration
file. A remote folder name might look something like:
{myimaphost.myschool.k12.wa.us}mail/cacerts
Use the Setup/SMIME screen to modify this variable.
+ General S/MIME Overview
This option is displayed as "S/MIME - Cert Authority Container".
_smtp-server_
One or more SMTP servers (host name or IP address) which _Alpine_
will use for outgoing mail. If not set, _Alpine_ passes outgoing
email to the _sendmail_ program on the local machine. _PC-Alpine_
users must have this variable set in order to send mail as they
have no _sendmail_ program.
Your SMTP server may offer SMTP AUTH authentication. It may even
require it. If your SMTP server offers SMTP AUTH authentication
you may specify a "user" name parameter to cause _Alpine_ to
attempt to authenticate. This parameter requires an associated
value, the username identifier with which to establish the
server connection. An example might be:
smtpserver.example.com/user=katie
If AUTH authentication is offered by the server, this will cause
_Alpine_ to attempt to use it. If AUTH authentication is not
offered by the server, this will cause _Alpine_ to fail sending
with an error similar to:
Error: SMTP authentication not available
Another type of authentication that is used by some ISPs is
called "POP before SMTP" or "IMAP before SMTP", which means that
you have to authenticate yourself to the POP or IMAP server by
opening a mailbox before you can send mail. To do this, you
usually only have to open your INBOX.
You may tell _Alpine_ to use the Message Submission port (587)
instead of the SMTP port (25) by including the "submit"
parameter in this option. At this time "/submit" is simply
equivalent to specifying port 587, though it may imply more than
that at some point in the future. Some ISPs are blocking port 25
in order to reduce the amount of spam being sent to their users.
You may find that the submit option allows you to get around
such a block.
smtpserver.example.com/submit
To specify any non-standard port number on the SMTP server you
may follow the hostname with a colon followed by the portnumber.
smtpserver.example.com:12345
Normally, when a connection is made to the Smtp-Server _Alpine_
will attempt to negotiate a secure (encrypted) session using
Transport Layer Security (TLS). If that fails then a
non-encrypted connection will be attempted instead. You may
specify that a TLS connection is required if you wish. If you
append "/tls" to the name then the connection will fail instead
of falling back to a non-secure connection.
smtpserver.example.com/tls
See the SMTP Servers section or the Server Name Syntax section
for some more details.
This option is displayed as "SMTP Server (for sending)".
_sort-key_
This variable sets up the default Message Index sorting. The
default is to sort by arrival order (the order the messages
arrived in the folder). It has the same functionality as the
_-sort_ command line argument and the _$_ command in the "Folder
Index". If a _sort-key_ is set, then all folders open during the
session will have that as the default sort order.
_speller_
UNIX _Alpine_ only.
For _PC-Alpine_, you must install the aspell library code that
you may get from http://aspell.net/win32/.
This option affects the behavior of the _^T_ (spell check)
command in the Composer. It specifies the program invoked by _^T_
in the Composer. By default, _Alpine_ uses the system's "spell"
command. _Alpine_ will use the command defined by this option
(if any) instead. When invoking the spell-checking program,
_Alpine_ appends a tempfile name (where the message is passed) to
the command line. _Alpine_ expects the speller to correct the
spelling in that file. When you exit from the speller program
_Alpine_ will read the tmpfile back into the composer.
For Unix _Alpine_ the program _ispell_ works well as an
alternate spell checker. If your Unix system has _ispell_ it is
probably reasonable to make it the default speller by
configuring it as the default in the system configuration file,
/usr/local/lib/pine.conf.
If this option is not set, then the system's _spell_ command is
used. The spell command does not work the same as the alternate
speller. It produces a list of misspelled words on its standard
output, instead, and doesn't take a tempfile as an argument.
Don't set this speller option to the standard Unix spell
command. That won't work. If you want to use the standard Unix
spell command, set the speller option to nothing.
_ssh-command_
Sets the format of the command used to open a UNIX secure shell
connection. The default is "%s %s -l %s exec /etc/r%sd". All
four "%s" entries MUST exist in the provided command. The first
is for the command's pathname, the second is for the host to
connnect to, the third is for the user to connect as, and the
fourth is for the connection method (typically imap).
_ssh-open-timeout_
Sets the time in seconds that _Alpine_ will attempt to open a
UNIX secure shell connection. The default is 15, the minimum
non-zero value is 5, and the maximum is unlimited. If this is
set to zero ssh connections will be completely disabled.
_ssh-path_
Sets the name of the command used to open a UNIX secure shell
connection. The default is typically /usr/bin/ssh.
_standard-printer_
System-wide configuration file only. Specifies a list of
commands for category 2 of the _Setup/Printer_ screen, the
standard print command section. This is not used by _PC-Alpine_.
_status-background-color_
_status-foreground-color_
Status Color.
_status-message-delay_
This option has evolved over time, causing the possible values
to be counter-intuitive. Read carefully before you set this
option. First we explain what the option does, then there is a
longer discussion following that.
If this is set to zero, the default value, it has _no_ effect.
Positive and negative values serve two similar, but different
purposes.
If it is set to a positive number, it causes the cursor to move
to the status line whenever a status message is printed and
pause there for this many seconds. It will probably only be
useful if the show-cursor feature is also turned on. Setting
this option to a postive number can only be used to _increase_
the status message delay. This may be useful for Braille
displays, or other non-traditional displays.
If it is set to a negative number the interpretation is a bit
complicated. Negative numbers are used to _decrease_ the amount
of delay _Alpine_ uses to allow you to read important status
messages. Of course, this may cause you to miss some important
messages. If you see a message flash by but miss what it says
you can use the Journal command from the Main menu to read it.
If you set this option to a negative value, the delay will be no
more than one second less than the absolute value of the value
you set. So if you set it to -1, the delay will be no more than
zero seconds, no delay at all. If you set it to -2, the delay
will be no more than 1 second. And so on, -3 is 2 seconds, -4 is
3 seconds, ... If the delay that _Alpine_ would have used by
default is less than this delay, then the smaller delay set by
_Alpine_ will be used. Setting this option to a negative value
can only reduce the amount of delay, never increase it.
Here is a more detailed explanation. Status messages are the
messages which show up spontaneously in the status message line,
the third line from the bottom of the screen. By default,
_Alpine_ assigns each status message it produces a minimum
display time. Some status messages have a minimum display time
of zero. You can see an example of such a message by paging up
in this help text until you reach the top of the screen. If you
try to page past the top you will see the message
[Already at start of help text]
in the status line. If there is another more important use of
the status message line this message might be replaced quickly,
or it even might not be shown at all. However, if there is no
reason to get rid of the message, it might stay there for
several seconds while you read the help. An example where it is
replaced immediately happens when you page up in the help text
past the top of the screen, but then type the "WhereIs" command
right after paging up. The message will disappear immediately
without causing a delay (unless you have set this option to a
positive value) to allow you to type input for the "WhereIs"
command. Since it isn't a very important message, _Alpine_ has
set its minimum display time to zero seconds.
Other messages have minimum display times of three or more
seconds. These are usually error messages that _Alpine_ thinks
you ought to see. For example, it might be a message about a
failed Save or a failed folder open. It is often the case that
this minimum display time won't delay you in any way because the
status message line is not needed for another reason. However,
there are times when _Alpine_ has to delay what it is doing in
order to display a status message for the minimum display time.
This happens when a message is being displayed and _Alpine_
wants to ask for input from the keyboard. For example, when you
Save a message you use the status message line. You get a prompt
there asking for the name of the folder to save to. If there is
a status message being displayed that has not yet displayed for
its minimum time _Alpine_ will display that status message
surrounded with the characters > and < to show you that it is
delaying. That might happen, for example, if you tried to save
to a folder that caused an error, then followed that immediately
with another Save command. You might find yourself waiting for a
status message like
[>Can't get write access to mailbox, access is readonly<]
to finish displaying for three seconds. If that is something you
find happening to you frequently, you may use negative values of
this option to decrease or eliminate that delay, at the risk of
missing the message.
_stay-open-folders_
This option affects low-level behavior of _Alpine_. There is no
default value for this option. It is related to the options
Preopen-Stayopen-Folders, Max-Remote-Connections, and
offer-expunge-of-Stayopen-Folders.
Note: changes made to this list take effect the next time you
open a folder in the list.
This is a list of folders that will be permanently kept open
once they are first opened. The names in this list may be either
the nickname of an Incoming folder or the full technical
specification of a folder. The folders in this list need not be
remote IMAP folders, they could usefully be local folders, as
well. If a folder in the list is a newsgroup or is not accessed
either locally or via IMAP, then the entry will be ignored. For
example, folders accessed via NNTP or POP3 will not be kept
open, since the way that new mail is found with those protocols
involves closing and reopening the connection.
Once a Stay Open folder has been opened, new-mail checking will
continue to happen on that folder for the rest of the _Alpine_
session. Your INBOX is always implicitly included in this
Stay-Open list and doesn't need to be added explicitly.
Another difference that you may notice between a Stay Open
folder and a non-Stay Open folder is which message is selected
as the current message when you enter the folder index.
Normally, the starting position for an incoming folder (which
most Stay Open folders will likely be) is controlled by the
Incoming-Startup-Rule. However, if a folder is a Stay Open
folder, when you re-enter the folder after the first time the
current message will be the same as it was when you left the
folder. An exception is made if you use the TAB command to get
to the folder. In that case, the message number will be
incremented by one from what it was when you left the folder.
The above special behavior is thought to be useful. However, it
is special and different from what you might at first expect.
The feature Use-Regular-Startup-Rule-for-Stayopen-Folders may be
used to turn off this special treatment.
If the message that was current when you left the folder no
longer exists, then the regular startup rule will be used
instead.
This option is displayed as "Stayopen Folders".
_tcp-open-timeout_
Sets the time in seconds that _Alpine_ will attempt to open a
network connection. The default is 30, the minimum is 5, and the
maximum is system defined (typically 75). If a connection has
not completed within this many seconds _Alpine_ will give up and
consider it a failed connection.
_tcp-query-timeout_
When _Alpine_ times out a network read or write it will normally
just display a message saying "Still waiting". However, if
enough time has elapsed since it started waiting it will offer
to let you break the connection. That amount of time is set by
this option, which defaults to 60 seconds, has a minimum of 5
seconds, and a maximum of 1000 seconds.
_tcp-read-warning-timeout_
Sets the time in seconds that _Alpine_ will wait for a network
read before warning you that things are moving slowly and
possibly giving you the option to break the connection. The
default is 15 seconds. The minimum is 5 seconds and the maximumn
is 1000 seconds.
_tcp-write-warning-timeout_
Sets the time in seconds that _Alpine_ will wait for a network
write before warning you that things are moving slowly and
possibly giving you the option to break the connection. The
default is 0 which means it is unset. If set to a non-zero
value, the minimum is 5 and the maximum is 1000.
_threading-display-style_
When a folder is sorted by Threads or OrderedSubject, this
option will affect the MESSAGE INDEX display. By default,
_Alpine_ will display the MESSAGE INDEX in the
"show-thread-structure" style if a folder is sorted by Threads
or OrderedSubject. The possible values are:
_none_
Regular index display. The same index line as would be
displayed without threading is used. The only difference
will be in the order of the messages.
_show-thread-structure_
Threaded Subjects will be indented and vertical bars and
horizontal lines will be added to make it easier to see
the relationships among the messages in a thread (a
conversation).
_mutt-like_
This is the same as the option above except that the
Subject is suppressed (is blank) if it matches the
previous Subject in the thread. The name comes from the
email client Mutt. Here is an example of what a mutt-like
index might look like. In this example, the first column
represents the message number, the threading-index-style
is set to "regular-index-with-expanded-threads", and the
Threading-Lastreply-Character is set to a backslash:
1 Some topic
2 . Subject original message in thread
3 |-> reply to 2
4 . |-> another reply to 2
5 . | \-> reply to 4
6 . | \-> reply to 5
7 | \-> reply to 6
8 |-> another reply to 2
9 . |->New subject another reply to 2 but with a New subject
10 | |-> reply to 9
11 | \-> another reply to 9
12 | \-> reply to 11
13 \-> final reply to 2
14 Next topic
_indent-subject-1_
Threaded Subjects will be indented one space per level of
the conversation. The bars and lines that show up in the
show-thread-structure display will not be there with this
style.
_indent-subject-2_
Same as above but indent two spaces per level instead of
one space.
_indent-from-1_
Similar to indent-subject-1, except that instead of
indenting the Subject field one space the From field of a
thread will be indented one space per level of the
conversation.
_indent-from-2_
Same as above but indent two spaces per level instead of
one space.
_show-structure-in-from_
The structure of the thread is illustrated with indenting,
vertical bars, and horizontal lines just like with the
show-thread-structure option, but the From field is used
to show the relationships instead of the Subject field.
_threading-expanded-character_
The Threading-Expanded-Character option has a small effect on
the MESSAGE INDEX display when using a threading-display-style
other than _none_. The value of this option is a single
character. This character is used to indicate that part of a
thread has been expanded and could be collapsed if desired with
the "/" Collapse/Expand command. By default, the value of this
option is a dot (.).
If this option is set to the Empty Value, then the column (and
the following blank column) will be deleted from the display.
This option is closely related to the
threading-indicator-character option. Another similar option
which affects the thread display is the
threading-lastreply-character option.
_threading-index-style_
When a folder is sorted by Threads or OrderedSubject, this
option will affect the INDEX displays. The possible values are:
_regular-index-with-expanded-threads_
This is the default display. If the configuration option
threading-display-style is set to something other than
"none", then this setting will cause _Alpine_ to start off
with a MESSAGE INDEX with all of the threads expanded.
That is, each message will have a line in the MESSAGE
INDEX display. The Collapse/Expand command (/) may be used
to manually collapse or expand a thread or subthread (see
also slash-collapses-entire-thread).
This setting affects the display when the folder is first
threaded. The collapsed state may also be re-initialized
by re-sorting the folder manually using the SortIndex
command ($). After re-sorting the threads will once again
all be expanded, even if you have previously collapsed
some of them.
If "threading-display-style" is set to "none", then the
display will be the regular default _Alpine_ MESSAGE
INDEX, but sorted in a different order.
_regular-index-with-collapsed-threads_
If the configuration option threading-display-style is set
to something other than "none", then this setting will
cause _Alpine_ to start out with all of the threads
collapsed instead of starting out with all of the threads
expanded. The Collapse/Expand command (/) may be used to
manually collapse or expand a thread or subthread (see
also slash-collapses-entire-thread).
This setting affects the display when the folder is first
threaded. The collapsed state may also be re-initialized
by re-sorting the folder manually using the SortIndex
command ($). After re-sorting the threads will once again
all be collapsed, even if you have previously expanded
some of them.
_separate-index-screen-always_
With this setting and the next, you will see an index of
threads instead of an index of messages, provided you have
sorted by Threads or OrderedSubject.
The THREAD INDEX contains a '*' in the first column if any
message in the thread is marked Important. If not, it
contains a '+' if any message in the thread is to you. The
second column is blank. The third column contains a 'D' if
all of the messages in the thread are deleted. Otherwise,
it contains an 'N' if any of the messages in the thread
are New.
When you view a particular thread from the THREAD INDEX
you will be in the MESSAGE INDEX display but the index
will only contain messages from the thread you are
viewing.
_separate-index-screen-except-for-single-messages_
This is very similar to the option above. When you are in
the THREAD INDEX, one of the available commands is
"ViewThd". With the setting "separate-index-screen-always"
(the option above) when you view a particular thread you
will be in the MESSAGE INDEX display and the index will
only contain messages from the thread you are viewing. If
the thread you are viewing consists of a single message,
the MESSAGE INDEX will be an index with only one message
in it. If you use this
"separate-index-screen-except-for-single-messages" setting
instead, then that index which contains a single message
will be skipped and you will go directly from the THREAD
INDEX into the MESSAGE TEXT screen.
_threading-indicator-character_
The Threading-Indicator-Character option has a small effect on
the MESSAGE INDEX display when using a threading-display-style
other than _none_ and sorting by Threads or OrderedSubject. The
value of this option is a single character. This character is
used to indicate that part of a thread (a conversation) is
hidden beneath a message. The message could be expanded if
desired with the "/" Collapse/Expand command. By default, the
value of this option is the greater than sign (>).
If this option is set to the Empty Value, then the column (and
the following blank column) will be deleted from the display.
This option is closely related to the
threading-expanded-character option. Another similar option
which affects the thread display is the
threading-lastreply-character option.
_threading-lastreply-character_
The Threading-Lastreply-Character option has a small effect on
the MESSAGE INDEX display when using a threading-display-style
of _show-thread-structure_, _mutt-like_, or
_show-structure-in-from_; and sorting by Threads or
OrderedSubject. The value of this option is a single character.
This character is used instead of the vertical line character
when there are no more replies directly to the parent of the
current message. It can be used to "round-off" the bottom of the
vertical line by setting it to a character such as a backslash
(\) or a backquote (`). The default value of this option is the
backslash character (\). This option may not be set to the Empty
Value. In that case, the default will be used instead.
This option is displayed as "Threading Last Reply Character".
_title-background-color_
_title-foreground-color_
Title Color.
_title-closed-background-color_
_title-closed-foreground-color_
Title-closed Color.
_titlebar-color-style_
titlebar-color-style.
_unknown-character-set_
A text message should either be made up of all US-ASCII
characters or it should contain a charset label which tells the
software which character set encoding to use to interpret the
message. Sometimes a malformed message may be unlabeled but
contain non-ascii text. This message is outside of the standards
so any attempt to read it could fail. When _Alpine_ attempts to
read such a message it will try to interpret the text in the
character set you specify here. For example, if you have
correspondents who send you unlabeled messages that are usually
made up of characters from the WINDOWS-1251 character set,
setting this unknown-character-set to WINDOWS-1251 will allow
you to read those messages. Of course, if the unlabeled message
is actually in some other character set, then you may see
garbage on your screen.
In the Setup/Config screen you may choose from a list of all the
character sets _Alpine_ knows about by using the "T" ToCharsets
command.
_upload-command_
This option affects the behavior of the Composer's _^R_ (Read
File) and _^J_ (Attach File, in the header) commands. It
specifies a Unix program name, and any necessary command line
arguments, that _Alpine_ can use to transfer files from your
personal computer into messages that you are composing.
_upload-command-prefix_
This option is used in conjunction with the _upload-command_
option. It defines text to be written to the terminal emulator
(via standard output) immediately prior to starting the upload
command. This is useful for integrated serial line file transfer
agents that permit command passing (e.g., Kermit's APC method).
_url-viewers_
List of programs to use to open Internet URLs. This value
affects _Alpine_'s handling of URLs that are found in the text
of messages you read. Normally, only URLs _Alpine_ can handle
directly are automatically offered for selection in the "Message
Text" screen. When one or more comma delimited Web browsers
capable of deciphering URLs on their command line are added
here, _Alpine_ will choose the first available browser to
display URLs it doesn't recognize.
Additionally, to support various connection methods and
browsers, each entry in this list can begin with the special
token _TEST(test-string)_. The test-string is a shell command
that _Alpine_ will run and which must exit with a status of zero
for _Alpine_ to consider that browser for use (the other
criteria is that the browser must exist as a full path or a path
relative to your home directory).
Now for an example:
url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape,
/usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT
This example shows that for the first browser in the list to be
used the environment variable DISPLAY must be defined. If it is,
then the file /usr/local/bin/netscape must exist. If either
condition is not met, then the file /usr/local/bin/lynx must
exist. If it doesn't, then the final path and file must exist.
Note that the last entry is a DOS/Windows path. This is one way
to support _Alpine_ running on more than one architecture with
the same configuration file.
_use-only-domain-name_
Can be set to _yes_ or _no._ Anything but _yes_ means _no._ If
set to _yes_ the first label in the host name will be lopped off
to get the domain name and the domain name will be used for
outgoing mail and such. That is, if the host name is
_carson.u.example.edu_ and this variable is set to _yes,_ then
_u.example.edu_ will be used on outgoing mail. Only meaningful if
user-domain is NOT set.
_user-domain_
Sets the domain or host name for the user, overriding the system
host or domain name. See the domain name section. The easiest
way to change the full From address is with the customized-hdrs
variable.
_user-id_
_PC-Alpine_ only and personal configuration file only. Sets the
username that is placed on all outgoing messages. The username
is the part of the address that comes before the "@". The
easiest way to change the full From address is with the
customized-hdrs variable.
_user-input-timeout_
If this is set to an integer greater than zero, then this is the
number of _hours_ to wait for user input before _Alpine_ times
out. If _Alpine_ is in the midst of composing a message or is
waiting for user response to a question, then it will not
timeout. However, if _Alpine_ is sitting idle waiting for the
user to tell it what to do next and the user does not give any
input for this many hours, _Alpine_ will exit. No expunging or
moving of read messages will take place. It will exit similarly
to the way it would exit if it received a hangup signal. This
may be useful for cleaning up unused _Alpine_ sessions which
have been forgotten by their owners. The _Alpine_ developers
envision system administrators setting this to a value of
several hours (24?) so that it won't surprise a user who didn't
want to be disconnected.
_viewer-hdr-colors_
This variable holds the optional Header Colors and patterns
which have been defined by the user. This is usually modified by
using the Header Colors section of the Setup Color screen.
_viewer-hdrs_
You may change the default list of headers that are viewed by
listing the headers you want to view here. If the headers in
your _viewer-hdrs_ list are present in the message, then they
will be shown. The order of the headers you list will also be
honored. If the special value _all-except_ is included as the
first header in the _viewer-hdrs_ list, then all headers in the
message except those in the list will be shown. The values are
all case insensitive.
This option is displayed as "Viewer Headers".
_viewer-margin-left_
This variable controls the left-hand vertical margin's width in
_Alpine_'s Message Viewing screen. Its value is the number of
space characters preceding each displayed line. For consistency
with Viewer-Margin-Right, you may specify the column number to
start in (column numbering begins with number 1) instead of the
width of the margin by appending a lower case letter "c" to the
number. For example, a value of "2c" means to start the text in
column two, which is entirely equivalent to a value of "1",
which means to leave a margin of 1 space.
The default is a left margin of 0 (zero). Misconfigurations (for
example, negative values or values with starting left columns
greater than the ending right column) are silently ignored. If
the number of columns for text between the Viewer-Margin-Left
and the Viewer-Margin-Right is fewer than 8, then margins of
zero will be used instead.
_viewer-margin-right_
This variable controls the right-hand vertical margin's width in
_Alpine_'s Message Viewing screen. Its value is the number of
space characters following each displayed line. You may specify
the column number to end the text in (column numbering begins
with number 1) instead of the width of the margin by appending a
lower case letter "c" to the number. For example, a value of
"76c" means to end the text in column 76. If the screen is 80
characters wide, this is equivalent to a value of "4", which
means to leave a margin of 4 spaces. However, if you use
different size screens at different times, then these two values
are not equivalent.
The default right margin is 4. Misconfigurations (for example,
negative values or values with starting left columns greater
than the ending right column) are silently ignored. If the
number of columns for text between the Viewer-Margin-Left and
the Viewer-Margin-Right is fewer than 8, then margins of zero
will be used instead.
_viewer-overlap_
This option specifies an aspect of _Alpine_'s Message Viewing
screen. When the space bar is used to page forward in a message,
the number of lines specified by the _viewer-overlap_ variable
will be repeated from the bottom of the screen. That is, if this
was set to two lines, then the bottom two lines of the screen
would be repeated on the top of the next screen. The normal
default value is "2".
_window-position_
Winsock version of _PC-Alpine_ only. Window position in the
format: CxR+X+Yn Where C and R are the window size in characters
and X and Y are the screen position of the top left corner of
the window.
__________________________________________________________________
Configuration Features
There are several features (options) which may be turned off or on. The
configuration variable feature-list is a list of all the features that
are turned on or off. If the name of a feature is in the list it will
be turned on. If the name of a feature with the characters no-
prepended is in the list, it will turn the feature off. This is useful
for overriding system-wide defaults. This is because, unlike all the
other configuration variables, the _feature-list_ is additive. That is,
first the system-wide _feature-list_ is read and then the user's
_feature-list_ is read. This makes it possible for the system manager to
turn some of the features on by default while still allowing the user
to cancel that default. For example, if the system manager has turned
on the _allow-talk_ feature by default then a user may turn it back off
by including the feature _no-allow-talk_ in his or her personal
configuration file. Of course, these details are usually handled by
_Alpine_ when the user turns an option on or off from inside the
_Setup/Config_ screen.
System managers should take some care when turning on features by
default. Some of the documentation assumes that all of the features are
off by default, so it could be confusing for a user if some are on by
default instead. Feature names are case-independent.
Here is an alphabetical list of possible features.
_allow-changing-from_
Prior to _Pine_ 4.00 there was a _compile_-time option called
ALLOW_CHANGING_FROM. That has been replaced by a _runtime_
feature. If this feature is turned on then the From line can be
changed just like all the other header fields that can be
changed. See the configuration variables customized-hdrs and
default-composer-hdrs for more information on editing headers.
The default value for this feature is ON, so that editing of
From headers is allowed by default.
_allow-talk_
Unix _Alpine_ only. By default, permission for others to _talk_
to your terminal is turned off when you are running _Alpine_.
When this feature is set, permission is instead turned on.
Note: The _talk_ program has nothing to do with _Alpine_ or
email. The _talk_ daemon on your system will attempt to print a
message on your screen when someone else is trying to contact
you. If you wish to see these messages while you are running
_Alpine_, you should enable this feature.
If you do enable this feature and see a _talk_ message, you must
suspend or quit _Alpine_ before you can respond.
_alternate-compose-menu_
This feature controls the menu that is displayed when Compose is
selected. If set, a list of options will be presented, with each
option representing the type of composition that could be used.
This feature is most useful for users who want to avoid being
prompted with each option separately, or who want to avoid the
checking of remote postponed or form letter folders. The
possible types of composition are:
New, for starting a new composition. Note that if New is
selected and roles are set, roles are checked for matches and
applied according to the setting of the matching role.
Interrupted, for continuing an interrupted composition. This
option is only offered if an interrupted message folder is
detected.
Postponed, for continuing postponed compositions. This option is
offered if a postponed-folder is set in the config _REGARDLESS
OF_ whether or not the postponed folder actually exists. This
option is especially handy for avoiding having to check for the
existence of a remote postponed folder.
Form, for using form letters. This option is offered if the
form-letter-folder is set in the config, and is not checked for
existence for reasons similar to those explained by the
postponed option.
setRole, for selecting a role to apply to a composition.
_alternate-role-menu_
Normally the Role Command allows you to choose a role and
compose a new message using that role. When this feature is set,
the role command will first ask whether you want to Compose a
new message, Forward the current message, Reply to the current
message, or Bounce the current message. If you are not in the
MESSAGE INDEX and are not viewing a message, then there is no
current message and the question will be skipped. After you have
chosen to Compose, Forward, Reply or Bounce you will then choose
the role to be used.
When Bouncing the "Set From" address is used for the Resent-From
header, the "Set Fcc" value is used for the Fcc provided that
the option "Fcc-On-Bounce" is turned on, and the "Use SMTP
Server" value is used for the SMTP server, if set. Other actions
of the role are ignored when Bouncing.
This feature is displayed as "Alternate Role (#) Menu".
_assume-slow-link_
UNIX _Alpine_ only.
This feature affects _Alpine_'s display routines. If set, the
normal inverse-video cursor (used to highlight the current item
in a list) will be replaced by an _arrow_ cursor and other
screen update optimizations for low-speed links (e.g. 2400 bps
dialup connections) will be activated. One of the optimizations
is that colored index lines (set up with Indexcolor Rules) will
not be colored. This might be useful if _you_ know you have a
slow speed link but for some reason _Alpine_ doesn't know.
_auto-move-read-msgs_
This feature controls an aspect of _Alpine_'s behavior upon
quitting. If set, and the read-message-folder variable is also
set, then _Alpine_ will automatically transfer all read messages
from the _INBOX_ to the designated folder and mark them as
deleted in the _INBOX_. Messages in the _INBOX_ marked with an
_N_ (meaning New, or unseen) are not affected.
This feature is displayed as "Auto Move Read Messages".
_auto-open-next-unread_
This feature controls the behavior of the TAB key when
traversing folders in the optional incoming-folders collection
or in optional news-collections.
When the TAB (Next New) key is pressed, and there are no more
unseen messages in the current (incoming message or news)
folder, _Alpine_ will search the list of folders in the current
collection for one containing New or Recent (new since the last
time the folder was opened) messages. This behavior may be
modified slightly with the Tab-Uses-Unseen-For-Next-Folder
feature which causes _Alpine_ to look for Unseen messages
instead of Recent messages. By default, when such a folder is
found, _Alpine_ will ask whether you wish to open the folder. If
this feature is set, _Alpine_ will automatically open the folder
without prompting.
_auto-unselect-after-apply_
This feature affects the behavior of the Apply command. If set,
the Apply command will do the operation you specify, but then
will implicitly do an "UnSelect All", so that you will
automatically be back in the normal Index view after the Apply.
_auto-unzoom-after-apply_
If set, and if you are currently looking at a Zoomed Index view
of selected messages, the _Apply_ command will do the operation
you specify, but then will implicitly do an _UnZoom_, so that
you will automatically be back in the normal Index view after
the _Apply_. This feature is set by default.
_auto-zoom-after-select_
If set, the _; select_ command will automatically perform a
_Zoom_ after the _select_ is complete. This feature is set by
default.
_busy-cue-spinner-only_
When _Alpine_ is delayed for some reason it usually shows that
something is happening with a small animated display in the
status message line near the bottom of the screen. Setting this
feature will cause that animation to be the same each time
instead of having _Alpine_ choose a random animation. You may
turn the animation off altogether by setting the busy-cue-rate
option to zero.
_check-newmail-when-quitting_
If set, _Alpine_ will check for new mail after you give the Quit
command. If new mail has arrived since the previous check, you
will be notified and given the choice of quitting or not
quitting.
_combined-addrbook-display_
This feature affects the address book display screens. Normally,
expanding an address book from the ADDRESS BOOK LIST screen will
cause the remaining address books and directory servers to
disappear from the screen, leaving only the entries of the
expanded address book. If this feature is set, then the other
address books will remain on the screen, so that all of the
address books can be present at once.
The way that commands work won't be changed. For example, the
Select All command will select all of the entries in the current
address book, not all of the entries in all of the address
books. The WhereIs command will change a little. It will search
through all of the text on the screen plus all of the entries
from expanded address books.
When this feature is set, the setting of the feature
expanded-view-of-addressbooks has an effect.
This feature is displayed as "Combined Addressbook Display".
_combined-folder-display_
This feature affects the folder list display screens. Normally,
each folder list is viewed within its collection only. This
command allows folder lists to be viewed within a single screen
that combines the contents of all collections.
The way that commands work won't be changed. For example, the
Select All command will select all of the folders in the current
collection, not all of the entries in all of the collections.
The WhereIs command will change a little. It will search through
all of the folders in the current collection as well as all the
folder in any other expanded collection.
When this feature is set, the setting of the feature
expanded-view-of-folders has an effect.
_combined-subdirectory-display_
This feature affects the Folder List screen when the
combined-folder-display feature is enabled. Normally, selecting
a directory from the Folder List takes you into a new screen
displaying only the contents of that directory.
Enabling this feature will cause the contents of the selected
directory to be displayed within the boundaries of the
Collection it is a part of. All previously displayed collections
will remain in the screen.
The way that commands work won't be changed. For example, the
Select All command will select all of the folders in the
directory, as opposed to all of the entries in all of the
collections. The WhereIs command will change a little. It will
search through all of the folders in the current collection as
well as all the folder in any other expanded collection.
_compose-cancel-confirm-uses-yes_
This feature affects what happens when you type ^C to cancel a
composition. By default, if you attempt to cancel a composition
by typing ^C, you will be asked to confirm the cancellation by
typing a "C" for _C_onfirm. It logically ought to be a "Y" for
_Y_es, but that is risky because the "^C Y" needed to cancel a
message is close (on the keyboard) to the "^X Y" needed to send
a message.
If this feature is set the confirmation asked for will be a
"_Y_es" instead of a "_C_onfirm" response.
_compose-cut-from-cursor_
If set, the _^K_ command in the composer will cut from the
current cursor position to the end of the line, rather than
cutting the entire line.
This feature is displayed as "Ctrl-K Cuts From Cursor".
_compose-maps-delete-key-to-ctrl-d_
If set, Delete will be equivalent to ^D, and delete the current
character. Normally _Alpine_ defines the Delete key to be
equivalent to ^H, which deletes the _previous_ character.
This feature is displayed as "Delete Key Maps to Ctrl-D".
_compose-rejects-unqualified-addrs_
If set, unqualified names entered as addresses will be treated
as errors unless they match an addressbook nickname or are
looked up successfully on an LDAP server. _Alpine_ will not
attempt to turn them into complete addresses by adding your
local domain (which _Alpine_ normally does by default).
A complete (fully-qualified) address is one containing a
username followed by an _@_ symbol, followed by a host or domain
name (e.g. _jsmith@example.com_). An unqualified name is one
without the _@_ symbol and host or domain name (e.g. _jsmith_).
This feature is displayed as "Compose Rejects Unqualified
Addresses".
_compose-send-offers-first-filter_
If you have sending-filters configured, setting this feature
will cause the first filter in the _sending-filters_ list to be
offered as the default instead of _unfiltered_, the usual
default.
_compose-sets-newsgroup-without-confirm_
If you enter the composer while reading a newsgroup, you will
normally be prompted to determine whether you intend the new
message to be posted to the current newsgroup or not. If this
feature is set, _Alpine_ will not prompt you in this situation,
and will assume that you do indeed wish to post to the newsgroup
you are reading.
This feature is displayed as "Compose Sets Newsgroup Without
Confirming".
_confirm-role-even-for-default_
If you have roles, when you Reply to or Forward a message, or
Compose a new message, _Alpine_ will search through your roles
for one which matches. Normally, if no matches are found you
will be placed into the composer with no opportunity to select a
role. If this feature is set, then you will be asked to confirm
that you don't want a role. This will give you the opportunity
to select a role (with the ^T command). If you confirm no role
with a Return, you will be placed in the composer with no role.
You may also confirm with either an "N" or a "Y". These behave
the same as if you pressed the Return. (The "N" and "Y" answers
are available because they match what you might type if there
was a role match.)
If you are using the alternate form of the Compose command
called "Role", then all of your roles will be available to you,
independent of the value of this feauture and of the values set
for all of Reply Use, Forward Use, and Compose Use.
_continue-tab-without-confirm_
Normally, when you use the TAB NextNew command and there is a
problem checking a folder, you are asked whether you want to
continue with the search in the following folder or not. This
gives you a chance to stop the NextNew processing.
If this feature is set you will not be asked. It will be assumed
that you want to continue.
This feature is displayed as "Continue NextNew Without
Confirming".
_convert-dates-to-localtime_
Normally, the message dates that you see in the MESSAGE INDEX
and MESSAGE VIEW are displayed in the timezone they were sent
from. For example, if a message was sent to you from a few
timezones to the east it might appear that it was sent from the
future; or if it was sent from somewhere to the west it might
appear as if it is from yesterday even though it was sent only a
few minutes ago. If this feature is set an attempt will be made
to convert the dates to your local timezone to be displayed.
Note that this does not affect the results of Select by Date or
of anything else other than these displayed dates. When viewing
the message you may look at the original unconverted value of
the Date header by using the HdrMode Command.
_copy-to-address-to-from-if-it-is-us_
This feature affects the From address used when Replying to a
message. It is probably only useful if you have some
alt-addresses defined. When enabled, it checks to see if any of
the addresses in the To or Cc fields of the message you are
replying to is one of your addresses. If it is, and there is
only one of them, then that address is used as the From address
in the message you are composing. In other words, you will be
using a From address that is the same as the To address that was
used to get the mail to you in the first place.
If a role is being used and it has a From address defined, that
From address will be used rather than the one derived from this
feature.
_delete-skips-deleted_
If set, this feature will cause the _Delete_ command to advance
past other messages that are marked deleted. In other words,
pressing _D_ will both mark the current message deleted and
advance to the next message that is not marked deleted. This
feature is set by default.
_disable-config-cmd_
If set, the configuration screen _Setup/Config_ will not be
available at all.
_disable-save-input-history_
Many of the prompts that ask for input in the status line near
the bottom of the screen will respond to Up Arrow and Down Arrow
with the history of previous entries. For example, in the
MESSAGE INDEX screen when you use the WhereIs command the text
you entered will be remembered and can be recalled by using the
Up Arrow key. Another example, when saving a message the folders
saved to will be remembered and can be recalled using the arrow
keys.
In the Save prompt, some users prefer that the Up and Down arrow
keys be used for the Previous Collection and Next Collection
commands instead of for a history of previous saves. If this
option is set the Up and Down arrow keys will become synonyms
for the Previous Collection and Next Collection (^P and ^N)
commands in the prompt for the name of a folder to Save to or in
the prompt for the name of a folder to GoTo. When this feature
is not set (the default), ^P and ^N will change the collection
and the arrow keys will show the history.
_disable-keyboard-lock-cmd_
In the Main _Alpine_ menu there is a Keyboard locking command
(_KBLock_). If this feature is set, that command won't be
available to the user.
_disable-keymenu_
If set, the command key menu that normally appears on the bottom
two lines of the screen will not usually be there. Asking for
help with _^G_ or _?_ will cause the key menu to appear instead
of causing the help message to come up. If you want to actually
see the help text, another _^G_ or _?_ will show it to you.
After the key menu has popped up with the help key it will
remain there for an _O Other_ command but will disappear if any
other command is typed.
_disable-password-caching_
Normally, loginname/password combinations are cached in _Alpine_
so that the user does not have to enter the same password more
than once in a session. A disadvantage to this approach is that
the password must be stored in the memory image of the running
_Alpine_ in order that it can be reused. In the event that
_Alpine_ crashes and produces a core dump, and that core dump is
readable by others, the loginname and password could possibly be
read from the core dump.
If this feature is set, then the passwords will not be cached
and the user will have to retype the password whenever _Alpine_
needs it. Even with this feature set there is still some chance
that the core file will contain a password, so care should be
taken to make the core files unreadable.
NOTE: If PASSFILE caching is enabled, this does not disable it.
That is a separate and independent feature.
_disable-password-cmd_
If set the _Newpassword_ command usually available under the
_Setup_ command will not be available.
_disable-pipes-in-sigs_
If set it will be an error to append a vertical bar (|) to the
name of a signature file. Appending a vertical bar normally
causes the signature file to be executed to produce the
signature.
_disable-pipes-in-templates_
If set it will be an error to append a vertical bar (|) to the
name of a template file. Appending a vertical bar normally
causes the signature file to be executed to produce the
signature.
_disable-regular-expression-matching-for-alternate-addresses_
Normally, the alt-addresses option is interpreted as a regular
expression. One type of address that might cause trouble is an
address that contains a plus sign. If you want to have an
address with a plus as one of your alternate addresses and you
don't want to use regular expressions, then setting this feature
will cause _Alpine_ to treat the addresses you list literally
instead.
_disable-roles-setup-cmd_
If set the _Roles_ command usually available under the _Setup_
command will not be available.
_disable-roles-sig-edit_
If set the roles editor in the _Setup/Roles_ command will not
allow editing of signature files with the F subcommand.
_disable-roles-template-edit_
If set the roles editor in the _Setup/Roles_ command will not
allow editing of template files with the F subcommand.
_disable-sender_
If set, _Alpine_ will not generate a "Sender:" or "X-X-Sender"
header. This may be desirable on a system which is virtually
hosting many domains, and the sysadmin has other methods
available for tracking a message to its originator.
This feature is displayed as "Do Not Generate Sender Header".
_disable-setlocale-collate_
This is a hard to understand feature that should only be used in
rare cases. Normally, the C function call
setlocale(LC_COLLATE, "")
is used by _Alpine_. If you want to try turning it off, setting
this feature will turn it off. This part of the locale has to do
with the sort order of characters in your locale.
_disable-shared-namespaces_
If this hidden feature is set the automatic search for
namespaces "ftp", "imapshared", and "imappublic" by the
underlying library will be disabled. The reason this feature
exists is because there are some implementations of system
password lookup routines which are very slow when presented with
a long loginname which does not exist. This feature could be set
to prevent the delay at startup time when the names above are
searched for in the password file.
_disable-signature-edit-cmd_
If set the _Signature_ editing command usually available under
the _Setup_ command will not be available.
_disable-take-fullname-in-addresses_
Normally, when TakeAddr is used to copy an address or addresses
from a message into an address book entry, _Alpine_ will try to
preserve the full name associated with each address in the list
of addresses. The reason for this is so that if the entry is a
list or later becomes a list, then information about the
individual addresses in the list is preserved. If you would
rather just have the simple addresses in the list of addresses,
set this feature. For example, with the default setting you
might see something like this in the ADDRESS BOOK editor after
you type TakeAddr
Nickname : nick
Fullname : Bedrock Elders
Fcc :
Comment :
Addresses : Fred Flintstone <flint@bedrock.org>,
Barney Rubble <rubble@bedrock.org>
but with this feature set it would look like
Nickname : nick
Fullname : Bedrock Elders
Fcc :
Comment :
Addresses : flint@bedrock.org,
rubble@bedrock.org
instead. Note the difference in the Addresses field.
_disable-take-last-comma-first_
Normally, when _TakeAddr_ is used to copy an address from a
message into an address book, _Alpine_ will attempt to rewrite
the full name of the address in the form:
Last, First
instead of
First Last
It does this because many people find it useful to sort by Last
name instead of First name. If this feature is set, then the
_TakeAddr_ command will not attempt to reverse the name in this
manner.
_disable-terminal-reset-for-display-filters_
UNIX _Alpine_ only.
This feature affects _Alpine_'s behavior when using
Display-Filters. Normally, before the display filter is run, the
terminal mode is reset to what it was before you started
_Alpine_. This may be necessary if the filter requires the use of
the terminal. For example, it may need to interact with you. If
you set this feature, then the terminal mode will not be reset.
One thing that turning on this feature should fix is the
coloring of quoted text in the message view, which breaks
because the terminal reset resets the color state of the
terminal (Color Configuration).
_downgrade-multipart-to-text_
This feature affects _Alpine_'s behavior when sending mail.
Internet standards require _Alpine_ to translate all non-ASCII
characters in messages that it sends using MIME encoding. This
encoding can be ostensibly broken for recipients if any agent
between _Alpine_ and the recipient, such as an email list
expander, appends text to the message, such as list information
or advertising. When sending such messages _Alpine_ attempts to
protect such encoding by placing extra MIME boundaries around
the message text.
These extra boundaries are invisible to recipients that use
MIME-aware email programs (the vast majority). However, if you
correspond with users of email programs that are not MIME-aware,
or do not handle the extra boundaries gracefully, you can use
this feature to prevent _Alpine_ from including the extra MIME
information. Of course, it will increase the likelihood that
non-ASCII text you send may appear corrupt to the recipient.
_enable-8bit-esmtp-negotiation_
This feature affects _Alpine_'s behavior when sending mail. By
default, this feature is set. Internet standards require that
all electronic mail messages traversing the global Internet
consist of 7bit ASCII characters unless a pair of cooperating
mail transfer agents explicitly agree to allow 8bit messages. In
general, then, exchanging messages in non-ASCII characters
requires MIME encoding.
However, there are now Internet standards that allow for
unencoded 8bit exchange of messages between cooperating systems.
When this feature is set _Alpine_ will try to negotiate
unencoded 8bit transmission during the sending process. Should
the negotiation fail, _Alpine_ will fall back to its ordinary
encoding rules.
Note, this feature relies on your system's mail transport agent
or configured smtp-server having the negotiation mechanism
introduced in "Extended SMTP" (ESMTP) and the specific extension
called _8BITMIME_.
_enable-8bit-nntp-posting_
The Internet standard for exchanging USENET news messages
(RFC-1036) specifies that USENET messages should conform to
Internet mail standards and contain only 7bit characters, but
much of the news transport software in use today is capable of
successfully sending messages containing 8bit characters. Hence,
many people believe that it is appropriate to send 8bit news
messages without any MIME encoding.
Moreover, there is no Internet standard for explicitly
negotiating 8bit transfer, as there is for Internet email.
Therefore, _Alpine_ provides the option of posting unencoded
8bit news messages, though not as the default. Setting this
feature will turn OFF _Alpine_'s MIME encoding of newsgroup
postings that contain 8bit characters.
Note, articles may cross a path or pass through news transport
software that is unsafe or even hostile to 8bit characters. At
best this will only cause the posting to become garbled. The
safest way to transmit 8bit characters is to leave _Alpine_'s
MIME encoding turned on, but recipients who lack MIME-aware
tools are often annoyed when they receive MIME-encoded messages.
_enable-aggregate-command-set_
When this feature is set you may use the commands and
subcommands that relate to performing operations on more than
one message at a time. We call these "aggregate operations". In
particular, the _; Select_, _A Apply_, and _Z Zoom_ commands are
enabled by this feature. _Select_ is used to _tag_ one or more
messages meeting the specified criteria. _Apply_ can then be
used to apply any message command to all of the selected/tagged
messages. Further, the _Zoom_ command allows you to toggle the
"Folder Index" view between just those Selected and all messages
in the folder.
This feature also enables the _^X_ subcommand in the "Folder
Index" _WhereIs_ command which causes all messages matching the
_WhereIs_ argument to become selected.
You may also use aggregate operations in the address book
screens where you are operating on address book entries instead
of on messages.
_enable-alternate-editor-cmd_
If this feature is set (the default), and the editor variable is
not set, entering the _^__ (Control-underscore) key while
composing a message will prompt you for the name of the editor
you would like to use.
If the environment variable $EDITOR is set, this value will be
offered as a default. If the _editor_ variable is set, the _^__
key will activate the specified editor without prompting, in
which case it is not necessary to set the
_enable-alternate-editor-cmd_ feature. This feature is not
available in _PC-Alpine_.
This feature is displayed as "Enable Alternate Editor Command".
_enable-alternate-editor-implicitly_
If this feature and the editor variable are both set, _Alpine_
will automatically activate the specified editor when the cursor
is moved from the header of the message being composed into the
message text. For replies, the alternate editor will be
activated immediately. If this feature is set but the _editor_
variable is not set, then _Alpine_ will automatically ask for
the name of an alternate editor when the cursor is moved out of
the headers, or if a reply is being done. This feature is not
available in _PC-Alpine_.
_enable-arrow-navigation_
This feature controls the behavior of the left and right arrow
keys. If set, the left and right arrow keys will operate like
the usual navigation keys _<_ and _>_. This feature is set by
default.
If you set this feature, and do not like the changed behavior of
the up/down arrow keys when navigating through the FOLDER LIST
screen -- _first_ from column to column, if more than one folder
is displayed per row, and _then_ from row to row -- you may
either also wish to set the feature
enable-arrow-navigation-relaxed, single-column-folder-list, or
use the ^P/^N (instead of up/down arrow) keys to move up/down
the list of folders in each column.
_enable-arrow-navigation-relaxed_
This feature controls the behavior of the left and right arrow
keys in the FOLDER LIST screen when the enable-arrow-navigation
feature is set. This feature is set by default.
When this feature is set, the left and right arrow keys in the
FOLDER LIST screen move the highlight bar to the left or right,
and the up and down arrows move it up or down.
When the "Enable-Arrow-Navigation" feature is set and this
feature is not set; the left and right arrow keys in the Folder
List screen strictly track the commands bound to the '<' and '>'
keys, and the up and down arrow keys move the highlight bar to
the previous and next folder or directory name.
_enable-background-sending_
If set, this feature enables a subcommand in the composer's
_Send?_ confirmation prompt. The subcommand allows you to tell
_Alpine_ to handle the actual posting in the background. While
this feature usually allows posting to appear to happen very
fast, it has no affect on the actual delivery time it takes a
message to arrive at its destination.
This feature isn't supported on all systems. All DOS and
Windows, as well as several Unix ports, do not recognize this
feature. It is not possible to use background sending if the
feature send-without-confirm is set.
Error handling is significantly different when this feature is
enabled. Any message posting failure results in the message
being appended to your _Interrupted_ mail folder. When you type
the _Compose_ command, _Alpine_ will notice this folder and
offer to extract any messages contained. Upon continuing a
failed message, _Alpine_ will display the nature of the failure
in the status message line.
Under extreme conditions, it is possible for message data to get
lost. Do not enable this feature if you typically run close to
any sort of disk-space limits or quotas.
_enable-bounce-cmd_
Setting this feature enables the _B Bounce_ command, which will
prompt for an address and _remail_ the message to the new
recipient. This command is used to re-direct messages that you
have received in error, or need to be redirected for some other
reason (e.g. list moderation). The final recipient will see a
header indicating that you have Resent the msg, but the
message's From: header will show the original author of the
message, and replies to it will go back to that author, and not
to you.
This feature is displayed as "Enable Bounce Command".
_enable-cruise-mode_
This feature affects _Alpine_'s behavior when you hit the "Space
Bar" at the end of a displayed message. Typically, _Alpine_
complains that the end of the text has already been reached.
Setting this feature causes such keystrokes to be interpreted as
if the _Tab_ key had been hit, thus taking you to the next
_interesting_ message, or scanning ahead to the next incoming
folder with _interesting_ messages.
_enable-cruise-mode-delete_
This feature modifies the behavior of _Alpine_'s
_enable-cruise-mode_ feature. Setting this feature causes _Alpine_
to implicitly delete read messages when it moves on to display
the next _interesting_ message.
NOTE: Beware when enabling this feature _and_ the
expunge-without-confirm feature.
This feature is displayed as "Enable Cruise Mode With Deleting".
_enable-delivery-status-notification_
If set, this feature enables a subcommand in the composer's
"Send?" confirmation prompt. The subcommand allows you to tell
_Alpine_ to request the type of Delivery Status Notification
(DSN) which you would like. Most users will be happy with the
default, and need not enable this feature. See the online help
for more details.
It is not possible to use delivery status notifications if the
feature send-without-confirm is set.
Note that this is not a method to request _READ_ receipts, which
tells the sender when the receiver has read the message. In this
case we're talking about notification of delivery to the
mailbox, not notification that the message has been seen.
_enable-dot-files_
If set, files beginning with dot (".") will be visible in the
file browser. For example, you'll be able to select them when
using the browser to add an attachment to a message.
_enable-dot-folders_
If set, folders beginning with dot (".") may be added and
viewed. This feature is displayed as "Enable Hidden Folders".
_enable-exit-via-lessthan-command_
If set, then on screens where there is an _Exit_ command but no
_<_ command, the _<_ key will perform the same function as the
_Exit_ command. This feature is set by default.
_enable-fast-recent-test_
This feature controls the behavior of the TAB key when
traversing folders in the optional Incoming-Folders collection
or in optional News-Collections.
When the TAB (NextNew) key is pressed, the default behavior is
to explicitly examine the status of the folder for the number of
recent messages (messages delivered since the last time it was
viewed). Depending on the size and number of messages in the
folder, this test can be time consuming.
Enabling this feature will cause _Alpine_ to only test for the
existence of any recent messages rather than to obtain the
count. This is much faster in many cases. The downside is that
you're not given the number of recent messages when prompted to
view the next folder. If the feature
Tab-Uses-Unseen-For-Next-Folder is turned on, then the present
feature will have no effect.
_enable-flag-cmd_
Setting this feature enables the _* Flag_ command, which allows
you to manipulate the status flags associated with a message. By
default, _Flag_ will set the _Important_ flag, which results in
an asterisk being displayed in column one of the "Folder Index"
for such messages.
This feature is displayed as "Enable Flag Command".
_enable-flag-screen-implicitly_
This feature modifies the behavior of the _* Flag_ command
(provided it too is enabled). By default, when the _* Flag_
command is selected, _Alpine_ offers a prompt to set one of
several flags and also offers the option of entering the
detailed flag manipulation screen via the _^T_ key. Enabling
this feature causes _Alpine_ to immediately enter the detailed
flag screen rather than first offer the simple prompt. The
Enable-Flag-Screen-Keyword-Shortcut option offers a slightly
different way of setting keywords.
_enable-flag-screen-keyword-shortcut_
This feature modifies the behavior of the Flag command and the
Select command. By default, when the "* Flag" command is
selected, _Alpine_ offers a prompt to set one of several flags
and also offers the option of entering the detailed flag
manipulation screen via the "^T" key. If you have keywords
defined, then enabling this feature adds a shortcut way to set
or unset keywords. You use "*" followed by the first letter of a
keyword (or the nickname of a keyword if you've given it a
nickname) and that will set the keyword.
An example is easier to understand than the explanation. The
flag command can always be used to set the system flags. For
example, to set the Answered flag you would type
* A
Now suppose you have defined a keyword "Work" using the Keywords
option in the Config screen. By default, to set a keyword like
"Work" you would usually have to go to the Flag Details screen
using the "^T To Flag Details" command. Instead, if you have
enabled this feature, you may type
* W
to set the Work flag, or
* ! W
to unset it. Just like for the other flag setting commands, the
case of the letter does not matter, so "w" or "W" both set the
"Work" keyword.
Notice that you can only use this trick for one keyword that
begins with "W". If you happen to have a "Work" keyword and
another keyword that is "WIFI" the "* W" command will set the
first one in your list of keywords. Also, there are five letters
which are reserved for system flags and the NOT command. If you
type "* A" it will always set the Answered flag, not your
"Aardvark" keyword. In order to set the "Aardvark" keyword
you'll still have to use the Flag Details screen.
Because enabling the Enable-Flag-Screen-Implicitly option causes
_Alpine_ to skip directly to the Flag Details screen when the
Flag command is used, setting it will cause this feature to have
no effect at all.
Similarly, when Selecting by Keyword, setting this option will
allow you to use Keyword initials instead of full keywords.
_enable-full-header-cmd_
This feature enables the _H Full Headers_ command which toggles
between the display of all headers in the message and the normal
edited view of headers. The _Full Header_ command also controls
which headers are included for _Export_, _Pipe_, _Print_,
_Forward_, and _Reply_ functions. (For _Reply_, the _Full Header_
mode will respect the _include-headers-in-reply_ feature
setting.)
If Full Header mode is turned on and you Forward a message, you
will be asked if you'd like to forward the message as an
attachment, as opposed to including the text of the message in
the body of your new message.
If you have also turned on the "Quote Suppression" option then
the Full Headers command actually rotates through three states
instead of just two. The first is the normal view with long
quotes suppressed. The second is the normal view but with the
long quotes included. The last enables the display of all
headers in the message. When using Export, Pipe, Print, Forward,
or Reply the quotes are never suppressed, so the first two
states are identical.
Normally, the Header Mode will reset to the default behavior
when moving to a new message. The mode can be made to persist
from message to message by setting the feature
Quell-Full-Header-Auto-Reset.
This feature is displayed as "Enable Full Header Command".
_enable-full-header-and-text_
This feature affects how the _H Full Headers_ command displays
message text. If set, the raw message text will be displayed.
This especially affects MIME formatted email, where the entire
MIME format will be displayed. This feature similarly affects
how messages are included for the _Export_, _Pipe_, _Print_,
_Forward_, and _Reply_ functions.
_enable-goto-in-file-browser_
Setting this causes _Alpine_ to offer the _G Goto_ command in
the file browser. The Goto command allows you to explicitly type
in the desired directory. That is the default.
_enable-incoming-folders_
If set, this feature defines a pseudo-folder collection called
_INCOMING MESSAGE FOLDERS_. Initially, the only folder included
in this collection will be your _INBOX_, which will no longer
show up in your default saved-message folder collection.
This feature is displayed as "Enable Incoming Folders
Collection".
_enable-incoming-folders-checking_
This feature is only operational if you have enabled the
optional incoming-folders If you do have Incoming Message
Folders and you also set this feature, then the number of Unseen
messages in each folder will be displayed in the FOLDER LIST
screen for the Incoming Message Folders. The number of Unseen
messages in a folder will be displayed in parentheses to the
right of the name of each folder. If there are no Unseen
messages in a folder then only the name is displayed, not a set
of parentheses with zero inside them. A redraw command, Ctrl-L,
can be used in the FOLDER LIST screen for the Incoming Message
Folders to cause an immediate update.
If a check for Unseen messages fails for a particular folder
then Alpine will no longer attempt to check that folder for the
duration of the session and this will be indicated by a question
mark inside the parentheses.
The features incoming-checking-includes-total,
incoming-checking-uses-recent, incoming-check-list,
incoming-check-interval, incoming-check-interval-secondary, and
incoming-check-timeout all affect how this feature behaves.
_Disable-Index-Locale-Dates_
This feature affects the display of dates in the MESSAGE INDEX.
Normally an attempt is made to localize the dates used in the
MESSAGE INDEX display to your locale. This is controlled with
the LC_TIME locale setting on a UNIX system. On Windows the
Regional Options control panel may be used to set the date
format. At the programming level, _Alpine_ is using the strftime
routine to print the parts of a date.
If this feature is set, dates are displayed in English and with
the conventions of the United States.
_enable-jump-shortcut_
When this feature is set you may enter a number (followed by
RETURN) and jump to that message number, when in the MESSAGE
INDEX or MESSAGE TEXT screens. In other words, it obviates the
need for typing the _J_ for the _Jump_ command.
_enable-lame-list-mode_
This feature modifies the method _Alpine_ uses to ask your IMAP
server for folder names to display in the the FOLDER LIST
screen. It is intended to compensate for a small set of IMAP
servers that are programmed to ignore a part of the request, and
thus respond to _Alpine_'s query with nonsensical results.
If you find that _Alpine_ is erroneously displaying blank folder
lists, try enabling this feature.
NOTE: Enabling this feature has consequences for the Goto and
Save commands. Many servers allow access to folders outside the
area reserved for your personal folders via some reserved
character, typically '#' (sharp), '~' (tilde) or '/' (slash).
This mechanism allows, at the Goto and Save prompts, quick
access to folders outside your personal folder collection
without requiring a specific collection definition. This
behavior will generally not be available when this feature is
enabled.
This feature is displayed as "Compensate for Deficient IMAP
servers".
_enable-mail-check-cue_
If set, this will cause an asterisk to appear in the upper
left-hand corner of the screen whenever _Alpine_ checks for new
mail, and two asterisks whenever _Alpine_ saves (checkpoints)
the state of the current mailbox to disk.
_enable-mailcap-param-substitution_
If set, this will allow mailcap named parameter substitution to
occur in mailcap entries. By default, this is turned off to
prevent security problems which may occur with some incorrect
mailcap configurations. For more information, RFC1524 and look
for "named parameters" in the text of the RFC.
This feature is displayed as "Enable Mailcap Parameter
Substitution".
_enable-mouse-in-xterm_
This feature controls whether or not an X terminal mouse can be
used with _Alpine_. If set, and the $DISPLAY variable indicates
that an X terminal is being used, the left mouse button on the
mouse can be used to select text or commands. Clicking on a
command at the bottom of the screen will behave as if you had
typed that command. Clicking on an index line will move the
current message highlight to that line. Double-clicking on an
index line will view the message. Double-clicking on a link will
view the link.
This type of mouse support will also work in some terminal
emulators which are not actually X terminals, but which have
extra code to support the xterm style mouse. For those emulators
you not only need to turn this feature on but you also have to
set the $DISPLAY environment variable even though it isn't
needed for your terminal. That will cause _Alpine_ to think that
it is an xterm and to properly interpret the escape sequences
sent by the mouse.
Note: if this feature is set, the behavior of X terminal
cut-and-paste is also modified. It is sometimes possible to hold
the shift key down while clicking left or middle mouse buttons
for the normal xterm cut/paste operations. There is also an
_Alpine_ command to toggle this mode on or off. The command is
Ctrl-\ (Control-backslash).
_enable-msg-view-addresses_
This feature modifies the behavior of _Alpine_'s "Message Text"
screen. Setting this feature causes _Alpine_ to select possible
email addresses from the displayed text and display them in
boldface for selection.
The first available email address is displayed in inverse. This
is the "selected" address. Pressing _RETURN_ will cause _Alpine_
to enter the message composition screen with the To field filled
in with the selected address.
Use the up and down arrow keys to change which of the addresses
displayed in boldface is the current selection.
This feature is displayed as "Enable Message View Address
Links".
_enable-msg-view-attachments_
This feature modifies the behavior of _Alpine_'s "Message Text"
screen. Setting this feature causes _Alpine_ to present
attachments in boldface. The first available attachment is
displayed in inverse. This is the "selected" attachment.
Pressing _RETURN_ will cause _Alpine_ to display the selected
attachment. Use the up and down arrow keys to change which of
the attachments displayed in boldface is the current selection.
Speaking of arrow keys, the Up and Down Arrows will select the
next and previous attachments if one is available on the screen
for selection. Otherwise, they will simply adjust the viewed
text one line up or down.
Similarly, when selectable items are present in a message, the
Ctrl-F key can be used to select the next item in the message
independent of which portion of the viewed message is currently
displayed. The Ctrl-B key can be used to select the previous
item in the same way.
This feature is displayed as "Enable Message View Attachment
Links".
_enable-msg-view-forced-arrows_
This feature modifies Up and Down arrow key behavior in
_Alpine_'s "Message Text" screen when selectable Attachments,
URL's, or web-hostnames are presented. _Alpine_'s usual behavior
is to move to the next or previous selectable item if currently
displayed or simply to adjust the screen view by one line if the
next selectable line is off the screen.
Setting this feature causes the Up and Down arrow keys to behave
as if no selectable items were present in the message.
Note, the _Ctrl-F_ (next selectable item) and _Ctrl-B_ (previous
selectable item) functionality is unchanged.
This feature is displayed as "Enable Message View Forced
Arrows".
_enable-msg-view-urls_
This feature modifies the behavior of _Alpine_'s "Message Text"
screen. When this feature is set (the default) _Alpine_ will
select possible URLs from the displayed text and display them in
boldface for selection.
The first available URL is displayed in inverse. This is the
"selected" URL. Pressing _RETURN_ will cause _Alpine_ to display
the selected URL via either built-in means as with mailto:,
imap:, news:, and nntp:, or via an external application as
defined by the url-viewers variable.
Use the up and down arrow keys to change which of the URLs
displayed in boldface is the current selection.
This feature is displayed as "Enable Message View URL Links".
_enable-msg-view-web-hostnames_
This feature modifies the behavior of _Alpine_'s "Message Text"
screen. When this feature is set (the default) _Alpine_ will
select possible web hostnames from the displayed text and
display them in boldface for selection.
The first available hostname is displayed in inverse. This is
the "selected" hostname. Pressing _RETURN_ will cause _Alpine_
to display the selected hostname via an external application as
defined by the url-viewers variable.
Use the up and down arrow keys to change which of the hostnames
displayed in boldface is the current selection.
This feature is displayed as "Enable Message View Web Hostname
Links".
_enable-multiple-newsrcs_
This feature makes it so _Alpine_ can use multiple newsrcs based
on the news server being connected to, which allows for separate
lists of subscribed-to newsgroups. When this feature is not set,
there is only one list of newsgroups.
Under this feature, the name of a newsrc is based on the news
server. For example, if your newsrc-path is set to ".newsrc",
and the news server you are connecting to is news.example.com,
then the newsrc to be used is .newsrc-news.example.com. Setting
this feature for the first time will allow for the option of
using your old newsrc the next time you read news.
If this feature is set, then the feature
Mult-Newsrc-Hostnames-As-Typed also may affect the name of the
newsrc file that is used.
_enable-newmail-in-xterm-icon_
This feature controls whether or not _Alpine_ will attempt to
announce new mail arrival when it is running in an X terminal
window and that window is iconified. If set, and the $DISPLAY
variable indicates that an X terminal is being used, _Alpine_
will send appropriate escape sequences to the X terminal to
modify the label on _Alpine_'s icon to indicate that new mail
has arrived. _Alpine_ will also modify the _Alpine_ window's
title to indicate new mail. See also
Enable-Newmail-Short-Text-in-Icon.
_enable-newmail-short-text-in-icon_
This feature controls the text to be displayed in an icon in the
event of a new message arrival. Normally, the message will be
the one that is displayed on the screen. This feature shortens
the message to a count of the number of new messages in
brackets. This may be more useful for those who use the window's
title bar in the task bar as a new mail indicator. This feature
is only useful if the Enable-Newmail-in-Xterm-Icon is also set.
Like the Enable-Newmail-in-Xterm-Icon feature, this feature is
only relevant when run in an xterm environment.
_enable-partial-match-lists_
This feature affects the subcommands available when _Sav_ing or
Opening a new folder. If set, the subcommand _^X ListMatches_
will be available. This command allows you to type in a
substring of the folder you are looking for and when you type
_^X_ it will display all folders which contain that substring in
their names. This feature is set by default.
_enable-print-via-y-command_
By default, _Alpine_'s print command is available by pressing
the _%_ key. In older versions of _Pine_, the print command was
accessed by pressing the _Y_ key.
Enabling this feature will cause _Alpine_ to recognize both the
old command, _Y_, and the new _%_ method for invoking printing.
Note, key menu labels are not changed as a result of enabling
this feature.
_enable-reply-indent-string-editing_
This feature affects the Reply command's "Include original
message in Reply?" prompt. When enabled, it causes the "Edit
Indent String" sub-command to appear which allows you to edit
the string _Alpine_ would otherwise use to denote included text
from the message being replied to.
Thus, you can change _Alpine_'s default message quote character
(usually an angle bracket) on a per message basis. So you could
change your quoted message to look, for example, like this:
On Tues, 26 Jan 1999, John Q. Smith wrote:
John: I just wanted to say hello and to congratulate you
John: on a job well done!
The configuration option "reply-indent-string" may be used to
change what appears as the default string to be edited.
NOTE: Edited reply-indent-strings only apply to the message
currently being replied to.
_enable-rules-under-take_
Normally, the Take command takes addresses from a message and
helps you put them into your Address Book. If you use Rules for
Indexcolors, Roles, Filtering, or Scoring; you may find it
useful to be able to Take information from a message's headers
and put it into a new Rule. When this feature is set, you will
be given an extra prompt which gives you the choice to Take into
the Address Book or Take into a rule.
This feature is displayed as "Enable Take Rules".
_enable-search-and-replace_
If set _Alpine_'s composer offers the _R Replace_ command option
inside the _W WhereIs_ command.
_enable-sigdashes_
If set and a _signature-file_ exists, the line consisting of the
three characters "-- " (dash dash space) is included before the
signature. This only happens if the signature doesn't already
contain such a line.
In addition, when you Reply or Followup to a message containing
one of these special lines and choose to include its text,
_Alpine_ will observe the convention of not including text beyond
the special line in your reply.
_enable-suspend_
Setting this feature will allow you to type _^Z_ and temporarily
suspend _Alpine_. Not available on _PC-Alpine_.
_enable-tab-completion_
This feature enables the _TAB_ key when at a prompt for a
filename. In this case, _TAB_ will cause the partial name
already entered to be automatically completed, provided the
partial name is unambiguous. This feature is set by default.
Similarly, this feature also enables TAB completion of address
book nicknames when at a prompt for a nickname, or when typing
in an address field in the composer.
_enable-take-export_
Normally, the Take command takes addresses from a message and
helps you put them into your Address Book. When this feature is
set, you will be given an extra prompt which gives you the
choice to Take addresses into a file instead of your Address
Book. Only the user@domain_name part of the address is put in
the file.
_enable-tray-icon_
_PC-Alpine_ only. This option restores a behavior of previous
versions of PC-Alpine. These versions, when started, installed a
PC-Alpine icon in the notification tray of Window's Taskbar. The
primary use of this icon was to indicate new mail arrival by
turning red (while the Taskbar icon remained green).
Additionally, the icon now changes to yellow to signify that a
mail folder has been closed unexpectedly.
Rather than add another icon to the Taskbar, this version of
PC-Alpine will color its Taskbar entry's icon red (as well as
the icon in the Window Title). This feature is only provided for
backwards compatibility.
_enable-unix-pipe-cmd_
This feature enables the _| Pipe_ command that sends the current
message to the specified Unix command for external processing.
This feature is displayed as "Enable Unix Pipe Command".
_enable-verbose-smtp-posting_
This feature controls an aspect of _Alpine_'s message sending.
When enabled, _Alpine_ will send a VERB (i.e., VERBose) command
early in the posting process intended to cause the server SMTP
to provide a more detailed account of the transaction. This
feature is typically only useful to system administrators and
other support personel as an aid in troublshooting problems.
Note, this feature relies on a specific capability of the
system's mail transport agent or configured smtp-server.
_expanded-view-of-addressbooks_
If multiple address books (either personal or global) are
defined, and you wish to have them all expanded implicitly upon
entering the ADDRESS BOOK screen, then set this feature. This
feature will have no effect unless the feature
combined-addrbook-display is also set.
_expanded-view-of-distribution-lists_
If this feature is set, then distribution lists in the address
book screen will always be expanded automatically.
_expanded-view-of-folders_
If multiple folder collections are defined, and you wish to have
them all expanded implicitly upon entering the FOLDER LIST
screen, then set this feature. This feature will have no effect
unless the feature combined-folder-display is also set.
_expose-hidden-config_
The purpose of this feature is to allow you to change
configuration features and variables which are normally hidden.
This is particularly useful if you are using a remote
configuration file, where it is difficult to edit the file
manually, but it may also be used on a local pinerc
configuration file.
If set, most configuration variables and features which are
normally hidden from view will show up in the
Setup/Configuration screen. They will be at the bottom of the
configuration screen. You can find them by searching for the
word "hidden".
Note that this is an advanced feature which should be used with
care. The reason that this part of the configuration is normally
hidden is because there is a significant potential for causing
problems if you change these variables. If something breaks
after a change try changing it back to see if that is what is
causing the problem. There are also some variables which are
normally hidden because they are manipulated through _Alpine_ in
other ways. For example, the "address-book" variable is normally
set using the Setup/AddressBooks screen, so there is little
reason to edit it directly. The "incoming-folders" variable is
normally changed by using the Add, Delete, and Rename commands
in the FOLDER LIST screen, and the "last-time-prune-questioned"
variable is normally used internally by _Alpine_ and not set
directly by the user.
_expunge-only-manually_
Normally, when you close a folder which contains deleted
messages you are asked if you want to expunge those messages
from the folder permanently. If this feature is set, you won't
be asked and the deleted messages will remain in the folder. If
you choose to set this feature you will have to expunge the
messages manually using the eXpunge command, which you can use
while in the MESSAGE INDEX screen. If you do not expunge deleted
messages the size of your folder will continue to increase until
you are out of disk space.
_expunge-without-confirm_
If set, you will not be prompted to confirm your intent before
the expunge takes place. Actually, you will still be prompted
for confirmation if the folder is not the _INBOX_ folder or
another folder in the Incoming Folders collection. See the
_expunge-without-confirm-everywhere_ feature which follows.
This feature is displayed as "Expunge Without Confirming".
_expunge-without-confirm-everywhere_
The regular _expunge-without-confirm_ feature actually only
works for the _INBOX_ folder and for other folders in the
"Incoming Folders" collection. If this feature is set then you
also won't be prompted to confirm expunges for all other
folders.
This feature is displayed as "Expunge Without Confirming
Everywhere".
_fcc-on-bounce_
If set, normal Fcc (File Carbon Copy) processing will be done
for bounced messages, just as if you had composed a message to
the address you are bouncing to. If not set, no Fcc of the
message will be saved.
This feature is displayed as "Include Fcc When Bouncing
Messages".
_fcc-only-without-confirm_
This features controls an aspect of _Alpine_'s composer. The
only time this feature will be used is if you attempt to send
mail which has no recipients but does have an Fcc. Normally,
_Alpine_ will ask if you really mean to copy the message only to
the Fcc. That is, it asks if you really meant to have no
recipients. If this feature is set, you will _not_ be prompted
to confirm your intent to make only a copy of a message with no
recipients.
This feature is closely related to
warn-if-blank-to-and-cc-and-newsgroups. The difference between
this feature and that feature is that this feature considers a
Bcc to be a recipient while that feature will ask for
confirmation even if there is a Bcc when there is no To, Cc, or
Newsgroup. The default values also differ. This feature defaults
to asking the question and you have to turn it off. The
warn-if-blank-to-and-cc-and-newsgroups feature defaults to not
asking unless you turn it on.
This feature is displayed as "Send to Fcc Only Without
Confirming".
_fcc-without-attachments_
This features controls the way FCC's (File Carbon Copies) are
made of the messages you send.
Normally, _Alpine_ saves an exact copy of your message as it was
sent. When this feature is enabled, the "body" of the message
you send (the text you type in the composer) is preserved in the
copy as before, however all attachments are replaced with text
explaining what had been sent rather than the attachments
themselves.
This feature also affects _Alpine_'s "Send ?" confirmation
prompt in that a new "^F Fcc Attchmnts" option becomes available
which allows you to interactively set whether or not attachments
are saved to the Fcc'd copy.
This feature is displayed as "Fcc Does Not Include Attachments".
_force-arrow-cursor_
This feature affects _Alpine_'s MESSAGE INDEX display routine.
If set, the normal inverse-video cursor will be replaced by a
simple "arrow" cursor, which normally occupies the second column
of the index display.
This is the same index cursor you get if you turn on
Assume-Slow-Link, but the index line coloring will still be
present if this feature is turned on and Assume-Slow-Link is
off.
An alternative version of the Arrow cursor is available by
including the ARROW token in the Index-Format option.
It ought to be the case that this feature also affects the
ATTACHMENT INDEX, but that is not implemented.
_hide-nntp-path_
Normally the Path header that _Alpine_ generates when posting to
a newsgroup contains the name of the computer from which the
message is being sent and the user name. Some believe that this
information is used by spammers. If this feature is set, that
information will be replaced with the text
not-for-mail
instead.
It should be noted that many servers being connected to will
still reveal the information that this feature attempts to
protect.
_include-attachments-in-reply_
If set, any MIME attachments that were part of the original
message will automatically be included in a _Reply_.
_include-header-in-reply_
If set, and a message being replied to is included in the
_Reply_, then headers from that message will also be part of the
reply.
_include-text-in-reply_
Normally, _Alpine_ will ask whether you wish to include the
original message in your _Reply_. If this feature is set and the
feature enable-reply-indent-string-editing is _not_ set, then
the original message will be included in the reply
automatically, without prompting.
_incoming-checking-includes-total_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
When incoming folder checking is turned on the default is to
display the number of unseen messages in each folder. More
precisely, it is the number of undeleted unseen messages. Using
this option you may also display the total number of messages in
each folder. Instead of a single number representing the number
of unseen messages you will get two numbers separated by a slash
character. The first is the number of unseen messages and the
second is the total number of messages.
You may also use the recent message count instead of the unseen
message count by turning on the feature
incoming-checking-uses-recent.
_incoming-checking-uses-recent_
This option has no effect unless the feature
enable-incoming-folders-checking is set, which in turn has no
effect unless incoming-folders is set.
When incoming folder checking is turned on the default is to
display the number of unseen messages in each folder. More
precisely, it is the number of undeleted unseen messages. Using
this option you may display the number of recent messages
instead of the number of unseen messages. A message is only
counted as recent if this is the first session to see it, so the
recent count might be less than the unseen count. The difference
between the two would be accounted for by the unseen messages in
the folder which were there previously but have not been looked
at yet.
If you simultaneously run more than one email client at a time
(for example, you run more than one _Alpine_ in parallel) then
turning this feature on can cause some confusion. The confusion
stems from the fact that each message is only considered to be
recent in one session. That means that the counts of new
messages may be different in the two _Alpine_s running side by
side, because each incoming message will only be counted as
recent in one of the two sessions.
You may also display the total number of messages in each folder
by using the incoming-checking-includes-total option.
_ldap-result-to-addrbook-add_
This is only available if _Alpine_ was linked with an LDAP
library when it was compiled. If both the per-directory-server
option use-implicitly-from-composer and this feature are set,
then when an implicit directory lookup is done from the composer
you will automatically be prompted to add the result of the
directory lookup to your address book.
This feature is displayed as "LDAP Result to Addressbook Add".
_maildrops-preserve-state_
This feature affects the way Mail Drops work. Normally, when
mail is moved from a Mail Drop folder to a destination folder,
the state changes that have taken place since the mail was
originally delivered are lost. Any Seen/New, Answered,
Important/Flagged state that has changed will be ignored. All of
the mail will be considered unSeen, unAnswered, and unImportant
after it is moved.
If this feature is set, then the state changes will not be lost.
In any case, messages which are already marked Deleted when the
mail is to be copied from the Mail Drop will be ignored.
_mark-fcc-seen_
This features controls the way FCCs (File Carbon Copies) are
made of the messages you send. Normally, when _Alpine_ saves a
copy of a message you sent as an Fcc, that copy will be marked
as Unseen. When you look at the folder it was saved in the
message will appear to be a New message until you read it. When
this feature is enabled, the message will be marked as having
been Seen.
_mark-for-cc_
This feature affects _Alpine_'s MESSAGE INDEX display. By
default, a '+' is displayed in the first column if the message
is addressed directly to you. When this feature is set and the
message is not addressed to you, then a '-' character is
displayed if the message is instead Cc'd directly to you.
_mult-newsrc-hostnames-as-typed_
This feature will be of little use to most users. It has no
effect unless the feature Enable-Multiple-Newsrcs is set. When
the Enable-Multiple-Newsrcs feature is set then the setting of
this feature may have an effect on the names of the newsrc files
used. Normally, the name of the news server will be
canonicalized before it is used in the newsrc file name. For
example, if you type the news server name
servername
it is likely that the canonical name will be something like
servername.example.com
Or it may be the case that
servername.example.com
is really an alias (a DNS CNAME) for
othername.example.com
If this feature is not set, then the canonicalized names will be
used. If this feature is set, then the name you typed in (or put
in your configuration) will be used.
This feature is displayed as "Multiple Newsrc Hostnames as
Typed".
_news-approximates-new-status_
This feature causes certain messages to be marked as _New_ in
the MESSAGE INDEX of newsgroups. This feature is set by default.
When opening a newsgroup, _Alpine_ will consult your _newsrc_
file and determine the last message you have previously disposed
of via the _D_ key. If this feature is set, any subsequent
messages will be shown in the Index with an _N_, and the first
of these messages will be highlighted. Although this is only an
approximation of true _New_ or _Unseen_ status, it provides a
useful cue to distinguish more-or-less recent messages from
those you have seen previously, but are not yet ready to mark
deleted.
Background: your _newsrc_ file (used to store message status
information for newsgroups) is only capable of storing a single
flag, and _Alpine_ uses this to record whether or not you are
"done with" a message, as indicated by marking the message as
_Deleted_. Unfortunately, this means that _Alpine_ has no way to
record exactly which messages you have previously seen, so it
normally does not show the _N_ status flag for any messages in a
newsgroup. This feature enables a starting _approximation_ of
seen/unseen status that may be useful.
_news-deletes-across-groups_
This feature controls what _Alpine_ does when you delete a
message in a newsgroup that appears in more than one newsgroup.
Such a message is sometimes termed a "crossposting" in that it
was posted across several newsgroups.
_Alpine_'s default behavior when you delete such a message is to
remove only the copy in the current newsgroup from view when you
use the "Exclude" command or the next time you visit the
newsgroup.
Enabling this feature causes _Alpine_ to remove every occurrence
of the message from all newsgroups it appears in and to which
you are subscribed.
NOTE: As currently implemented, enabling this feature may
increase the time it takes the Expunge command and newsgroup
closing to complete.
_news-offers-catchup-on-close_
This feature controls what _Alpine_ does as it closes a
newsgroup. When set, _Alpine_ will offer to delete all messages
from the newsgroup as you are quitting _Alpine_ or opening a new
folder.
This feature is useful if you typically read all the interesting
messages in a newsgroup each time you open it. This feature
saves you from having to delete each message in a newsgroup as
you read it or from selecting all the messages and doing an
aggregate delete before you move on to the next folder or
newsgroup.
_news-post-without-validation_
This feature controls whether the NNTP server is queried as
newsgroups are entered for posting. Validation over slow links
(e.g. dialup using SLIP or PPP) can cause delays. Set this
feature to eliminate such delays.
_news-read-in-newsrc-order_
This feature controls the order that newsgroups will be
presented. If set, they will be presented in the same order as
they occur in your _newsrc_ file. If not set, the newsgroups
will be presented in alphabetical order.
_next-thread-without-confirm_
This feature controls an aspect of _Alpine_'s Next and Prev
commands in the case where you are using one of the
"separate-index-screen" styles for the configuration option
threading-index-style and currently have the folder sorted by a
Threaded or OrderedSubject sort. When you are Viewing a
particular thread you have a MESSAGE INDEX of only the messages
in that thread. If you press the Next command with the last
message in the thread highlighted you will normally be asked if
you want to "View next thread?", assuming there is a next thread
to view. If this feature is set it will be assumed that you
always want to view the next thread and you won't be asked to
confirm that. Similarly, if the first message of the thread is
highlighted and you press the Prev command, this feature will
prevent the question "View previous thread".
This feature only has an effect in the MESSAGE INDEX screen. If
you then view a particular message from that screen and press
the Next command, you will be sent to the next thread without
being asked, independent of the setting of this feature.
The feature auto-open-next-unread, also has some similar
effects.
This feature is displayed as "Read Next Thread Without
Confirming".
_offer-expunge-of-inbox_
The INBOX is normally treated differently from regular folders
in several ways. One of the differences is that the normal
"close" sequence of events is deferred until _Alpine_ is exited,
instead of happening when you leave the INBOX to view another
folder. The "close" sequence normally includes the Expunging of
deleted messages (either automatically or after a prompt,
controlled by the features Expunge-Without-Confirm,
Expunge-Without-Confirm-Everywhere, and Expunge-Only-Manually),
and the handling of the Read-Message-Folder.
If this feature is set the "close" sequence handling will take
place every time you leave the INBOX. The INBOX will still be
kept open, but the offer to Expunge and the archiving to the
Read-Message-Folder will take place each time you leave the
INBOX instead of only once at the end of the session.
_offer-expunge-of-stayopen-folders_
This feature is related to the option Stay-Open-Folders. Stay
Open folders are treated differently from regular folders in
several ways. One of the differences is that the normal "close"
sequence of events is deferred until _Alpine_ is exited, instead
of happening when you leave the folder to view another folder.
The "close" sequence normally includes the Expunging of deleted
messages (either automatically or after a prompt, controlled by
the features Expunge-Without-Confirm,
Expunge-Without-Confirm-Everywhere, and Expunge-Only-Manually),
and the handling of Incoming-Archive-Folders.
If this feature is set the "close" sequence handling will take
place when you leave the Stay Open folder. The folder will still
be kept open, but the offer to Expunge and the archiving will
take place each time you leave the folder instead of only once
at the end of the session. This feature does not affect the
INBOX, which will still only be processed when you exit
_Alpine_.
_pass-c1-control-characters-as-is_
It is probably not useful to set this option. This is a legacy
option left behind "just in case". Multi-byte characters which
have an octet which has the same value as a control character
are permitted through whether or not this option is turned on.
If the feature pass-control-characters-as-is is set, then this
feature has no effect. However, if you wish to filter out
regular control characters but pass the so-called C1 control
characters (0x80 <= char < 0xA0) through unchanged, then you may
leave pass-control-characters-as-is unset and set this feature.
_pass-control-characters-as-is_
It is probably not useful to set this option. This is a legacy
option left behind "just in case". Multi-byte characters which
have an octet which has the same value as a control character
are permitted through whether or not this option is turned on.
If set, all characters in a message will be sent to the screen.
Normally, control characters are automatically suppressed in
order to avoid inadvertently changing terminal setup parameters.
Control characters are usually displayed as two character
sequences like
^C
for Control-C,
^[
for ESCAPE,
^?
for DELETE, and
~E
for the character with value 133 (0x85). (The DEL character is
displayed as ^?, regular control characters are displayed as the
character ^ followed by the character obtained by adding the
five low-order bits of the character to 0x40, and the C1 control
characters 0x80 - 0x9F are displayed as the character ~ followed
by the character obtained by adding the five low-order bits of
the character to 0x40.) Sometimes, in cases where changing a
single control character into a two-character sequence would
confuse _Alpine_'s display routines, a question mark is
substituted for the control character.
If you wish to filter out regular control characters but pass
the so-called C1 control characters (0x80 <= char < 0xA0)
through unchanged, then you may leave this feature unset and set
the feature pass-c1-control-characters-as-is instead.
_predict-nntp-server_
This feature allows _Alpine_ to assume that the open NNTP server
at the time of composition is the NNTP server to which the
message should be posted. This is especially recommended when
there are multiple News collections. If this feature is not set,
_Alpine_ will try to post to the first server in the nntp-server
variable. Setting this feature also negates the need to add News
collection servers to the nntp-server variable.
This feature can be especially handy when used in conjunction
with enable-multiple-newsrcs.
This option is displayed as "NNTP Server (for news)".
_prefer-plain-text_
A message being viewed may contain alternate versions of the
same content. Those alternate versions are ordered by the
sending software such that the first alternative is the least
preferred and the last alternative is the most preferred.
_Alpine_ will normally display the most-preferred version that it
knows how to display. This is most often encountered where the
two alternate versions are a plain text version and an HTML
version, with the HTML version listed last as the most
preferred.
If this option is set, then any plain text version will be
preferred to all other versions.
_preopen-stayopen-folders_
This feature is related to the option Stay-Open-Folders.
Normally, Stay Open folders are only opened on demand, when the
user asks to open them. From then on they are kept open for the
duration of the session. However, if this feature is set, then
the Stay Open folders will all be opened at startup, at the same
time that the INBOX is opened.
_preserve-start-stop-characters_
This feature controls how special control key characters,
typically _^S_ and _^Q_, are interpreted when input to _Alpine_.
These characters are known as the "start" and "stop" characters
and are sometimes used in communications paths to control data
flow between devices that operate at different speeds.
By default, _Alpine_ turns the system's handling of these
special characters off except during printing. However, if you
see _Alpine_ reporting input errors such as:
[ Command "^Q" not defined for this screen. ]
and, at the same time, see your display become garbled, then it
is likely that setting this option will solve the problem. Be
aware, though, that enabling this feature will also cause
_Alpine_ to ostensibly "hang" whenever the _Ctrl-S_ key
combination is entered as the system is now interpreting such
input as a "stop output" command. To "start output" again,
simply type _Ctrl-Q_.
This feature is displayed as "Preserve Start/Stop Characters".
_print-formfeed-between-messages_
Setting this feature causes a formfeed to be printed between
messages when printing multiple messages with the _Apply Print_
command.
_print-includes-from-line_
If this feature is set, then the Unix mail style From line is
included at the start of each message that is printed. This line
looks something like the following, with the address replaced by
the address from the From line of the message being printed:
From user@domain.somewhere.com Mon May 13 14:11:06 1996
_print-index-enabled_
This feature controls the behavior of the _Print_ command when
in the "Folder Index" screen. If set, the _Print_ command will
give you a prompt asking if you wish to print the message index,
or the currently highlighted message. If not set, the message
will be printed.
_print-offers-custom-cmd-prompt_
When this feature is set, the _Print_ command will have an
additional subcommand called _C CustomPrint_. If selected, you
will have the opportunity to enter any system print command,
instead of being restricted to using those that have been
previously configured in the _Setup/Printer_ screen.
This feature is displayed as "Print Offers Custom Command
Prompt".
_prune-uses-yyyy-mm_
By default, _Alpine_ asks monthly whether or not you would like
to rename some folders to a new name containing the date. It
also asks whether or not you would like to delete some old
folders. See the pruning-rule option for an explanation.
By default, the name used when renaming a folder looks like
<foldername>-<month>-<year>
For example, the first time you run _Alpine_ in May of 2004, the
folder "sent-mail" might be renamed to
sent-mail-apr-2004
If this feature is set, the name used will be of the form
<foldername>-<yyyy>-<mm>
where "yyyy" is the year and "mm" is the two-digit month (01,
02, ..., 12). For the April, 2004 example above, it would
instead be
sent-mail-2004-04
because April is the 4th month of the year. A reason you might
want to set this feature is so that the folders will sort in
chronological order.
_publiccerts-in-keychain_
Mac OS X _Alpine_ only.
If this feature is set the Mac OS X default keychain will be
used as the place to store public certificates instead of a
smime-public-cert-directory or a smime-public-cert-container.
This feature is displayed as "S/MIME -- Public Certs in MacOS
Keychain".
_quell-attachment-extension-warn_
This feature suppresses the extra warning you can get when
trying to view an attachment for which there is no mime-type
match. Turning on this feature will just run the program
according to extension instead of first warning the user that it
will run according to the file's extension.
This feature can be used along side
quell-attachment-extra-prompt to preserve the behavior exhibited
in _Pine_ versions prior to _Pine_ 4.50.
This feature is displayed as "Suppress Attachment Extension
Warning".
_quell-attachment-extra-prompt_
By default, when you attempt to view an attachment externally
from the "Attachment View" screen, you are asked if you really
want to view the selected attachment.
If this feature is set, you will _not_ be prompted to confirm
your selection. Prior to _Pine_ 4.50, the default behavior was
to not prompt. This feature was added for those wanting to
preserve that behavior.
This feature is displayed as "Suppress Attachment Extra Prompt".
_quell-berkeley-format-timezone_
POSIX mandates a timezone in UNIX mailbox format folder
delimiters (the line which begins with From ). Some versions of
Berkeley mail have trouble with this, and don't recognize the
line as a message delimiter. If this feature is set, the
timezone will be left off the delimiter line.
This feature is displayed as "Suppress Berkeley Format
Timezone".
_quell-charset-warning_
By default, if the message you are viewing contains characters
that are not representable in your display-character-set then
_Alpine_ will add a warning to the start of the displayed text.
If this option is set, then that editorial message will be
suppressed.
Setting this feature also suppresses the comment about the
character set in header lines. For example, when viewing a
message you might see
From: "[ISO-8859-2] Name" <address>
in the From header if your Character-Set is something other than
ISO-8859-2. If you set this feature, the comment about the
character set will no longer be there.
This feature is displayed as "Suppress Character Set Warning".
_quell-content-id_
This feature changes the behavior of _Alpine_ when sending
messages. It is intended to work around a bug in Microsoft's
Outlook XP mail user agent. As of this writing, Microsoft has
acknowledged the bug but has not added it to the Knowledge Base.
We have been told that there will be a post-SP1 hotfix for
Outlook XP. This particular bug has bug fix number
OfficeQFE:4781. The nature of the bug is that messages with
attachments which contain a Content-ID header (which standard
_Alpine_ attachments do) do not show the attachment indicator (a
paperclip) when viewed with Outlook XP. So the user has no
indication that the message contains an attachment.
If this feature is set then _Alpine_ will remove most Content-ID
headers before sending a message. If an attachment is of type
MESSAGE, then the existing Content-ID headers inside the message
will be left intact. This would only happen with _Alpine_ if a
message was forwarded as an attachment or if a message with a
message attached was forwarded. Similarly if an attachment of
type MULTIPART/ALTERNATIVE is forwarded, the Content-ID headers
of the alternative parts will not be removed.
Because the Content-ID header is a standard part of MIME it is
possible that setting this feature will break something. For
example, if an attachment has a Content-ID header which is
necessary for the correct functioning of that attachment, it is
possible that _Alpine_ may remove that header when the
attachment is forwarded. However, it seems fairly safe at this
time.
This feature is displayed as "Suppress Content-ID".
_quell-dead-letter-on-cancel_
This feature affects _Alpine_'s behavior when you cancel a
message being composed. _Alpine_'s usual behavior is to write
the canceled message to a file named dead.letter in your home
directory (under UNIX; DEADLETR under WINDOWS/DOS) overwriting
any previous message. Under some conditions (some routine), this
can introduce a noticeable delay.
Setting this feature will cause _Alpine_ NOT to write canceled
compositions into the file called dead.letter.
This feature affects the newer option Dead-Letter-Files, which
specifies the number of dead letter files to keep around. If
this feature is set, then the Dead-Letter-Files option has no
effect.
This feature is displayed as "Do Not Save to Deadletter on
Cancel".
_quell-empty-directories_
This feature causes _Alpine_ to remove from the display any
directories that do not contain at least one file or directory.
This can be useful to prevent overly cluttered folder lists when
a collection is stored on a server that treats all names as both
a folder and a directory.
Note, enabling this feature can cause surprising behavior! For
example, you can still use Add to create a directory, but unless
you immediately enter that directory and create a folder, that
newly created directory may not be displayed next time you enter
the folder list.
This feature is displayed as "Hide Empty Directories".
_quell-extra-post-prompt_
This feature causes _Alpine_ to skip the extra question about
posting a message which may go to thousands of readers when you
are about to post to a newsgroup.
This feature is displayed as "Suppress Extra Posting Prompt".
_quell-filtering-done-message_
This feature causes _Alpine_ to suppress the "filtering done"
message.
This feature is displayed as "Suppress Filtering Done Message".
_quell-filtering-messages_
This feature causes _Alpine_ to suppress the messages about
moving filtered messages and setting flags in messages, due to
Filter Rules.
This feature is displayed as "Suppress Filtering Messages".
_quell-flowed-text_
_Alpine_ generates flowed text where possible. The method for
generating flowed text is defined by RFC 3676, the benefit of
doing so is to send message text that can properly be viewed
both on normal width displays and on displays with smaller or
larger than normal screen widths. With flowed text, a space at
the end of a line tells the receiving mail client that the
following line belongs to the same paragraph. Quoted text will
also be affected, with only the innermost level of ">" quoting
being followed by a space. However, if you have changed the
"Reply-Indent-String" so that it is not equal to the default
value of "> ", then quoted text will not be flowed. For this
reason, we recommend that you leave your "Reply-Indent-String"
set to the default.
This feature turns off the generation of flowed text, as it
might be desired to more tightly control how a message is
displayed on the receiving end.
If this feature is _not_ set, you can control on a message by
message basis whether or not flowed text is generated. You do
this by typing ^V at the Send confirmation prompt that you get
after typing ^X to send a message. ^V is a toggle which turns
flowing off and back on if typed again. If for some reason
flowing cannot be done on a particular message, then the ^V
command will not be available. This would be the case, for
example, if this feature was set, or if your
"Reply-Indent-String" was set to a non-default value. If the
feature Send-Without-Confirm is set, then the opportunity to
control on a message by message basis whether or not flowed text
is generated is lost.
When this feature is not set and you have typed ^V to turn off
flowing, the Send confirmation prompt will change to look like
Send message (not flowed)?
Strip-Whitespace-Before-Send will also turn off the sending of
flowed text messages, but it differs in that it also trims all
trailing white space from a message before sending it.
If alternate editors are used extensively, be aware that a
message will still be sent flowed if this feature is unset. In
most cases this will be fine, but if the editor has a "flowed
text" mode, it would be best to use that.
This feature is displayed as "Do Not Send Flowed Text".
_quell-folder-internal-msg_
This feature determines whether or not _Alpine_ will create
"pseudo messages" in folders that are in standard Unix or MMDF
format.
_Alpine_ will normally create these pseudo messages when they
are not already present in a standard Unix or MMDF folder. Their
purpose is to record certain mailbox state data needed for
correct IMAP and POP server operation, and also for _Alpine_ to
be able to mark messages as Answered when the Reply has been
postponed.
Sites which do not use IMAP/POP for remote mail access, and
which need to support mail tools that are adversely affected by
the presence of the pseudo-messages (e.g. some mail notification
tools) may enable this feature to tell _Alpine_ not to create
them. Note that _Alpine_'s "Answered" flag capability will be
adversely affected if this is done.
Note too that, even if this feature is enabled, _Alpine_ will
not remove pseudo-messages when it encounters them (e.g. those
created by UW's imapd or ipopd servers.) This feature has no
effect on folders that are not in standard Unix or MMDF format,
as pseudo-messages are not needed in the other formats to record
mailbox state information.
This feature is displayed as "Prevent Folder Internal Message".
_quell-full-header-auto-reset_
The HdrMode Command normally resets to the default state when
switching to a new message. For example, if you've used the "H"
command to turn on Full Headers for a message you are viewing,
and then you type the Next command to look at the next message,
the full headers will no longer be shown. Setting this feature
disables that reset. Instead, the Header Mode remains the same
from message to message.
The presence or absence of the HdrMode command is determined by
the "Enable-Full-Header-Cmd" Feature-List option.
This feature is displayed as "Suppress Full Header Auto Reset".
_quell-imap-envelope-update_
In the MESSAGE INDEX screen, if the open folder is being
accessed using IMAP, _Alpine_ normally tries to paint the index
lines on the screen as soon as the information arrives from the
IMAP server. This means that the index information makes it onto
the screen more quickly than it otherwise would. This sometimes
results in behavior that bothers some users. For example, when
paging to a new page of the index, it may be possible for the
lines to be painted on the screen in a random order, rather than
from top to bottom.
Setting this feature causes _Alpine_ to wait for all of the
information to be gathered before it paints the index screen.
Once it collects all of the information, the screen will be
painted quickly from top to bottom.
This feature is displayed as "Suppress IMAP Envelope Update".
_quell-lock-failure-warnings_
This feature affects _Alpine_'s behavior when it encounters a
problem acquiring a mail folder lock. Typically, a secondary
file associated with the mail folder being opened is created as
part of the locking process. On some systems, such file creation
has been administratively precluded by the system configuration.
_Alpine_ issues a warning when such failures occur, which can
become bothersome if the system is configured to disallow such
actions. Setting this feature causes _Alpine_ to remain silent
when this part of lock creation fails.
WARNING: systems that have been configured in a way that
precludes locking introduce some risk of mail folder corruption
when more than one program attempts to modify the mail folder.
This is most likely to occur to one's _INBOX_ or other "Incoming
Message Folder".
This feature is displayed as "Suppress Lock Failure Warnings".
_Quell-Mailchecks-Composing-Except-Inbox_
This option is closely related to the Mail-Check-Interval
option, the Mail-Check-Interval-Noncurrent option, and
Quell-Mailchecks-Composing-Inbox.
If this option is set, then the normal new-mail checking which
happens while you are composing will not happen for folders
other than your INBOX (which depends on the setting of
"Quell-Mailchecks-Composing-Inbox").
You might want to set this option if you are experiencing delays
while composing which you think might be related to the speed of
the new-mail checks.
Even with this option turned on, an occasional new-mail check
may be done in order to keep the server from killing the
connection to the folder. For example, IMAP servers may remove a
connection to a folder if there has been no activity on the
connection for 30 minutes or more. Instead of letting that
happen, _Alpine_ will check for new mail before the 30 minutes
is up even though you have turned on this feature to quell those
checks.
Besides new-mail checks, checkpoint operations on the folders
will also be quelled when you set this option. The purpose of
checkpointing is to write the changes to a folder out to disk
periodically in order to avoid losing those changes when system
or software problems occur. New-mail checking and checkpointing
while you are not composing are not affected by this option.
This feature is displayed as "Prevent Mailchecks While Composing
Except for INBOX".
_Quell-Mailchecks-Composing-Inbox_
This option is closely related to the Mail-Check-Interval
option, the Mail-Check-Interval-Noncurrent option, and
Quell-Mailchecks-Composing-Except-Inbox.
If this option is set, then the normal new-mail checking which
happens while you are composing will not happen for your INBOX.
Checking of other folders is controlled in a similar way with
the "Quell-Mailchecks-Composing-Except-Inbox" option.
You might want to set this option if you are experiencing delays
while composing which you think might be related to the speed of
the new-mail checks.
Even with this option turned on, an occasional new-mail check
may be done in order to keep the server from killing the
connection to the folder. For example, IMAP servers may remove a
connection to a folder if there has been no activity on the
connection for 30 minutes or more. Instead of letting that
happen, _Alpine_ will check for new mail before the 30 minutes
is up even though you have turned on this feature to quell those
checks.
Besides new-mail checks, checkpoint operations on the INBOX will
also be quelled when you set this option. The purpose of
checkpointing is to write the changes to a folder out to disk
periodically in order to avoid losing those changes when system
or software problems occur. New-mail checking and checkpointing
while you are not composing are not affected by this option.
This feature is displayed as "Prevent Mailchecks While Composing
for INBOX".
_quell-maildomain-warning_
When your configuration is set up so that your domain name
contains no dots, it is usually a configuration error. By
default, _Alpine_ will warn you about this when you start it up.
You will see a warning message that looks like
Incomplete maildomain "<domain>".
If this feature is set, the warning is turned off. This feature
is displayed as "Suppress Maildomain Warning".
_quell-news-envelope-update_
In the MESSAGE INDEX screen, if the open folder is being
accessed using NNTP (News), _Alpine_ normally tries to paint the
index lines on the screen as soon as the information arrives
from the NNTP server. This means that the index information
makes it onto the screen more quickly than it otherwise would.
This sometimes results in behavior that bothers some users. For
example, when paging to a new page of the index, it may be
possible for the lines to be painted on the screen in a random
order, rather than from top to bottom.
Setting this feature causes _Alpine_ to wait for all of the
information to be gathered before it paints the index screen.
Once it collects all of the information, the screen will be
painted quickly from top to bottom.
This feature is displayed as "Suppress News Envelope Update".
_quell-partial-fetching_
Partial fetching is a feature of the IMAP protocol. By default,
_Alpine_ will use partial fetching when copying the contents of a
message or attachment from the IMAP server to _Alpine_. This
means that the fetch will be done in many small chunks instead
of one big chunk. The main benefit of this approach is that the
fetch becomes interruptible. That is, the user can type _^C_ to
stop the fetch early. In some cases partial fetching may cause a
performance problem so that the fetching of data takes
significantly longer when partial fetching is used. Turning on
this feature will turn off partial fetching.
This feature is displayed as "Prevent Partial Fetching".
_quell-personal-name-prompt_
_PC-Alpine_ only. This feature quells the prompting for a
personal-name. This prompt normally happens before composing a
message, and only happens when there is no personal name already
set.
_quell-server-after-link-in-html_
By default, links in HTML text are displayed with the host the
link references appended, within square brackets, to the link
text. _Alpine_ does this to help indicate where a link will take
you, particularly when the link text might suggest a different
destination.
Setting this feature will prevent the server name from being
appended to the displayed text.
This feature is displayed as "Suppress Server After Link in
HTML".
_quell-ssl-largeblocks_
This feature (_PC-Alpine_ only) changes the behavior of fetching
messages and attachments so that the message data is fetched in
chunks no larger than 12K bytes. This works around a bug in
Microsoft's SSL/TLS support. Some versions of Microsoft SSL are
not able to read full-sized (16K) SSL/TLS packets. Some servers
will send such packets and this will cause _PC-Alpine_ to crash
with the error
incomplete SecBuffer exceeds maximum buffer size
Microsoft is aware of the problem and has developed a hotfix for
it, but as of this writing the hotfix has not yet been added to
the Knowledge Base.
This feature is displayed as "Prevent SSL Largeblocks".
_quell-status-message-beeping_
If set status messages will never emit a beep.
This feature is displayed as "Suppress Status Message Beeping".
_quell-timezone-comment-when-sending_
Normally, when _Alpine_ generates a Date header for outgoing
mail, it will try to include the symbolic timezone at the end of
the header inside parentheses. The symbolic timezone is often
three characters long, but on some operating systems, it may be
longer. Apparently there are some SMTP servers in the world
which will reject an incoming message if it has a Date header
longer than about 80 characters. If this feature is set, the
symbolic timezone normally generated by _Alpine_ will not be
included. You probably don't need to worry about this feature
unless you run into the problem described above.
This feature is displayed as "Suppress Timezone Comment When
Sending".
_quell-user-id-prompt_
_PC-Alpine_ only. This feature quells the prompting for a
user-id if the information can be obtained from the login name
used to open the INBOX. Normally, this prompt happens before
composing a message, and only happens when there is no user-id
already set in the configuration.
With this feature set, composing a message is only possible
after establishing a connection to the INBOX.
_quell-user-lookup-in-passwd-file_
This feature controls an aspect of _Alpine_'s Composer, and if
needed, will usually be set by the system manager in _Alpine_'s
system-wide configuration file. Specifically, if this feature is
set, _Alpine_ will not attempt to look in the system password
file to find a Full Name for the entered address.
Normally, names you enter into address fields (e.g. To: or Cc:)
are checked against your address book(s) to see if they match an
address book nickname. Failing that, (in Unix _Alpine_) the name
is then checked against the Unix password file. If the entered
name matches a username in the system password file, _Alpine_
extracts the corresponding Full Name information for that
individual, and adds that to the address being entered.
However, password file matching can have surprising (incorrect)
results if other users of the system do not receive mail at the
domain you are using. That is, if either the user-domain or
use-only-domain-name option is set such that the administrative
domain of other users on the system isn't accurately reflected,
_Alpine_ should be told that a password file match is
coincidental, and Full Name info will be incorrect. For example,
a personal name from the password file could get falsely paired
with the entered name as it is turned into an address in the
configured domain.
If you are seeing this behavior, enabling this feature will
prevent Unix _Alpine_ from looking up names in the password file
to find the Full Name for incomplete addresses you enter.
This feature is displayed as "Prevent User Lookup in Password
File".
_quit-without-confirm_
This feature controls whether or not _Alpine_ will ask for
confirmation when a _Quit_ command is received.
This feature is displayed as "Quit Without Confirming".
_quote-replace-nonflowed_
This feature, which is only active when Quote-Replace-String is
also set, enables quote-replacement on non-flowed messages. It
is off by default because a non-flowed message is more dependent
on its format, and thus quote-replacement may cause
less-than-pleasing results. Setting this feature will cause
quote-replacement similar to that of flowed messages, but with
the added possibility of long lines being wrapped into new lines
if the Quote-Replacement-String is longer than the string it is
replacing, which is "> ".
_reply-always-uses-reply-to_
If set, _Alpine_ will not prompt when a message being replied to
contains a _Reply-To:_ header value, but will simply use its
value (as opposed to using the _From:_ field's value).
_return-to-inbox-without-confirm_
Normally, when you use the TAB command and there are no more
folders or newsgroups to visit, you are asked if you want to
return to the INBOX. If this feature is set you will not be
asked. It will be assumed that you do want to return to the
INBOX.
This feature is displayed as "Return to INBOX Without
Confirming".
_save-aggregates-copy-sequence_
This feature will optimize an aggregate copy operation, if
possible, by issuing a single IMAP _COPY_ command with a list of
the messages to be copied. This feature is set by default. This
may reduce network traffic and elapsed time for the Save.
_However, many IMAP servers (including the UW IMAP server) do not
preserve the order of messages when this optimization is
applied._ If this feature is not set, _Alpine_ will copy each
message individually and the order of the messages will be
preserved.
This feature is displayed as "Save Combines Copies (may be out
of order)".
_save-partial-msg-without-confirm_
This feature controls an aspect of _Alpine_'s Save command. By
default, when you Save a message that has some deleted parts,
you will be asked to confirm that you want to Save with a prompt
that looks like:
Saved copy will NOT include entire message! Continue?
If this feature is set, you will not be asked.
This feature is displayed as "Save Partial Message Without
Confirming".
_save-will-advance_
If set, _Save_ will (in addition to copying the current message
to the designated folder) also advance to the next message.
_save-will-not-delete_
If set, _Save_ will not mark the message Deleted (its default
behavior) after it has been copied to the designated folder.
_save-will-quote-leading-froms_
This feature controls an aspect of the _Save_ command (and also
the way outgoing messages are saved to an FCC folder). If set,
_Alpine_ will add a leading > character in front of message lines
beginning with "From" when they are saved to another folder,
including lines syntactically distinguishable from the type of
message separator line commonly used on Unix systems.
The default behavior is that a > will be prepended only to lines
beginning with "From " that might otherwise be confused with a
message separator line on Unix systems. If _Alpine_ is the only
mail program you use, this default is reasonable. If another
program you use has trouble displaying a message with an
unquoted From saved by _Alpine_, you should enable this feature.
This feature only applies to the common Unix mailbox format that
uses message separator lines beginning with "From ". If _Alpine_
has been configured to use a different mailbox format (possibly
incompatible with other mail programs), then this issue does not
arise, and the feature is irrelevant.
_scramble-message-id_
Normally the Message-ID header that _Alpine_ generates when
sending a message contains the name of the computer from which
the message is being sent. Some believe that this hostname could
be used by spammers or could be used by others for nefarious
purposes. If this feature is set, that name will be transformed
with a simple Rot13 transformation. The result will still have
the correct syntax for a Message-ID but the part of the
MessageID that is often a domain name will not be an actual
domain name because the letters will be scrambled.
It is possible (but unlikely?) that some spam detection software
will use that as a reason to reject the mail as spam. It has
also been reported that some spam detection software uses the
fact that there are no dots after the "@" as a reason to reject
messages. If your _PC-Alpine_ Message-ID is using a name without
a dot that is because that is what Windows thinks is your "Full
computer name". The method used to set this varies from one type
of Windows to another but check under Settings -> Control Panel
-> System and look for Network Identification or Computer Name
or something similar. How to set it is beyond the scope of
_Alpine_.
This feature is displayed as "Scramble the Message-ID When
Sending".
_select-without-confirm_
This feature controls an aspect of _Alpine_'s _Save_, _Export_,
and _Goto_ commands. These commands all take text input to
specify the name of the folder or file to be used, but allow you
to press _^T_ for a list of possible names. If set, the selected
name will be used immediately, without further opportunity to
confirm or edit the name.
This feature is displayed as "Select Ctrl-T Foldername Without
Confirming".
_send-without-confirm_
By default, when you send or post a message you will be asked to
confirm with a question that looks something like:
Send message?
If this feature is set, you will _not_ be prompted to confirm
your intent to send and your message will be sent.
If this feature is set it disables some possibilities and
renders some other features meaningless. You will not be able to
use Sending Filters, Verbose sending mode, Background Sending,
Delivery Status Notifications, or ^V to turn off the generation
of flowed text for this message. These options are normally
available as suboptions in the Send prompt, but with no Send
prompt the options are gone.
A somewhat related feature is quell-extra-post-prompt. which may
be used to eliminate the extra confirmation question when
posting to a newsgroup.
This feature is displayed as "Send Without Confirming".
_separate-folder-and-directory-display_
This feature affects folder collections wherein a folder and
directory can have the same name. By default, _Alpine_ displays
them only once, denoting that it is both a folder and directory
by appending the folder name with the hierarchy character
enclosed in square brackets.
Enabling this feature will cause _Alpine_ to display such names
separately marking the name representing a directory with a
trailing hierarchy delimiter (typically the slash, "/",
character).
The feature also alters the command set slightly. By default,
the right-arrow descends into the directory, while hitting the
Return key will cause the folder by that name to be opened.
With this feature set, the Return key will open the highlighted
folder, or enter the highlighted directory.
_show-cursor_
If set, the system cursor will move to convenient locations in
the displays. For example, to the beginning of the status field
of the highlighted index line, or to the highlighted word after
a successful _WhereIs_ command. It is intended to draw your
attention to the _interesting_ spot on the screen.
_show-plain-text-internally_
This feature modifies the method _Alpine_ uses to display
Text/Plain MIME attachments from the Attachment Index screen.
Normally, the "View" command searches for any externally defined
(usually via the Mailcap file) viewer, and displays the selected
text within that viewer.
Enabling this feature causes _Alpine_ to ignore any external
viewer settings and always display text with _Alpine_'s internal
viewer.
_show-selected-in-boldface_
This feature controls an aspect of _Alpine_'s aggregate
operation commands; in particular, the _Select_ and _WhereIs_
commands. _Select_ and _WhereIs_ (with the _^X_ subcommand) will
search the current folder for messages meeting a specified
criteria, and _tag_ the resulting messages with an _X_ in the
first column of the applicable lines in the "Folder Index". If
this feature is set, instead of using the _X_ to denote a
selected message, _Alpine_ will attempt to display those index
lines in boldface. Whether this is preferable to the _X_ will
depend on personal taste and the type of terminal being used.
_show-sort_
If this feature is set and there is sufficient space on the
screen, a short indication of the current sort order will be
added in the titlebar (the top line on the screen), before the
name of the folder. For example, with the default Arrival sort
in effect, the display would have the characters
[A]
added between the title of the screen and the folder name. The
letters are the same as the letters you may type to manually
sort a folder with the SortIndex command ($). The letters in the
table below are the ones that may show up in the titlebar line.
A _A_rrival
S _S_ubject
F _F_rom
T _T_o
C _C_c
D _D_ate
Z si_Z_e
O _O_rderedsubject
E scor_E_
H t_H_read
If the sort order is Reversed, the letter above will be preceded
by the letter "R", for example
[RS]
means that a Reverse Subject sort is in effect. For the case
where the sort is in Reverse Arrival order, the "A" is left out,
and just an "R" is shown.
[R]
This feature is displayed as "Show Sort in Titlebar".
_signature-at-bottom_
If this feature is set, and a message being _Repl_ied to is
being included in the reply, then the contents of the signature
file (if any) will be inserted after the included message. This
feature does not affect the results of a _Forward_ command.
_single-column-folder-list_
If set, the "Folder List" screen will list one folder per line
instead of several per line.
_slash-collapses-entire-thread_
Normally, the Collapse/Expand Thread command Collapses or
Expands the subthread which starts at the currently highlighted
message, if any. If this feature is set, then the slash command
Collapses or Expands the _entire_ current thread instead of just
the subthread.
_smime-dont-do-smime_
UNIX _Alpine_ only.
Setting this feature turns off all of _Alpine_'s S/MIME support.
You might want to set this if you are having trouble due to the
S/MIME support.
+ General S/MIME Overview
This feature is displayed as "S/MIME -- Turn off S/MIME".
_smime-encrypt-by-default_
UNIX _Alpine_ only.
This feature only has an effect if your version of _Alpine_
includes support for S/MIME. It affects _Alpine_'s behavior when
you send a message. If this option is set, the "Encrypt" option
will default to ON when sending messages.
Only the default value is affected. In any case, you may still
toggle the Encrypt option on or off before sending with the "E
Encrypt" command (provided you have a the public digital ID for
the recipient).
+ General S/MIME Overview
This feature is displayed as "S/MIME -- Encrypt by Default".
_smime-remember-passphrase_
UNIX _Alpine_ only.
This feature only has an effect if your version of _Alpine_
includes support for S/MIME. If this option is set, you will
only have to enter your passphrase for your private key once
during an _Alpine_ session.
+ General S/MIME Overview
This feature is displayed as "S/MIME -- Remember S/MIME
Passphrase".
_smime-sign-by-default_
UNIX _Alpine_ only.
This feature only has an effect if your version of _Alpine_
includes support for S/MIME. It affects _Alpine_'s behavior when
you send a message. If this option is set, the "Sign" option
will default to ON when sending messages.
Only the default value is affected. In any case, you may still
toggle the Signing option on or off before sending with the "G
Sign" command (provided you have a personal digital ID
certificate).
+ General S/MIME Overview
This feature is displayed as "S/MIME -- Sign by Default".
_sort-default-fcc-alpha_
This feature controls an aspect of _Alpine_'s FOLDER LIST
screen. If set, the default FCC folder will be sorted
alphabetically with the other folders instead of appearing right
after the INBOX.
This feature is displayed as "Sort Default Fcc Folder
Alphabetically".
_sort-default-save-alpha_
This feature controls an aspect of _Alpine_'s FOLDER LIST
screen. If set, the default save folder will be sorted
alphabetically with the other folders instead of appearing right
after the INBOX (and default FCC folder).
This feature is displayed as "Sort Default Save Folder
Alphabetically".
_spell-check-before-sending_
When this feature is set, every composed message will be
spell-checked before being sent.
_store-window-position-in-config_
Normally, _PC-Alpine_ will store its window size and position in
the Windows Registry. This is convenient if you want to use the
same remote configuration from more than one PC. If you use
multiple configuration files to start _PC-Alpine_, you may want
to store the window size and position in the configuration file
instead of in the Registry. Setting this feature causes that to
happen.
_strip-from-sigdashes-on-reply_
This feature doesn't do anything if the feature enable-sigdashes
is turned on. However, if the _enable-sigdashes_ feature is not
turned on, then turning on this feature enables support for the
convention of not including text beyond the sigdashes line when
Replying or Following up to a message and including the text of
that message.
In other words, this is a way to turn on the signature stripping
behavior without also turning on the dashes-adding behavior.
_strip-whitespace-before=send_
Trailing whitespace is not stripped from a message before
sending. Trailing whitespace should have no effect on an email
message, and in flowed text can aid in delimiting paragraphs.
However, the old behavior of stripping trailing whitespace was
in place to better deal with older clients that couldn't handle
certain types of text encodings. This feature restores the old
behavior
Trailing whitespace is of aid to flowed-text-formatted messages,
which are generated by default but can be turned off via the
quell-flowed-text feature. strip-whitespace-before-send also has
the effect of turning off sending of flowed text.
This feature is displayed as "Strip Whitespace Before Sending".
_suppress-asterisks-in-password-prompt_
When you are running _Alpine_ you will sometimes be asked for a
password in a prompt on the third line from the bottom of the
screen. Normally each password character you type will cause an
asterisk to echo on the screen. That gives you some feedback to
know that your typing is being recognized. There is a very
slight security risk in doing it this way because someone
watching over your shoulder might be able to see how many
characters there are in your password. If you'd like to suppress
the echoing of the asterisks set this feature.
_suppress-user-agent-when-sending_
If this feature is set then _Alpine_ will not generate a
User-Agent header in outgoing messages.
_tab-checks-recent_
In a FOLDER LIST screen, the TAB key usually just changes which
folder is highlighted. If this feature is set, then the TAB key
will cause the number of recent messages and the total number of
messages in the highlighted folder to be displayed instead.
This feature is displayed as "Tab Checks for Recent Messages".
_tab-uses-unseen-for-next-folder_
This feature affects _Alpine_'s behavior when using the TAB
NextNew Command to move from one folder to the next. _Alpine_'s
usual behavior is to search for folders with _Recent_ messages
in them. Recent messages are messages which have arrived since
the last time the folder was opened.
Setting this feature causes _Alpine_ to search for _Unseen_
messages instead of Recent messages. Unseen messages remain
Unseen until you view them (or flag then as Seen with the Flag
Command). Setting this feature allows you to locate messages you
have not read instead of only recently received messages. When
this feature is set, the feature Enable-Fast-Recent-Test will
have no effect, so the checking may be slower.
Another reason why you might want to use this feature is that
_Alpine_ sometimes opens folders implicitly behind the scenes,
and this clears the Recent status of all messages in the folder.
One example where this happens is when Saving or filtering a
message to another folder. If that message has some keywords
set, then because of some shortcomings in the IMAP
specification, the best way to ensure that those keywords are
still set in the saved copy of the message is to open the folder
and set the keywords explicitly. Because this clears the Recent
status of all messages in that folder the folder will not be
found by the NextNew command unless this feature is set.
_tab-visits-next-new-message-only_
This feature affects _Alpine_'s behavior when using the _TAB_
key to move from one message to the next. _Alpine_'s usual
behavior is to select the next _Unread_ message or message
flagged as _Important_.
Setting this feature causes _Alpine_ to skip the messages
flagged as _Important_, and select _Unread_ messages
exclusively. Tab behavior when there are no new messages left to
select remains unchanged.
_termdef-takes-precedence_
This feature may affect _Alpine_'s low-level input routines.
Termcap (or terminfo, depending on how your copy of _Alpine_ was
compiled and linked) is the name of the database which describes
terminal capabilities. In particular, it describes the sequences
of characters that various keys will emit.
An example would be the Up Arrow key on the keyboard. Up Arrow
is not a distinct character on most Unix systems. When you press
the Up Arrow key a short sequence of characters are produced.
This sequence is supposed to be described in the termcap
database by the "ku" capability (or by the "kcuu1" capability if
you are using terminfo instead of termcap).
By default, _Alpine_ defines some terminal escape sequences that
are commonly used. For example, the sequence "ESC O A" is
recognized as an Up Arrow key. The sequence "ESC [ A" is also
recognized as an Up Arrow key. These are chosen because common
terminals like VT100's or ANSI standard terminals produce these
sequences when you press the Up Arrow key.
If your system's termcap (terminfo) database assigns some other
function to the sequence "ESC O A" it is usually ignored by
_Alpine_. Also, if your termcap (terminfo) database assigns a
sequence which doesn't begin with an escape character (ESC) it
is usually ignored by _Alpine_. This usually works fine because
most terminals emit the escape sequences that _Alpine_ has
defined by default. We have also found that it is usually better
to have these defaults take precedence over the definitions
contained in the database because the defaults are more likely
to be correct than the database.
There are some terminals where this breaks down. If you want
_Alpine_ to believe the definitions given in your termcap
(terminfo) database in preference to the defaults the _Alpine_
itself sets up, then you may turn this feature on. Then,
sequences of characters which are defined in both termcap
(terminfo) and in _Alpine_'s set of defaults will be interpreted
the way that termcap (terminfo) says they should be interpreted.
Also, if your terminal capabilities database assigns a sequence
which doesn't begin with escape, it will not be ignored.
_thread-index-shows-important-color_
This option affects only the THREAD INDEX screen. Whether or not
you ever see a THREAD INDEX screen depends on the setting of the
configuration option threading-index-style and on the sort order
of the index. If a message within a thread is flagged as
Important and this option is set, then the entire line in the
THREAD INDEX will be colored the color of the Index-important
Symbol, which can be set using the Setup Kolor screen.
_try-alternative-authentication-driver-first_
This feature affects how _Alpine_ connects to IMAP servers. It's
utility has largely been overtaken by events, but it may still
be useful in some circumstances. If you only connect to modern
IMAP servers that support "TLS" you can ignore this feature.
Details:
By default, _Alpine_ will attempt to connect to an IMAP server
on the normal IMAP service port (143), and if the server offers
"Transport Layer Security" (TLS) and _Alpine_ has been compiled
with encryption capability, then a secure (encrypted) session
will be negotiated.
With this feature enabled, before connecting on the normal IMAP
port, _Alpine_ will first attempt to connect to an alternate
IMAP service port (993) used specifically for encrypted IMAP
sessions via the Secure Sockets Layer (SSL) method. If the SSL
attempt fails, _Alpine_ will then try the default behavior
described in the previous paragraph.
TLS negotiation on the normal port is preferred, and supersedes
the use of SSL on port 993, but older servers may not provide
TLS support. This feature may be convenient when accessing IMAP
servers that do not support TLS, but do support SSL connections
on port 993. However, it is important to understand that with
this feature enabled, _Alpine_ will _attempt_ to make a secure
connection if that is possible, but it will proceed to make an
insecure connection if that is the only option offered by the
server, or if the _Alpine_ in question has been built without
encryption capability.
Note that this feature specifies a per-user (or system-wide)
default behavior, but host/folder specification flags may be
used to control the behavior of any specific connection. This
feature interacts with some of the possible host/folder path
specification flags as follows:
The /tls host flag, for example,
{foo.example.com/tls}INBOX
will over-ride this feature for the specified host by bypassing
the SSL connection attempt. Moreover, with /tls specified, the
connection attempt will fail if the service on port 143 does not
offer TLS support.
The /ssl host flag, for example,
{foo.example.com/ssl}INBOX
will insist on an SSL connection for the specified host, and
will fail if the SSL service on port 993 is not available.
_Alpine_ will not subsequently retry a connection on port 143 if
/ssl is specified.
_unselect-will-not-advance_
Normally, when the Unselect current message command (:) is typed
when the current message is selected, the message will be
unselected and the next message will become the current message.
If this feature is set, the cursor will not advance to the next
message. Instead, the current message will remain the current
message after unselecting.
_use-current-dir_
This feature controls an aspect of several commands. If set,
your "current working directory" will be used instead of your
home directory for all of the following operations:
+ _Export_ in the "Folder Index" and "Message Text" screens
+ Attachment _Save_ in the "Message Text" and "Attachment Text"
screens
+ _^R_ file inclusion in the Composer
+ _^J_ file attachment in the Composer
This feature is displayed as "Use Current Directory".
_use-function-keys_
This feature specifies that _Alpine_ will respond to function
keys instead of the normal single-letter commands. In this mode,
the key menus at the bottom of each screen will show function
key designations instead of the normal mnemonic key.
_use-regular-startup-rule-for-stayopen-folders_
This feature affects which message is selected as the current
message when you enter a Stay Open folder.
Normally, the starting position for an incoming folder (which
most Stay Open folders will likely be) is controlled by the
Incoming-Startup-Rule. However, if a folder is a Stay Open
folder, when you re-enter the folder after the first time the
current message will be the same as it was when you left the
folder. An exception is made if you use the TAB command to get
to the folder. In that case, the message number will be
incremented by one from what it was when you left the folder.
The above special behavior is thought to be useful. However, it
is special and different from what you might at first expect. If
this feature is set, then Stay Open folders will not be treated
specially as far as the startup rule is concerned.
_use-resent-to-in-rules_
This feature is turned off by default because turning it on
causes problems with some deficient IMAP servers. In _Alpine_
Filters and other types of Rules, if the Pattern contains a To
header pattern and this feature is turned on, then a check is
made in the message to see if a Resent-To header is present, and
that is used instead of the To header. If this feature is not
turned on, then the regular To header will always be used.
_use-sender-not-x-sender_
Normally _Alpine_ on Unix adds a header line labeled
_X-X-Sender_, if the sender is different from the _From:_ line.
The standard specifies that this header line should be labeled
_Sender_, not _X-X-Sender_. Setting this feature causes _Sender_
to be used instead of _X-X-Sender_. The standard also states
that the data associated with this header field should not be
used as a Reply address. Unfortunately, certain implementations
of mail list management servers will use the Sender address for
such purposes. These implementations often even recognize the
_X-Sender_ fields as being equivalent to the _Sender_ field, and
use it if present. This is why _Alpine_ defaults to
_X-X-Sender_.
Note, _PC-Alpine_ always adds either an _X-X-Sender_ line if
there is an open, remote mailbox, or an _X-Warning:
UNAuthenticated User_ otherwise
This feature is displayed as "Use Sender Instead of X-X-Sender".
_use-subshell-for-suspend_
This feature affects _Alpine_'s behavior when process suspension
is enabled and then activated via the _^Z_ key. _Alpine_
suspension allows one to temporarily interact with the operating
system command "shell" without quitting _Alpine_, and then
subsequently resume the still-active _Alpine_ session.
When the _enable-suspend_ feature is set and subsequently the
_^Z_ key is pressed, _Alpine_ will normally suspend itself and
return temporary control to _Alpine_'s parent shell process.
However, if this feature is set, _Alpine_ will instead create an
inferior subshell process. This is useful when the parent
process is not intended to be used interactively. Examples
include invoking _Alpine_ via the -e argument of the Unix _xterm_
program, or via a menu system.
Note that one typically resumes a suspended _Alpine_ by entering
the Unix _fg_ command, but if this feature is set, it will be
necessary to enter the _exit_ command instead.
_use-system-translation_
UNIX _Alpine_ only. _Alpine_ normally uses its own internal
software to convert between the multi-byte representation of
characters and the Unicode representation of those same
characters ( see the section on International Character Sets).
It converts from the multi-byte characters your keyboard
produces to Unicode, and from Unicode to the multi-byte
characters your display expects. Alpine also uses its own
internal software to decide how much space on the screen a
particular Unicode character will occupy.
Setting this feature tells _Alpine_ to use the system-supplied
routines to perform these tasks instead. In particular there are
three tasks and three system routines that will be used for
these tasks.
To convert from multi-byte to Unicode the routine
mbstowcs
is used. To convert from Unicode to multi-byte the routine
wcrtomb
is used. And to find the screen width a particular Unicode
character will occupy the routine used is
wcwidth
This feature has been only lightly tested. The internal routines
should normally be used unless you run into a problem that you
think may be solved by using the system routines. Note that your
environment needs to be set up for these routines to work
correctly. In particular, the LANG or LC_CTYPE variable in your
environment will need to be set.
_vertical-folder-list_
This feature controls an aspect of _Alpine_'s FOLDER LIST
screen. If set, the folders will be listed alphabetically down
the columns rather than across the columns as is the default.
This feature is displayed as "Use Vertical Folder List".
_warn-if-blank-subject_
This feature affects _Alpine_'s behavior when you send a message
being composed. If this option is set, _Alpine_ will check to
see if the message about to be sent has a subject or not. If
not, you will be asked if you want to send the message anyway.
_warn-if-blank-to-and-cc-and-newsgroups_
This feature affects _Alpine_'s behavior when you send a message
being composed. If this option is set, _Alpine_ will check to
see if the message about to be sent has either a To address, a
Cc address, or a Newsgroup. If none of these is set, you will be
asked if you want to send the message anyway.
This feature is closely related to fcc-only-without-confirm.
_Alpine_ will normally ask if you want to copy a message only to
the Fcc. This feature also applies to cases where there is a Bcc
but still no To, Cc, or Newsgroup. If the
Fcc-Only-Without-Confirm feature is set and you are sending a
message with only an Fcc, then you won't be asked about sending
with a blank To and Cc and Newsgroups header even if this
feature is set. Similarly, if you have already been asked if you
want to send to the Fcc only and you have answered Yes, then you
won't be asked again about sending with blank To, Cc, and
Newsgroups headers even if this feature is set.
Hidden Config Variables and Features
There are several configuration variables and features which are
normally hidden from the user. That is, they don't appear on any of the
configuration screens. Some of these are suppressed because they are
intended to be used by system administrators, and in fact may only be
set in system-wide configuration files. Others are available to users
but are thought to be of such little value to most users that their
presence on the Config screens would cause more confusion than help.
Others are hidden in the Setup/Config screen because they are normally
configured in one of the other configuration screens. For example, all
of the colors are hidden because the normal way to configure colors is
through Setup/Colors not Setup/Config. You may set the feature
expose-hidden-config to cause most of these hidden variables and
features to show up at the bottom of the Setup/Config screen.
Hidden Variables Not Settable by Users
These variables are settable only in system-wide configuration files.
* bugs-additional-data
* bugs-address
* bugs-fullname
* forced-abook-entry
* kblock-passwd-count
* local-address
* local-fullname
* mail-directory
* standard-printer
* suggest-address
* suggest-fullname
Hidden Variables Which are Settable by Users
These variables are not shown to users but are settable by means of
hand editing the personal configuration file. This first group is
usually maintained by _Alpine_ and there will usually be no reason to
edit them by hand.
* last-version-used
* patterns-filters2
* patterns-indexcolors
* patterns-roles
* patterns-scores2
* remote-abook-metafile
This group is usually correct but may be changed by system managers or
users in special cases.
* disable-these-authenticators
* disable-these-drivers
* last-time-prune-questioned
* new-version-threshold
* remote-abook-history
* remote-abook-validity
* rsh-command
* rsh-open-timeout
* rsh-path
* sendmail-path
* ssh-command
* ssh-open-timeout
* ssh-path
* tcp-open-timeout
* tcp-query-timeout
* tcp-read-warning-timeout
* tcp-write-warning-timeout
* use-function-keys
System managers are usually interested in setting these in the
system-wide configuration files, though users may set them if they
wish.
* operating-dir
* user-input-timeout
Hidden Features Which are Settable by Users
These are _features_ (as opposed to variables) which users or system
administrators may set. Some of them only make sense for
administrators. To turn these on manually, the configuration file
should be edited and the feature added to the _feature-list_ variable.
You may set the feature expose-hidden-config to cause these hidden
features to show up in the Setup/Config screen. They will be at the
bottom of the screen.
* disable-config-cmd
* disable-keyboard-lock-cmd
* disable-password-cmd
* disable-pipes-in-sigs
* disable-pipes-in-templates
* disable-roles-setup-cmd
* disable-roles-sig-edit
* disable-roles-template-edit
* disable-setlocale-collate
* disable-shared-namespaces
* disable-signature-edit-cmd
Retired Variables and Features
Variables and features that are no longer used by the current _Alpine_
version. When an obsolete variable is encountered, its value is applied
to any new corresponding setting. The replaced values include:
_character-set_
Replaced by three separate variables: _display-character-set_,
_keyboard-character-set_, and _posting-character-set_.
_compose-mime_
_elm-style-save_
Replaced by _saved-msg-name-rule_
_feature-level_
Replaced by _feature-list._
_header-in-reply_
Replaced by _include-header-in-reply_ in the _feature-list._
_old-style-reply_
Replaced by _signature-at-bottom_ in the _feature-list._
_use-old-unix-format-write_
No replacement.
_patterns_
Replaced by four separate patterns variables: _patterns-roles_,
_patterns-filters_, _patterns-scores_, and
_patterns-indexcolors_. Since then, _patterns-filters_ has also
become obsolete and is replaced by _patterns-filters2_;
_patterns-scores_ is replaced by _patterns-scores2_.
_save-by-sender_
Replaced by _saved-msg-name-rule._
_show-all-characters_
No replacement, it always works this way now.
Tokens for Index and Replying
This set of special tokens may be used in the index-format option, in
the reply-leadin option, in signature files, in template files used in
roles, and in the folder name that is the target of a Filter Rule. Some
of them aren't available in all situations.
The tokens are used as they appear below for the _Index-Format_ option,
but they must be surrounded by underscores for the _Reply-Leadin_
option, in signature and template files, and in the target of Filter
Rules.
_Tokens Available for all Cases (except Filter Rules)_
SUBJECT
This token represents the Subject the sender gave the message.
Alternatives for use in the index screen are SUBJKEY,
SUBJKEYINIT, SUBJECTTEXT, SUBJKEYTEXT, and SUBJKEYINITTEXT. You
may color the subject text in the MESSAGE INDEX screen
differently by using the Index Subject Color and the Index
Opening Color. options available from the Setup Kolor screen.
FROM
This token represents the personal name (or email address if the
name is unavailable) of the person specified in the message's
"From:" header field. You may color the from text in the MESSAGE
INDEX screen differently by using the Index From Color option
available from the Setup Kolor screen.
ADDRESS
This is similar to the "FROM" token, only it is always the email
address, never the personal name. For example, "mailbox@domain".
MAILBOX
This is the same as the "ADDRESS" except that the domain part of
the address is left off. For example, "mailbox".
SENDER
This token represents the personal name (or email address) of
the person listed in the message's "Sender:" header field.
TO
This token represents the personal names (or email addresses if
the names are unavailable) of the persons specified in the
message's "To:" header field.
NEWSANDTO
This token represents the newsgroups from the message's
"Newsgroups:" header field _and_ the personal names (or email
addresses if the names are unavailable) of the persons specified
in the message's "To:" header field.
TOANDNEWS
Same as "NEWSANDTO" except in the opposite order.
NEWS
This token represents the newsgroups from the message's
"Newsgroups:" header field.
CC
This token represents the personal names (or email addresses if
the names are unavailable) of the persons specified in the
message's "Cc:" header field.
RECIPS
This token represents the personal names (or email addresses if
the names are unavailable) of the persons specified in both the
message's "To:" header field and the message's "Cc:" header
field.
NEWSANDRECIPS
This token represents the newsgroups from the message's
"Newsgroups:" header field _and_ the personal names (or email
addresses if the names are unavailable) of the persons specified
in the message's "To:" and "Cc:" header fields.
RECIPSANDNEWS
Same as "NEWSANDRECIPS" except in the opposite order.
INIT
This token represents the initials from the personal name of the
person specified in the message's "From:" header field. If there
is no personal name, it is blank.
DATE
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format MMM DD.
For example, "Oct 23". The feature convert-dates-to-localtime,
which adjusts for the timezone the message was sent from, may
have an affect on the value of this token as well as the values
of all of the other DATE or TIME tokens. Some of the DATE and
TIME tokens are displayed in a locale-specific way unless the
option Disable-Index-Locale-Dates is set.
SMARTDATE
This token represents the date on which the message was sent,
according to the "Date" header field. It is "Today" if the
message was sent today, "Yesterday" for yesterday, "Wednesday"
if it was last Wednesday, and so on. If the message is from last
year and is more than six months old it includes the year, as
well. There is no adjustment made for different time zones, so
you'll get the day the message was sent according to the time
zone the sender was in. See the SMARTDATE alternatives below, as
well.
SMARTTIME
This token represents the most relevant elements of the date on
which the message was sent (according to the "Date" header
field), in a compact form. If the message was sent today, only
the time is used (e.g. "9:22am", "10:07pm"); if it was sent
during the past week, the day of the week and the hour are used
(e.g. "Wed09am", "Thu10pm"); other dates are given as date,
month, and year (e.g. "23Aug00", "9Apr98"). There is no
adjustment made for different time zones, so you'll get the
day/time the message was sent according to the time zone the
sender was in.
SMARTDATETIME
This is a combination of SMARTDATE and SMARTTIME. It is
SMARTDATE unless the SMARTDATE value is "Today", in which case
it is SMARTTIME. See the SMARTDATETIME alternatives below, as
well.
DATEISO
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
YYYY-MM-DD. For example, "1998-10-23".
SHORTDATEISO
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
YY-MM-DD. For example, "98-10-23".
SHORTDATE1
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
MM/DD/YY. For example, "10/23/98".
SHORTDATE2
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
DD/MM/YY. For example, "23/10/98".
SHORTDATE3
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
DD.MM.YY. For example, "23.10.98".
SHORTDATE4
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format
YY.MM.DD. For example, "98.10.23".
LONGDATE
This token represents the date on which the message was sent,
according to the "Date" header field. It has the format MMM DD,
YYYY. For example, "Oct 23, 1998".
SMARTDATE alternatives
There are several versions of SMARTDATE which are all the same
except for the way they format dates far in the past. SMARTDATE
formats the date using the information from your locale settings
to format the date string. It may end up formatting dates so
that they look like DATEISO tokens, or SHORTDATE2 tokens, or
something else entirely. The feature convert-dates-to-localtime
may have an affect on the values of these tokens. If you want
more control you may use one of the following.
SMARTDATE
If the option Disable-Index-Locale-Dates is not set then
this will be locale specific. Control this with the
LC_TIME locale setting on a UNIX system. On Windows the
Regional Options control panel may be used to set the
Short date format. At the programming level, the strftime
routine is what _Alpine_ uses to print the date. If the
Disable-Index-Locale-Dates option is set then this is
equivalent to SMARTDATES1.
SMARTDATEISO
DATEISO format. See text above.
SMARTDATESHORTISO
SHORTDATEISO format.
SMARTDATES1
SHORTDATE1 format.
SMARTDATES2
SHORTDATE2 format.
SMARTDATES3
SHORTDATE3 format.
SMARTDATES4
SHORTDATE4 format.
SMARTDATETIME alternatives
There are several versions of SMARTDATETIME which are all very
similar. The ones which end in 24 use a 24-hour clock for
Today's messages instead of a 12-hour clock. The other variation
is for the way they format dates far in the past. SMARTDATETIME
and SMARTDATETIME24 format the date using the information from
your locale settings to format the date string. It may end up
formatting dates so that they look like DATEISO tokens, or
SHORTDATE2 tokens, or something else entirely. The feature
convert-dates-to-localtime may have an affect on the values of
these tokens. The possible choices are:
SMARTDATETIME
Locale specific. Control this with the LC_TIME locale
setting on a UNIX system. On Windows the Regional Options
control panel may be used to set the Short date format. At
the programming level, the strftime routine is what
_Alpine_ uses to print the date.
SMARTDATETIME
If the option Disable-Index-Locale-Dates is not set then
this will be locale specific. Control this with the
LC_TIME locale setting on a UNIX system. On Windows the
Regional Options control panel may be used to set the
Short date format. At the programming level, the strftime
routine is what _Alpine_ uses to print the date. If the
Disable-Index-Locale-Dates option is set then this is
equivalent to SMARTDATETIMES1.
SMARTDATETIME24
Use TIME24 for Today
SMARTDATETIMEISO
DATEISO format. See text above.
SMARTDATETIMEISO24
Use TIME24 for Today
SMARTDATETIMESHORTISO
SHORTDATEISO format.
SMARTDATETIMESHORTISO24
Use TIME24 for Today
SMARTDATETIMES1
SHORTDATE1 format.
SMARTDATETIMES124
Use TIME24 for Today
SMARTDATETIMES2
SHORTDATE2 format.
SMARTDATETIMES224
Use TIME24 for Today
SMARTDATETIMES3
SHORTDATE3 format.
SMARTDATETIMES324
Use TIME24 for Today
SMARTDATETIMES4
SHORTDATE4 format.
SMARTDATETIMES424
Use TIME24 for Today
DAYDATE
This token represents the date on which the message was sent,
according to the "Date" header field. It looks like "Sat, 23 Oct
1998". This token is never converted in any locale-specific way.
PREFDATE
This token represents the date on which the message was sent,
according to the "Date" header field. It is your operating
system's idea of the preferred date representation for the
current locale. Internally it uses the %x version of the date
from the strftime routine.
PREFTIME
This token represents the time at which the message was sent,
according to the "Date" header field. It is the preferred time
representation for the current locale. Internally it uses the %X
version of the time from the strftime routine.
PREFDATETIME
This token represents the date and time at which the message was
sent, according to the "Date" header field. It is the preferred
date and time representation for the current locale. Internally
it uses the %c version of the time from the strftime routine.
DAY
This token represents the day of the month on which the message
was sent, according to the "Date" header field. For example,
"23" or "9".
DAY2DIGIT
This token represents the day of the month on which the message
was sent, according to the "Date" header field. For example,
"23" or "09". It is always 2 digits.
DAYORDINAL
This token represents the ordinal number which is the day of the
month on which the message was sent, according to the "Date"
header field. For example, "23rd" or "9th".
DAYOFWEEK
This token represents the day of the week on which the message
was sent, according to the "Date" header field. For example,
"Sunday" or "Wednesday".
DAYOFWEEKABBREV
This token represents the day of the week on which the message
was sent, according to the "Date" header field. For example,
"Sun" or "Wed".
MONTHABBREV
This token represents the month the message was sent, according
to the "Date" header field. For example, "Oct".
MONTHLONG
This token represents the month in which the message was sent,
according to the "Date" header field. For example, "October".
MONTH
This token represents the month in which the message was sent,
according to the "Date" header field. For example, "10" or "9".
MONTH2DIGIT
This token represents the month in which the message was sent,
according to the "Date" header field. For example, "10" or "09".
It is always 2 digits.
YEAR
This token represents the year the message was sent, according
to the "Date" header field. For example, "1998" or "2001".
YEAR2DIGIT
This token represents the year the message was sent, according
to the "Date" header field. For example, "98" or "01". It is
always 2 digits.
TIME24
This token represents the time at which the message was sent,
according to the "Date" header field. There is no adjustment
made for different time zones, so you'll get the time the
message was sent according to the time zone the sender was in.
It has the format HH:MM. For example, "17:28".
TIME12
This token represents the time at which the message was sent,
according to the "Date" header field. This time is for a 12 hour
clock. It has the format HH:MMpm. For example, "5:28pm" or
"11:13am".
TIMEZONE
This token represents the numeric timezone from the "Date"
header field. It has the format [+-]HHMM. For example, "-0800".
_Tokens Available Only for Index-Format_
MSGNO
This token represents the message's current position in the
folder which, of course, may change as the folder is sorted or
new mail arrives.
STATUS
This token represents a three character wide field displaying
various aspects of the message's state. The first character is
either blank, a '*' for message marked Important, or a '+'
indicating a message addressed directly to you (as opposed to
your having received it via a mailing list, for example). When
the feature mark-for-cc is set, if the first character would
have been blank then it will instead be a '-' if the message is
cc'd to you. The second character is typically blank, though the
arrow cursor may occupy it if either the assume-slow-link or the
force-arrow-cursor feature is set (or you actually are on a slow
link). The third character is either D (Deleted), A (Answered),
N (New), or blank.
If you are using a threaded view of the index and this message
is at the top of a collapsed portion of a thread, then this
token refers to all of the messages in the collapsed portion of
the thread instead of just the top message. The first character
will be a '*' if _any_ of the messages in the thread are marked
Important, else a '+' if any of the messages are addressed to
you, else a '-' if any of the messages are cc'd to you. The
third character will be a 'D' if _all_ of the messages in the
collapsed thread are marked deleted, an 'A' if _all_ of the
messages in the collapsed thread are marked answered, it will be
an 'N' if any of the messages are undeleted and unseen, and it
will be blank otherwise.
FULLSTATUS
This token represents a less abbreviated alternative to the
"STATUS" token. It is six characters wide. The first character
is '+', '-', or blank, the second blank, the third either '*' or
blank, the fourth N or blank, the fifth A or blank, and the
sixth character is either D or blank.
If you are using a threaded view of the index and this message
is at the top of a collapsed portion of a thread, then this
token refers to all of the messages in the collapsed portion of
the thread instead of just the top message. The first character
is '+', '-', or blank depending on whether _any_ of the messages
in the collapsed thread are addressed to you or cc'd to you. The
third character will be '*' if any of the messages are marked
Important. The fourth character will be 'N' if all of the
messages in the thread are New, else 'n' if some of the messages
in the thread are New, else blank. The fifth character will be
'A' or 'a' or blank, and the sixth character will be 'D' or 'd'
or blank.
IMAPSTATUS
This token represents an even less abbreviated alternative to
the "STATUS" token. It differs from "FULLSTATUS" in only the
fourth character which is an 'N' if the message is new to this
folder since the last time it was opened _and_ it has not been
viewed, an 'R' (Recent) if the message is new to the folder and
has been viewed, a 'U' (Unseen) if the message is not new to the
folder since it was last opened _but_ has not been viewed, or a
blank if the message has been in the folder since it was last
opened and has been viewed.
If you are using a threaded view of the index and this message
is at the top of a collapsed portion of a thread, then the
fourth character will be 'N' if all of the messages in the
thread are unseen and recent; else 'n' if some of the messages
in the thread are unseen and recent; else 'U' if all of the
messages in the thread are unseen and not recent; else 'u' if
some of the messages in the thread are unseen and not recent;
else 'R' if all of the messages in the thread are seen and
recent; else 'r' if some of the messages in the thread are seen
and recent; else blank.
SHORTIMAPSTATUS
This is the same as the last four of the six characters of
IMAPSTATUS, so the '+' To Me information will be missing.
SIZE
This token represents the total size, in bytes, of the message.
If a "K" (Kilobyte) follows the number, the size is
approximately 1,000 times that many bytes (rounded to the
nearest 1,000). If an "M" (Megabyte) follows the number, the
size is approximately 1,000,000 times that many bytes. Commas
are not used in this field. This field is seven characters wide,
including the enclosing parentheses. Sizes are rounded when "K"
or "M" is present. The progression of sizes used looks like:
0 1 ... 9999 10K ... 999K 1.0M ... 99.9M 100M ... 2000M
SIZECOMMA
This token represents the total size, in bytes, of the message.
If a "K" (Kilobyte) follows the number, the size is
approximately 1,000 times that many bytes (rounded to the
nearest 1,000). If an "M" (Megabyte) follows the number, the
size is approximately 1,000,000 times that many bytes. Commas
are used if the number shown is 1,000 or greater. The SIZECOMMA
field is one character wider than the SIZE field. Sizes are
rounded when "K" or "M" is present. The progression of sizes
used looks like:
0 1 ... 99,999 100K ... 9,999K 10.0M ... 999.9M 1,000M ... 2,000M
KSIZE
This token represents the total size of the message, expressed
in kilobytes or megabytes, as most appropriate. These are 1,024
byte kilobytes and 1,024 x 1,024 byte megabytes. The progression
of sizes used looks like:
0K 1K ... 1023K 1.0M ... 99.9M 100M ... 2047M
SIZENARROW
This token represents the total size, in bytes, of the message.
If a "K" (Kilobyte) follows the number, the size is
approximately 1,000 times that many bytes. If an "M" (Megabyte)
follows the number, the size is approximately 1,000,000 times
that many bytes. If a "G" (Gigabyte) follows the number, the
size is approximately 1,000,000,000 times that many bytes. This
field uses only five characters of screen width, including the
enclosing parentheses. The progression of sizes used looks like:
0 1 ... 999 1K ... 99K .1M ... .9M 1M ... 99M .1G ... .9G 1G 2G
DESCRIPSIZE
This token is intended to represent a more useful description of
the message than just its size, but it isn't very useful at this
point. The plus sign in this view means there are attachments.
Note that including this token in the "Index-Format" could slow
down the display a little while _Alpine_ collects the necessary
information.
SUBJKEY
This token is the same as the SUBJECT token unless keywords are
set for the message. In that case, a list of keywords enclosed
in braces will be prepended to the subject of the message. Only
those keywords that you have defined in your Keywords option in
Setup/Config are considered in the list. In other words,
keywords that have been set by some other means, perhaps by
another email program, won't show up unless included in
Keywords. Having this set in the Index-Format will also cause
the keywords to be prepended to the subject in the MESSAGE TEXT
screen. If you have given a keyword a nickname (keywords), that
nickname is displayed instead of the actual keyword. The
keyword-surrounding-chars option may be used to modify this
token slightly. It is also possible to color keywords in the
index using the Setup/Kolor screen.
SUBJKEYINIT
This token is the same as the SUBJKEY token except that instead
of prepending a list of keywords to the subject, a list of first
initials of keywords will be prepended instead. For example, if
a message has the keywords _Work_ and _Now_ set (or Work and Now
are the _Alpine_ nicknames of keywords which are set) then the
SUBJKEY token would cause a result like
{Work Now} actual subject
whereas the SUBJKEYINIT token would give
{WN} actual subject
Only those keywords that you have defined in your Keywords
option in Setup/Config are considered in the list. In other
words, keywords that have been set by some other means, perhaps
by another email program, won't show up unless included in
Keywords. The keyword-surrounding-chars option may be used to
modify this token slightly. It is also possible to color
keywords in the index using the Setup/Kolor screen.
SUBJECTTEXT
Same as SUBJECT but if there is room in the Subject field for
more text, the opening part of the text of the message is
displayed after the subject. The time needed to fetch the text
may cause a performance problem which can, of course, be avoided
by using the SUBJECT version of the Subject instead. You may
color this opening text differently by using the Index Opening
Color option available from the Setup Kolor screen. You may
adjust the characters that are displayed between the Subject and
the opening text with the option Opening-Text-Separator-Chars.
SUBJKEYTEXT
Same as SUBJKEY but with the opening message text.
SUBJKEYINITTEXT
Same as SUBJKEYINIT but with the opening message text.
OPENINGTEXT
This is similar to SUBJECTTEXT. Instead of combining the Subject
and the opening text in a single field in the index screen this
token allows you to allocate a separate column just for the
opening text of the message. The time needed to fetch this text
may cause a performance problem. You may color this opening text
differently by using the Index Opening Color option available
from the Setup Kolor screen.
OPENINGTEXTNQ
This is very similar to OPENINGTEXT. The NQ stands for No
Quotes. The only difference is that quoted text (lines beginning
with >) is deleted. For some messages this may be confusing. For
example, a message might have a line preceding some quoted text
that reads something like "On May 8th person A said." That no
longer makes sense after the quoted text is deleted and it will
appear that person A said whatever the text after the quote is,
even though that is really person B talking.
KEY
This is a space-delimited list of keywords that are set for the
message. Only those keywords that you have defined in your
Keywords option in Setup/Config are considered in the list. In
other words, keywords that have been set by some other means,
perhaps by another email program, won't show up unless included
in Keywords. If you have given a keyword a nickname that
nickname is displayed instead of the actual keyword. It is also
possible to color keywords in the index using the Setup/Kolor
screen. This token defaults to an arbitrary width of 5. You
should set it to whatever width suits you using something like
KEY(17) in the Index-Format.
KEYINIT
This is a list of keyword initials that are set for the message.
If you have given a keyword a nickname the initial of that
nickname is displayed instead of the initial of the actual
keyword. It is also possible to color keyword initials in the
index using the Setup/Kolor screen. This token defaults to an
arbitrary width of 2. You should set it to whatever width suits
you using something like KEYINIT(3) in the Index-Format.
PRIORITY
The X-Priority header is a non-standard header that is used in a
somewhat standard way by many mail programs. _Alpine_ expects
the value of this header to be a digit with a value from 1 to 5,
with 1 being the highest priority and 5 the lowest priority.
Since this priority is something that the sender sets it is only
an indication of the priority that the sender attaches to the
mail and it is therefore almost totally unreliable for use as a
filtering criterion. This token will display the numeric value
of the priority if it is between 1 and 5. It will be suppressed
(blank) if the value is 3, which is normal priority. It is also
possible to set the color of the PRIORITY field. By default the
token is colored the same as the index line it is part of. You
may set it to be another color with the Index Priority Colors
options available from the Setup Kolor screen.
PRIORITYALPHA
This is a more verbose interpretation of the X-Priority field.
Once again nothing is displayed unless the value of the field is
1, 2, 4, or 5. The values displayed for those values are:
1 Highest
2 High
4 Low
5 Lowest
You may color this token with the Index Priority Colors options.
PRIORITY!
This is a one character, non-numeric version of the X-Priority
field. If the value of the X-Priority header is 1 or 2 an
exclamation point is displayed. If the value is 4 or 5 a "v"
(think down arrow) is displayed. You may color this token with
the Index Priority Colors options.
ATT
This is a one column wide field which represents the number of
attachments a message has. It will be blank if there are no
attachments, a single digit for one to nine attachments, or an
asterisk for more than nine. Note that including this token in
the "Index-Format" could slow down the display a little while
_Alpine_ collects the necessary information.
FROMORTO
This token represents _either_ the personal name (or email
address) of the person listed in the message's "From:" header
field, _or_, if that address is yours or one of your alternate
addresses, the first person specified in the message's "To:"
header field with the prefix "To: " prepended. If the from
address is yours and there is also no "To" address, _Alpine_
will use the address on the "Cc" line. If there is no address
there, either, _Alpine_ will look for a newsgroup name from the
"Newsgroups" header field and put that after the "To: " prefix.
FROMORTONOTNEWS
This is almost the same as _FROMORTO_. The difference is that
newsgroups aren't considered. When a message is from you,
doesn't have a To or Cc, and does have a Newsgroups header; this
token will be your name instead of the name of the newsgroup
(like it would be with FROMORTO).
TEXT
This is a different sort of token. It allows you to display a
label within each index line. It will be the same fixed text for
each line. It is different from all the other tokens in that
there is no space column displayed after this token. Instead, it
is butted up against the following field. It also has a
different syntax. The text to display is given following a colon
after the word "TEXT". For example,
TEXT:abc=
would insert the literal text "abc=" (without the quotes) into
the index display line. You must quote the text if it includes
space characters, like
TEXT:"abc = "
HEADER
This allows you to display the text from a particular header
line in the message. The syntax for this token is substantially
different from all the others in order that you might be able to
display a portion of the text following a particular header. The
header name you are interested in is given following a colon
after the word "HEADER". For example,
HEADER:X-Spam
would display the text of the X-Spam header, if any. Like for
other index tokens a width field may (and probably should)
follow this.
HEADER:X-Spam(10)
displays the first ten characters of the X-Spam header. Unlike
other index tokens, the syntax for HEADER is more flexible. An
optional second argument comes after a comma inside the
parentheses. It specifies the "field" number. By default, the
field separator is a space character. No extra space characters
are allowed in the argument list.
HEADER:X-Spam(10,2)
would display the second field, left-justified, in a 10
character wide field. The second field would consist of all the
text after the first space up to the next space or the end of
the header. The default field number is zero, which stands for
the entire line. There is also an optional third argument which
is a list of field separators. It defaults to a space character.
The example
HEADER:X-Spam(10,2,:% )
would cause the field separators to be any of colon, percent, or
space (there is a space character between the percent and the
right parenthesis). The first field runs from the start of the
header value up to the first colon, percent, or space; the
second goes from there to the next; and so on. In order to use a
comma character as a field separator you must escape it by
preceding it with a backslash (\). The same is true of the
backslash character itself. There is one further optional
argument. It is an R or an L to specify right or left adjustment
of the text within the field. The default is to left justify,
however if you are displaying numbers you might prefer to right
justify.
Here's an example of a SpamAssassin header. The exact look of
the header will vary, but if your incoming mail contains headers
that look like the following
X-Spam-Status: Yes, hits=10.6 tagged_above=-999.0 required=7.0
tests=BAYE...
you might want to display the hits value. The first field starts
with the Y in Yes. To get what you're interested in you might
use "=" and space as the field separators and display the third
field, like
HEADER:X-Spam-Status(4,3,= )
or maybe you would break at the dot instead
HEADER:X-Spam-Status(2,2,=.,R)
Another example we've seen has headers that look like
X-Spam: Gauge=IIIIIII, Probability=7%, Report=...
Because there are two equals and a comma before the 7% and a
comma after it, the token
HEADER:X-Spam-Status(3,4,=\,,R)
should display the probability (for example 7% or 83%) right
justified in a 3-wide field.
ARROW
This gives an alternative way to display the current message in
the MESSAGE INDEX screen. Usually the current message is
indicated by the line being shown in reverse video. Instead, if
the ARROW token is included in your Index-Format, the current
line will include an "arrow" that looks like
->
in the ARROW token's field. For all of the non-current messages,
the ARROW field will be filled with blanks. If you use the
fixed-field width feature the length of the "arrow" may be
adjusted. The arrow will be drawn as width-1 dashes followed by
a greater than sign. For example, if you use ARROW(3) you will
get
-->
and ARROW(1) will give you just
>
It is also possible to set the color of the ARROW field. By
default (and for non-current messages) the arrow is colored the
same as the index line it is part of. You may set it to be
another color with the Index Arrow Color option available from
the Setup Kolor screen.
SCORE
This gives the score of each message. This will be six columns
wide to accomodate the widest possible score. You will probably
want to use the Index-Format fixed-field width feature to limit
the width of the field to the widest score that you use (e.g.
SCORE(3) if your scores are always between 0 and 999). If you
have not defined any score rules the scores will all be zero. If
any of your score rules contain AllText or BodyText patterns
then including SCORE in the Index-Format may slow down the
display of the MESSAGE INDEX screen.
_Tokens Available for all but Index-Format_
CURNEWS
This token represents the current newsgroup if there is one. For
example, "comp.mail.pine".
MSGID
This token represents the message ID of the message. This token
does not work with Filter Rule folder names.
CURDATE
This token represents the current date. It has the format MMM
DD. For example, "Oct 23".
CURDATEISO
This token represents the current date. It has the format
YYYY-MM-DD. For example, "1998-10-23".
CURDATEISOS
This token represents the current date. It has the format
YY-MM-DD. For example, "98-10-23".
CURPREFDATE
This token represents the current date. It is your operating
system's idea of the preferred date representation for the
current locale. Internally it uses the %x version of the date
from the strftime routine.
CURPREFTIME
This token represents the current time. It is the preferred time
representation for the current locale. Internally it uses the %X
version of the time from the strftime routine.
CURPREFDATETIME
This token represents the current date and time. It is the
preferred date and time representation for the current locale.
Internally it uses the %c version of the time from the strftime
routine.
CURTIME24
This token represents the current time. It has the format HH:MM.
For example, "17:28".
CURTIME12
This token represents the current time. This time is for a 12
hour clock. It has the format HH:MMpm. For example, "5:28pm" or
"11:13am".
CURDAY
This token represents the current day of the month. For example,
"23" or "9".
CURDAY2DIGIT
This token represents the current day of the month. For example,
"23" or "09". It is always 2 digits.
CURDAYOFWEEK
This token represents the current day of the week. For example,
"Sunday" or "Wednesday".
CURDAYOFWEEKABBREV
This token represents the current day of the week. For example,
"Sun" or "Wed".
CURMONTH
This token represents the current month. For example, "10" or
"9".
CURMONTH2DIGIT
This token represents the current month. For example, "10" or
"09". It is always 2 digits.
CURMONTHLONG
This token represents the current month. For example, "October".
CURMONTHABBREV
This token represents the current month. For example, "Oct".
CURYEAR
This token represents the current year. For example, "1998" or
"2001".
CURYEAR2DIGIT
This token represents the current year. For example, "98" or
"01". It is always 2 digits.
LASTMONTH
This token represents last month. For example, if this is
November (the 11th month), it is equal to "10" or if this is
October (the 10th month), it is "9". It is possible that this
and the other tokens beginning with LASTMONTH below could be
useful when used with a Filtering Rule that has the "Beginning
of Month" option set.
LASTMONTH2DIGIT
This token represents last month. For example, if this is
November (the 11th month), it is equal to "10" or if this is
October (the 10th month), it is "09". It is always 2 digits.
LASTMONTHLONG
This token represents last month. For example, if this is
November the value is "October".
LASTMONTHABBREV
This token represents last month. For example, if this is
November the value is "Oct".
LASTMONTHYEAR
This token represents what the year was a month ago. For
example, if this is October, 1998, it is "1998". If this is
January, 1998, it is "1997".
LASTMONTHYEAR2DIGIT
This token represents what the year was a month ago. For
example, if this is October, 1998, it is "98". If this is
January, 1998, it is "97".
LASTYEAR
This token represents last year. For example, if this is 1998,
it equals "1997". It is possible that this could be useful when
used with a Filtering Rule that has the "Beginning of Year"
option set.
LASTYEAR2DIGIT
This token represents last year. For example, if this is 1998,
it equals "97". It is always 2 digits.
ROLENICK
This token represents the nickname of the role currently being
used. If no role is being used, then no text will be printed for
this token. This token does not work with Filter Rule folder
names.
_Token Available Only for Reply-Leadin_
See the help for the Reply-Leadin option, to see why you might want to
use this. Since the _Reply-Leadin_ contains free text this token must
be surrounded by underscores when used.
NEWLINE
This is an end of line marker.
_Token Available Only for Templates and Signatures_
CURSORPOS
This token is different from the others. When it is replaced it
is replaced with nothing, but it sets a _Alpine_ internal
variable which tells the composer to start with the cursor
positioned at the position where this token was. If both the
template file and the signature file contain a "CURSORPOS"
token, then the position in the template file is used. If there
is a template file and neither it nor the signature file
contains a "CURSORPOS" token, then the cursor is positioned
after the end of the contents of the template file when the
composer starts up.
Conditional Inclusion of Text for Reply-Leadin, Signatures, and Templates
Conditional text inclusion may be used with the Reply-Leadin option, in
signature files, and in template files used in roles. It may _not_ be
used with the _Index-Format_ option.
There is a limited if-else capability for including text. The if-else
condition is based on whether or not a given token would result in
replacement text you specify. The syntax of this conditional inclusion
is
_token_(match_this, if_matched [ , if_not_matched ] )
The left parenthesis must follow the underscore immediately, with no
intervening space. It means the token is expanded and the results of
that expansion are compared against the "match_this" argument. If there
is an exact match, then the "if_matched" text is used as the
replacement text. Otherwise, the "if_not_matched" text is used. One of
the most useful values for the "match_this" argument is the empty
string, "". In that case the expansion is compared against the empty
string.
Here's an example to make it clearer. This text could be included in
one of your template files:
_NEWS_("", "I'm replying to email","I'm replying to news")
If that is included in a template file which you are using while
replying to a message (because you chose to use the role it was part
of), and that message has a newsgroup header and a newsgroup in that
header, then the text
I'm replying to news
will be included in the message you are about to compose. On the other
hand, if the message you are replying to does not have a newsgroup,
then the text
I'm replying to email
would be included instead. This would also work in signature files and
in the "Reply-Leadin" option. If the "match_this", "if_matched", or
"if_not_matched" arguments contain spaces, parentheses, or commas; they
have to be quoted with double quotation marks (like in the example
above). If you want to include a literal quote in the text you must
escape the quote by preceding it with a backslash character. If you
want to include a literal backslash character you must escape it by
preceding it with another backslash.
The comma followed by "if_not_matched" is optional. If there is no
"if_not_matched" present then no text is included if the not_matched
case is true. Here's another example:
_NEWS_("", "", "This msg was seen in group: _NEWS_.")
Here you can see that tokens may appear in the arguments. The same is
true for tokens with the conditional parentheses. They may appear in
arguments, though you do have to be careful to get the quoting and
escaping of nested double quotes correct. If this was in the signature
file being used and you were replying to a message sent to
comp.mail.pine the resulting text would be:
This msg was seen in group: comp.mail.pine.
If you were replying to a message which wasn't sent to any newsgroup
the resulting text would be a single blank line. The reason you'd get a
blank line is because the end of the line is outside of the
conditional, so is always included. If you wanted to get rid of that
blank line you could do so by moving the end of line inside the
conditional. In other words, it's ok to have multi-line "if_matched" or
"if_not_matched" arguments. The text just continues until the next
double quotation, even if it's not on the same line.
Here's one more (contrived) example illustrating a matching argument
which is not the empty string.
_SMARTDATE_("Today", _SMARTDATE_, "On _DATE_") _FROM_ wrote:
If this was the value of your "Reply-Leadin" option and you were
replying to a message which was sent today, then the value of the
"Reply-Leadin" would be
Today Fred Flintstone wrote:
But if you were replying to a message sent on Oct. 27 (and that wasn't
today) you would get
On Oct 27 Fred Flintstone wrote:
Per Server Directory Configuration
This is only available if _Alpine_ was built with LDAP support. If
that's the case, there will be a Directory option underneath the Setup
command on the Main Menu. Each server that is defined there has several
configuration variables which control the behavior when using it.
_ldap-server_
This is the name of the host where an LDAP server is running.
To find out whether your organization has its own LDAP server,
contact its computing support staff.
_search-base_
This is the search base to be used on this server. It functions
as a filter by restricting your searches in the LDAP server
database to the specified contents of the specified fields.
Without it, searches submitted to this directory server may
fail. It might be something like:
O = <Your Organization Name>, C = US
or it might be blank. (Some LDAP servers actually ignore
anything specified here.)
If in doubt what parameters you should specify here, contact the
maintainers of the LDAP server.
_port_
This is the TCP port number to be used with this LDAP server. If
you leave this blank port 389 will be used.
_nickname_
This is a nickname to be used in displays. If you don't supply a
nickname the server name from "ldap-server" will be used
instead. This option is strictly for your convenience.
_use-implicitly-from-composer_
Set this feature to have lookups done to this server implicitly
from the composer. If an address doesn't look like a
fully-qualified address, it will be looked up in your address
books, and if it doesn't match a nickname there, then it will be
looked up on the LDAP servers which have this feature set. The
lookups will also be done when using the address completion
feature (TAB command) in the composer if any of the serves have
this feature set. Also see the LDAP feature
lookup-addrbook-contents and the Setup/Config feature
ldap-result-to-addrbook-add.
_lookup-addrbook-contents_
Normally implicit LDAP lookups from the composer are done only
for the strings you type in from the composer screen. In other
words, you type in something in the To or CC field and press
return, then the string is looked up. First that string is
looked up in your address books. If a match is found there, then
the results of that match are looked up again. If you place a
string in your address book that you want to have looked up on
the LDAP directory server, you need to turn on this feature. If
you set this feature for a server, you almost always will also
want to set the use-implicitly-from-composer feature. An example
might serve to best illustrate this feature.
If an LDAP lookup of "William Clinton" normally returns an entry
with an address of pres@whitehouse.gov, then you might put an
entry in your address book that looks like:
Nickname Address
bill "William Clinton"
Now, when you type "bill" into an address field in the composer
_Alpine_ will find the "bill" entry in your address book. It will
replace "bill" with "William Clinton". It will then search for
an entry with that nickname in your address book and not find
one. If this feature is set, _Alpine_ will then attempt to
lookup "William Clinton" on the LDAP server and find the entry
with address pres@whitehouse.gov.
A better way to accomplish the same thing is probably to use the
feature save-search-criteria-not-result.
_save-search-criteria-not-result_
Normally when you save the results of an LDAP directory lookup
to your address book the _results_ of the lookup are saved. If
this feature is set and the entry being saved was found on this
directory server, then the search _criteria_ is saved instead of
the _results_ of the search. When this address book entry is
used in the future, instead of copying the results from the
address book the directory lookup will be done again. This could
be useful if the copied result might become stale because the
data on the directory server changes (for example, the entry's
email address changes). You probably don't want to set this
feature if the server is at all slow or unreliable.
The way this actually works is that instead of saving the email
address in your address book, _Alpine_ saves enough information
to look up the same directory entry again. In particular, it
saves the server name and the distinguished name of the entry.
It's possible that the server administrators might change the
format of distinguished names on the server, or that the entry
might be removed from the server. If _Alpine_ notices this, you
will be warned and a backup copy of the email address will be
used. You may want to create a new entry in this case, since you
will get the annoying warning every time you use the old entry.
You may do that by Saving the entry to a new nickname in the
same address book. You will be asked whether or not you want to
use the backup email address.
A related feature in the Setup/Config screen is
ldap-result-to-addrbook-add.
_disable-ad-hoc-space-substitution_
Spaces in your input are normally handled specially. Each space
character is replaced by
* <SPACE>
in the search query (but not by "* <SPACE> *"). The reason this
is done is so the input string
Greg Donald
(which is converted to "Greg* Donald") will match the names
"Greg Donald", "Gregory Donald", "Greg F. Donald", and "Gregory
F Donald"; but it won't match "Greg McDonald". If the
"Search-Rule" you were using was "begins-with", then it would
also match the name "Greg Donaldson".
Turning on this feature will disable this substitution.
_search-type_
This affects the way that LDAP searches are done. In particular,
this tells the server where to look for the string to be
matched. If set to "name" then the string that is being searched
for will be compared with the string in the "Name" field on the
server (technically, it is the "commonname" field on the
server). "Surname" means we're looking for a match in the
"Surname" field on the server (actually the "sn" field).
"Givenname" really is "givenname" and "email" is the electronic
mail address (this is actually the field called "mail" or
"electronicmail" on the server). The other three types are
combinations of the types listed so far. "Name-or-email" means
the string should appear in either the "name" field OR the
"email" field. Likewise, "surname-or-givenname" means "surname"
OR "givenname" and "sur-or-given-or-name-or-email" means the
obvious thing.
This search _type_ is combined with the search rule to form the
actual search query.
The usual default value for this option is
"sur-or-given-or-name-or-email". This type of search may be slow
on some servers. Try "name-or-email", which is often faster, or
just "name" if the performance seems to be a problem.
Some servers have been configured with different attribute names
for these four fields. In other words, instead of using the
attribute name "mail" for the email address field, the server
might be configured to use something else, for example,
"rfc822mail" or "internetemailaddress". _Alpine_ can be
configured to use these different attribute names by using the
four per-server configuration options:
+ email-attribute
+ name-attribute
+ surname-attribute
+ givenname-attribute
_search-rule_
This affects the way that LDAP searches are done. If set to
"equals" then only exact matches count. "Contains" means that
the string you type in is a substring of what you are matching
against. "Begins-with" and "ends-with" mean that the string
starts or ends with the string you type in.
Spaces in your input are normally handled specially, but you can
turn that special handling off with the
disable-ad-hoc-space-substitution feature.
The usual default value for this option is _begins-with_.
_email-attribute_
This is the name of the attribute which is searched for when
looking for an email address. The default value for this option
is "mail" or "electronicmail". If the server you are using uses
a different attribute name for the email address, put that
attribute name here.
This will affect the search filter used if your Search-Type is
one that contains a search for "email". It will also cause the
attribute value matching this attribute name to be used as the
email address when you look up an entry from the composer.
_name-attribute_
This is the name of the attribute which is searched for when
looking for the name of the entry. The default value for this
option is "cn", which stands for common name. If the server you
are using uses a different attribute name for the name, put that
attribute name here. This will affect the search filter used if
your Search-Type is one that contains a search for "name".
_surname-attribute_
This is the name of the attribute which is searched for when
looking for the surname of the entry. The default value for this
option is "sn". If the server you are using uses a different
attribute name for the surname, put that attribute name here.
This will affect the search filter used if your Search-Type is
one that contains a search for "surname".
_givenname-attribute_
This is the name of the attribute which is searched for when
looking for the given name of the entry. The default value for
this option is "givenname". If the server you are using uses a
different attribute name for the given name, put that attribute
name here. This will affect the search filter used if your
Search-Type is one that contains a search for "givenname".
_timelimit_
This places a limit on the number of seconds the LDAP search
will continue. The default is 30 seconds. A value of 0 means no
limit. Note that some servers may place limits of their own on
searches.
_sizelimit_
This places a limit on the number of entries returned by the
LDAP server. A value of 0 means no limit. The default is 0. Note
that some servers may place limits of their own on searches.
_custom-search-filter_
This one is for advanced users only! If you define this, then
the search-type and search-rule defined are both ignored.
However, the feature disable-ad-hoc-space-substitution is still
in effect. That is, the space substitution will take place even
in a custom filter unless you disable it.
If your LDAP service stops working and you suspect it might be
because of your custom filter, just delete this filter and try
using the _search-type_ and _search-rule_ instead. Another
option that sometimes causes trouble is the search-base option.
This variable may be set to the string representation of an LDAP
search filter (see RFC1960). In the places where you want the
address string to be substituted in, put a '%s' in this filter
string. Here are some examples:
A "Search-Type" of "name" with "Search-Rule" of "begins-with" is
equivalent to the "custom-search-filter"
(cn=%s*)
When you try to match against the string "string" the program
replaces the "%s" with "string" (without the quotes). You may
have multiple "%s"'s and they will all be replaced with the
string. There is a limit of 10 "%s"'s.
A "Search-Type" of "name-or-email" with "Search-Rule" of
"contains" is equivalent to
(|(cn=*%s*)(mail=*%s*))
If your server uses a different attribute _name_ than _Alpine_
uses by default, (for example, it uses "rfc822mail" instead of
"mail"), then you may be able to use one or more of the four
attribute configuration options instead of defining a custom
filter:
+ email-attribute
+ name-attribute
+ surname-attribute
+ givenname-attribute
Color Configuration
If the terminal or terminal emulator you are using is capable of using
color (see color-style option), or if you are using _PC-Alpine_, then
it is possible to set up _Alpine_ so that various parts of the display
will be shown in colors you configure. This is done using the Setup
Color screen. The Setup Color screen is divided into five broad
sections: Options, General Colors, Index Colors, Header Colors, and
Keyword Colors. In addition to these five categories you may also color
lines in the MESSAGE INDEX screen by configuring the Index Line Color.
Each color is defined as a foreground color (the color of the actual
text) and a background color (the color of the area behind the text).
Color Options
_current-indexline-style_
This option affects the colors used to display the current line
in the MESSAGE INDEX screen. If you do not have Index Line
Colors defined, then this option will have no effect in the
index. Those Rules may be defined by going to the
Setup/Rules/Indexcolor screen.
If the option enable-incoming-folders-checking is turned on and
the Incoming Unseen Color is set to something other than the
default, then this option also affects the color used to display
the current folder in the Incoming FOLDER LIST screen.
The available options include:
flip-colors
This is the default. If an index line is colored because
it matches one of your Index Color Rules, then its colors
will be reversed when it is the currently highlighted
line. For example, if the line is normally red text on a
blue background, then when it is the current line it will
be drawn as blue text on a red background.
The rest of the option values all revert to this
flip-colors behavior if there is no Reverse Color defined.
reverse
With this option the Reverse color is always used to
highlight the current line.
reverse-fg
The foreground part of the Reverse Color is used to
highlight the current line. If this would cause the text
to be unreadable (because the foreground and background
colors are the same) or if it would cause no change in the
color of the index line, then the colors are flipped
instead.
Some people think this works particularly well if you use
different background colors to emphasize "interesting"
lines, but always with the same Normal foreground color,
and you use a different foreground color for the Reverse
Color.
reverse-fg-no-ambiguity
With the "reverse-fg" rule above, it is possible that the
resulting color will be exactly the same as the regular
Reverse Color. That can lead to some possible confusion
because an "interesting" line which is the current line
will be displayed exactly the same as a non-interesting
line which is current. You can't tell whether the line is
just a regular current line or if it is an "interesting"
current line by looking at the color. Setting the option
to this value removes that ambiguity. It is the same as
the "reverse-fg" setting unless the resulting interesting
current line would look just like a non-interesting
current line. In that case, the interesting line's colors
are simply flipped (like in the default behavior).
As an alternative way to preserve the line's
interestingness in this case, you may find that using both
a different foreground and a different background color
for the interesting line will help.
reverse-bg
The background part of the Reverse Color is used to
highlight the current line. If this would cause the text
to be unreadable (because the foreground and background
colors are the same) or if it would cause no change in the
color of the index line, then the colors are flipped
instead.
Some people think this works particularly well if you use
different foreground colors to emphasize "interesting"
lines, but always with the same Normal background color,
and you use a different background color for the Reverse
Color.
reverse-bg-no-ambiguity
As with the "reverse-fg" case, the "reverse-bg" rule may
also result in a color which is exactly the same as the
regular Reverse Color. Setting the option to this value
removes that ambiguity. It is the same as the "reverse-bg"
setting unless the resulting current line has the same
color as the Reverse Color. In that case, the interesting
line's colors are simply flipped (like in the default
behavior).
_titlebar-color-style_
This option affects the colors used to display the titlebar (the
top line on the screen) when viewing a message.
The available options include:
default
The color of the titlebar will be the color you set for
the Title Color. The Title Color may be set by using the
indexline
The color of the titlebar will be the same as the color of
the index line corresponding to the message being viewed.
The rules which determine what color the index line will
be may be set up by going to the Setup/Rules/Indexcolor
screen. If the index line for a message is not colored
explicitly by the Indexcolor rules, then the titlebar will
be colored the same as for the "default" option above
(which is not the same color that the index line itself
will have).
reverse-indexline
This is similar to the "indexline" option except the
foreground and background colors from the corresponding
index line will be reversed. For example, if the index
line color is red letters on a white background, then the
titlebar will be white letters on a red background. If the
index line for a message is not colored explicitly by the
Indexcolor rules, then the titlebar will be colored the
same as for the "default" option above (which is not the
same color that the index line itself will have).
General Colors
_Normal Color_
This is the color which most of the screen is painted in. By
default this color is black characters on a white background.
_Reverse Color_
The color _Alpine_ uses for reverse video characters. Actually,
the name is misleading. This used to be reverse video and so the
name remains. It is still used to highlight certain parts of the
screen but the color may be set to whatever you'd like.
_Title Color_
The color _Alpine_ uses for the titlebar (the top line on the
screen). By default, the Title Color is black characters on a
yellow background. The actual titlebar color may be different
from the Title Color if the option titlebar-color-style is set
to some value other than the default. It may also be different
if the current folder is closed and the Title Closed Color is
set to something different from the Title Color.
_Title-closed Color_
The color _Alpine_ uses for the titlebar (the top line on the
screen) when the current folder is closed. By default, the Title
Color Closed Color is white characters on a red background.
_Status Color_
The color _Alpine_ uses for messages written to the status
message line near the bottom of the screen. By default, the
Status Color is the same as the Reverse Color.
_KeyLabel Color_
The color _Alpine_ uses for the labels of the commands in the
two-line menu at the bottom of the screen. The label is the long
name, for example, "PrevMsg". By default, the KeyLabel Color is
the same as the Normal Color.
WARNING: Some terminal emulators have the property that the
screen will scroll down one line whenever a character is written
to the character cell in the lower right corner of the screen.
_Alpine_ can usually avoid writing a character in that corner of
the screen. However, if you have defined a KeyLabel Color then
_Alpine_ does have to write a character in that cell in order to
color the cell correctly. If you find that your display
sometimes scrolls up a line this could be the problem. The most
obvious symptom is probably that the titlebar at the top of the
screen scrolls off the screen. Try setting KeyLabel Color to
Default to see if that fixes the problem.
_KeyName Color_
The color _Alpine_ uses for the names of the commands in the
two-line menu at the bottom of the screen. The KeyName is the
shorter name in the menu. For example, the "W" before the
"WhereIs". By default, the KeyName Color is the same as the
Normal Color.
_Selectable-item Color_
The color _Alpine_ uses for displaying selectable items, such as
URLs. By default, the Selectable-item Color is the same as the
Normal Color, except it is also Bold.
_Meta-message Color_
The color _Alpine_ uses in the MESSAGE TEXT screen for messages
to you that aren't part of the message itself. By default, the
Meta-Message Color is black characters on a yellow background.
_Quote Colors_
The colors _Alpine_ uses for coloring quoted text in the MESSAGE
TEXT screen. If a line begins with a > character (or space
followed by >) it is considered a quote. That line will be given
the Quote1 Color (first level quote). If there is a second level
of quoting then the Quote2 Color will be used. _Alpine_
considers there to be a second level of quoting if that first >
is followed by another > (or space followed by >). If there are
characters other than whitespace and > signs, then it isn't
considered another level of quoting. Similarly, if there is a
third level of quoting the Quote3 Color will be used. If there
are more levels after that the Quote Colors are reused. If you
define all three colors then it would repeat like Color1,
Color2, Color3, Color1, Color2, Color3, ... If you only define
the first two it would be Color1, Color2, Color1, Color2, ... If
you define only the Quote1 Color, then the entire quote would be
that color regardless of the quoting levels. By default, the
Quote1 Color is black characters on a greenish-blue background;
the Quote2 Color is black characters on a dull yellow
background; and the Quote3 Color is black characters on a green
background.
_Incoming Unseen Color_
If the option enable-incoming-folders-checking is turned on it
is possible to highlight the folders that contain unseen
messages by coloring them with this color. By default, this is
the same as the Normal Color and no highlighting is done.
Usually the "current" folder (the folder the cursor is on) is
highlighted using reverse video. If the current folder is
colored because it contains unseen messages then the color used
to show that it is also the current folder is controlled by the
current-indexline-style feature at the top of the SETUP COLOR
screen.
_Signature Color_
The color _Alpine_ uses for coloring the signature in the
MESSAGE TEXT screen. According to USENET conventions, the
signature is defined as the paragraph following the "sigdashes",
that is, the special line consisting of the three characters
"-- " (i.e., dash, dash, and space). _Alpine_ allows for one
empty line right after the sigdashes to be considered as part of
the signature. By default, the Signature Color is blue
characters on a white background.
_Prompt Color_
The color _Alpine_ uses for confirmation prompts and questions
which appear in the status message line near the bottom of the
screen. By default, the Prompt Color is the same as the Reverse
Color.
Index Colors
You may add color to the single character symbols which give the status
of each message in the MESSAGE INDEX. By default the characters "+",
"*", "D", "A", and "N" show up near the left hand side of the screen,
depending on whether the message is addressed to you, and whether the
message is marked Important, is Deleted, is Answered, or is New. You
may set the color of those symbols. By default, all of these symbols
are drawn with the same color as the rest of the index line they are a
part of.
Besides coloring the message status symbols, you may also color the
entire index line. This is done by using the Index Line Color
configuration screen. It is also possible to color (keywords in the
index using the Setup/Kolor screen (Keyword Colors); the ARROW cursor;
the Subject using Index Subject Color; the From using Index From Color;
and the Index Opening text.
_Index-to-me Symbol Color_
The color used for drawing the "+" symbol which signifies a
message is addressed directly to you.
_Index-important Symbol Color_
The color used for drawing the "*" symbol which signifies a
message has been flagged Important.
_Index-deleted Symbol Color_
The color used for drawing the "D" symbol which signifies a
message has been marked Deleted.
_Index-answered Symbol Color_
The color used for drawing the "A" symbol which signifies a
message has been answered.
_Index-new Symbol Color_
The color used for drawing the "N" symbol which signifies a
message is New.
_Index-recent Symbol Color_
The color used for drawing the "R" symbol which signifies a
message is Recent (only visible if the "IMAPSTATUS" or
"SHORTIMAPSTATUS" token is part of the index-format option).
_Index-unseen Symbol Color_
The color used for drawing the "U" symbol which signifies a
message is Unseen (only visible if the "IMAPSTATUS" or
"SHORTIMAPSTATUS" token is part of the Index-Format option).
_Index-priority Symbol Colors_
The colors used for drawing the tokens "PRIORITY",
"PRIORITYALPHA", and "PRIORITY!" when these are configured as
part of the Index-Format option. You may set the color used to
draw these tokens by use of the colors Index High Priority
Symbol Color and Index Low Priority Symbol Color. This coloring
takes place for all but the current index line, and the Priority
Color appears to be in front of any color from an Index Color
Rule. If the priority has a value of 1 or 2 the High Priority
color will be used, and if the value is 4 or 5 the Low Priority
color will be used.
If you don't set these colors the index line will be colored in
the same color as the bulk of the index line.
_Index-arrow Symbol Color_
The color used for drawing the "ARROW" token when it is
configured as part of the Index-Format option.
_Index-subject Symbol Color_
You may set the color used to draw the Subject part of the index
line. This coloring takes place for all but the current index
line, and the Subject Color appears to be in front of any color
from an Index Color Rule.
If you don't set this color it will be colored in the same color
as the bulk of the index line.
_Index-from Symbol Color_
You may set the color used to draw the From part of the index
line. This coloring takes place for all but the current index
line, and the From Color appears to be in front of any color
from an Index Color Rule.
If you don't set this color it will be colored in the same color
as the bulk of the index line.
_Index-opening Symbol Color_
It is possible to configure the Index-Format option so that it
includes the subject followed by the "opening" text of the
message if there is enough space. This is done by using one of
the tokens SUBJECTTEXT, SUBJKEYTEXT, or SUBJKEYINITTEXT. The
color used for drawing this opening text is given by this
option. The coloring happens for all but the current index line,
and this opening color appears to be in front of any color from
an Index Color Rule.
By default the Index Opening Color is gray characters on a white
background.
The default colors for these symbols are:
Index-to-me black on cyan
Index-important white on bright red
Index-deleted same as Normal Color
Index-answered bright red on yellow
Index-new white on magenta
Index-recent same as Normal Color
Index-unseen same as Normal Color
Header Colors
You may add color to the header fields in the MESSAGE TEXT screen. The
_Header-general Color_
may be used to color all of the headers of the message.
It is also possible to set the colors for specific header fields, for
example for the Subject or From fields, using the viewer-hdr-colors
option.
For Header Colors, there is an additional line on the configuration
screen labeled "Pattern to match". If you leave that blank, then the
whole field for that header will always be colored. However, if you
give a pattern to match, the coloring will only take place if there is
a match for that pattern in the value of the field. For example, if you
are working on a color for the Subject header and you fill in a pattern
of "important", then only Subjects which contain the word "important"
will be colored. For address fields like From or To, a pattern match
will cause only the addresses which match the pattern to be colored.
If the pattern you enter is a comma-separated list of patterns, then
coloring happens if any of those patterns matches.
Keyword Colors
Sets the colors _Alpine_ uses for Keyword fields in the MESSAGE INDEX
screen. Keywords may be displayed as part of the Subject of a message
by using the "SUBJKEY" or "SUBJKEYINIT" tokens in the Index-Format
option. Keywords may also be displayed in a column of their own in the
MESSAGE INDEX screen by using the "KEY" or "KEYINIT" tokens.
For example, you might have set up a Keyword "Work" using the Keywords
option in the Setup/Config screen. You could cause that Keyword to show
up as a special color by setting up the Keyword Color using this
option, and then including it in the MESSAGE INDEX screen using one of
the tokens listed above in the Index-Format.
Index Line Colors
You may color whole index lines by using roles. This isn't configured
in the Setup Colors screen, but is configured in the Setup Rules
IndexColor screen.
Index Line Color Configuration
Index Line Color causes lines in the MESSAGE INDEX screen to be
colored. This action is only available if your terminal is capable of
displaying color and color display has been enabled with the
Color-Style option. (In PC-Alpine, color is always enabled so there is
no option to turn on.)
Each rule has a "Pattern", which is used to decide which of the rules
is used; and the color which is used if the Pattern matches a
particular message.
Rule Patterns
In order to determine whether or not a message matches a rule the
message is compared with the rule's Pattern. These Patterns are the
same for use with Roles, Filtering, Index Coloring, Scoring, Other
Rules, and Search Rules, so are described in only one place, "here".
Index Line Color
This is the color that index lines are colored when there is a matching
Pattern. This colors the whole index line, except possibly the status
letters which may be colored separately using the Setup Kolor screen.
Role Configuration
You may play different roles depending on who you are replying to. For
example, if you are replying to a message addressed to _help-desk_ you
may be acting as a Help Desk Worker. That role may require that you use
a different return address and/or a different signature.
Roles are optional. If you set up roles they work like this: Each role
has a set of "Uses", which indicate whether or not a role is eligible
to be considered for a particular use; a "Pattern", which is used to
decide which of the eligible roles is used; and a set of "Actions",
which are taken when that role is used. When you reply to a message,
the message you are replying to is compared with the Patterns of the
roles marked as eligible for use when replying. The comparisons start
with the first eligible role and keep going until there is a match. If
a match is found, the matching role's Actions are taken.
It is also possible to set a default role and to change that role
during your _Alpine_ session. When you start _Alpine_ no default role
will be set. You may set or change the current default role by using
the "D" command in the role selection screen. You'll see that screen
while composing a message and being asked to select a role. An easy way
to get to that screen is to use the Role Command to compose a message.
You may find a default role useful if you normally perform the duties
of one of your roles for a while, then you switch to another role and
stay in the new role for another period of time. It may be easier than
using the Role Command to select the role each time you compose a
message.
Role Uses
There are three types of use to be configured; one for Replying, one
for Forwarding, and one for Composing. These indicate whether or not
you want a role to be considered when you type the Reply, Forward, or
Compose commands. (The Role command is an alternate form of the Compose
command, and it is not affected by these settings.) Each of these Use
types has three possible values. The value "Never" means that the role
will never be considered as a candidate for use with the corresponding
command. For example, if you set a role's Reply Use to Never, then when
you Reply to a message, the role won't even be considered. (That isn't
quite true. If the message you are replying to matches some other role
which requires confirmation, then there will be a ^T command available
which allows you to select a role from all of your roles, not just the
reply-eligible roles.)
The options "With confirmation" and "Without confirmation" both mean
that you do want to consider this role when using the corresponding
command. For either of these settings the role's Pattern will be
checked to see if it matches the message. For Reply Use, the message
used to compare the Patterns with is the message being replied to. For
Forward Use, the message used to compare the Pattern with is the
message being forwarded. For Compose Use, there is no message, so the
parts of the Pattern which depend on a message (everything other than
Current Folder Type) are ignored. In all cases, the Current Folder is
checked if defined. If there is a match then this role will either be
used without confirmation or will be the default when confirmation is
asked for, depending on which of the two options is selected. If
confirmation is requested, you will have a chance to choose No Role
instead of the offered role, or to change the role to any one of your
other roles (with the ^T command).
Role Patterns
In order to determine whether or not a message matches a role the
message is compared with the Role Pattern. These Patterns are the same
for use with Roles, Filtering, Index Coloring, Scoring, Other Rules,
and Search Rules, so are described in only one place, "here".
Since header patterns, AllText patterns, and BodyText patterns which
are unset are ignored, a role which has all header patterns unset, the
AllText pattern unset, the BodyText pattern unset, the Score Interval
unset, and the Current Folder Type set to "Any" may be used as a
default role. It should be put last in the list of roles since the
matching starts at the beginning and proceeds until one of the roles is
a match. If no roles at all match, then _Alpine_ will use its regular
methods of defining the role. If you wanted to, you could define a
different "default" role for Replying, Forwarding, and Composing by
setting the "Use" fields appropriately.
Role Actions
Once a role match is found, the role's Actions are taken. For each role
there are several possible actions that may be defined. They are
actions to set the From address, the Reply-To address, the Fcc, the
Signature file, and the Template file.
Initialize Settings Using Role
This is a power user feature. You will usually want to leave this field
empty. The value of this field is the nickname of another one of your
roles. The Action values from that other role are used as the initial
values of the Action items for this role. If you put something in any
of the action fields for this role, that will override whatever was in
the corresponding field of the initializer role.
You might use this field if the "Action" part of one of your roles is
something you want to use in more than one role. Instead of filling in
those action values again for each role, you may give the nickname of
the role where the values are filled in. It's just a shortcut way to
define Role Actions.
Here's an example to help explain how this works. Suppose you have a
role with nickname "role1" and role1 has (among other things)
Set Reply-To = The Pres <president@example.com>
set. If in "role2" you set "Initialize settings using role" to "role1",
then role2 will inherit the Set Reply-To value from role1 by default
(and any of the other inheritable action values that are set). So if
role2 had
Set Reply-To = <No Value Set>
defined, the Reply-To used with role2 would be "The Pres
<president@example.com>" However, if role2 had
Set Reply-To = VP <vicepresident@example.com>
defined, then the Reply-To used with role2 would be "VP
<vicepresident@example.com>" instead.
If you wish, you may choose a nickname from your list of roles by using
the "T" command. If the role you are using to initialize also has a
role it initializes from, then that initialization happens first. That
is, inheritance works as expected with the grandparent and
great-grandparent (and so on) roles having the expected effect.
Set From
This field consists of a single address which will be used as the From
address on the message you are sending. This should be a
fully-qualified address like
Full Name <user@domain>
or just
user@domain
If this is left blank, then the normal From address will be used.
Set Reply-To
The Reply-To address is the address used on the Reply-To line of the
message you are sending. You don't need a Reply-To address unless it is
different from the From address. This should be a fully-qualified
address like
Full Name <user@domain>
or just
user@domain
If this is left blank, then there won't be a Reply-To address unless
you have configured one specially with the customized-hdrs
configuration option.
Set Other-Hdrs
This field gives you a way to set values for headers besides "From" and
"Reply-To". If you want to set either of those, use the specific "Set
From" and "Set Reply-To" settings.
This field is similar to the customized-hdrs option. Each header you
specify here must include the header tag ("To:", "Approved:", etc.) and
may optionally include a value for that header. In order to see these
headers when you compose using this role you must use the rich header
command. Here's an example which shows how you might set the To
address.
Set Other Hdrs = To: Full Name <user@domain>
Headers set in this way are different from headers set with the
customized-hdrs option in that the value you give for a header here
will replace any value that already exists. For example, if you are
Replying to a message there will already be at least one address in the
To header (the address you are Replying to). However, if you Reply
using a role which sets the To header, that role's To header value will
be used instead. The customized-hdrs headers are defaults.
Limitation: Because commas are used to separate the list of Other
Headers, it is not possible to have the value of a header contain a
comma; nor is there currently an "escape" mechanism provided to make
this work.
Set Fcc
This field consists of a single folder name which will be used in the
Fcc field of the message you are sending. You may put anything here
that you would normally type into the Fcc field from the composer.
In addition, an fcc of "" (two double quotation marks) means no Fcc.
A blank field here means that _Alpine_ will use its normal rules for
deciding the default value of the Fcc field. For many roles, perhaps
most, it may make more sense for you to use the other _Alpine_
facilities for setting the Fcc. In particular, if you want the Fcc to
depend on who you are sending the message to then the fcc-name-rule is
probably more useful. In that case, you would want to leave the Fcc
field here blank. However, if you have a role that depends on who the
message you are replying to was From, or what address that message was
sent to; then it might make sense to set the Fcc for that role here.
Set LiteralSig
This field contains the actual text for your signature, as opposed to
the name of a file containing your signature. If this is defined it
takes precedence over any value set in the _Set Signature_ field.
This is simply a different way to store the signature. The signature is
stored inside your Alpine configuration file instead of in a separate
signature file. Tokens work the same way they do with _Set Signature_.
The two character sequence \n (backslash followed by the character n)
will be used to signify a line-break in your signature. You don't have
to enter the \n, but it will be visible in the CHANGE THIS ROLE RULE
window after you are done editing the signature.
Set Signature
The Signature is the name of a file to be used as the signature file
when this role is being used. If the filename is followed by a vertical
bar (|) then instead of reading the contents of the file the file is
assumed to be a program which will produce the text to be used on its
standard output. The program can't have any arguments and doesn't
receive any input from _Alpine_, but the rest of the processing works
as if the contents came from a file.
Signature files may be stored remotely on an IMAP server. In order to
do that you just give the file a remote name. This works just like the
regular signature-file option which is configured from the
Setup/Configuration screen. A remote signature file name might look
like:
{myimaphost.myschool.k12.wa.us}mail/sig3
or, if you have an SSL-capable version of _Alpine_, you might try
{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/sig3
Once you have named the remote signature file you create its contents
by using the "F" "editFile" command when the cursor is on the "Set
Signature" line of the role editor.
Besides containing regular text, a signature file may also contain (or
a signature program may produce) tokens which are replaced with text
which depends on the message you are replying to or forwarding. The
tokens all look like _word_ (a word surrounded by underscores). For
example, if the token
_DATE_
is included in the text of the signature file, then when you reply to
or forward a message, the token will be replaced with the actual date
the message you are replying to or forwarding was sent.
If you use a role which has a signature file for a plain composition
(that is, not a reply or forward) then there is no original message, so
any tokens which depend on the message will be replaced with nothing.
So if you want a signature file to be useful for new compositions it
shouldn't include any of the tokens which depend on the message being
replied to or forwarded.
The list of available tokens is here.
Actually, for the adventurous, there is a way to conditionally include
text based on whether or not a token would result in specific
replacement text. For example, you could include some text based on
whether or not the _NEWS_ token would result in any newsgroups if it
was used. It's explained in detail here.
In the very unlikely event that you want to include a literal token in
a signature file, you must precede it with a backslash character. For
example, to include the literal text _DATE_ you must actually use
\_DATE_. It is not possible to have a literal backslash followed by an
expanded token.
A blank field here means that _Alpine_ will use its normal rules for
deciding which file (if any) to use for the signature file.
Set Template
A Template is the name of a file to be included in the message when
this role is being used. The template file is a file which is included
at the top of the message you are composing.
If the filename is followed by a vertical bar (|) then instead of
reading the contents of the file the file is assumed to be a program
which will produce the text to be used on its standard output. The
program can't have any arguments and doesn't receive any input from
_Alpine_, but the rest of the processing works as if the contents came
from a file.
Template files may be stored remotely on an IMAP server. In order to do
that you just give the file a remote name. This works just like the
regular signature-file option which is configured from the
Setup/Configuration screen. A remote template file name might look
like:
{myimaphost.myschool.k12.wa.us}mail/templ3
or, if you have an SSL-capable version of _Alpine_, you might try
{myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/templ3
Once you have named the remote template file you create its contents by
using the "F" "editFile" command when the cursor is on the "Set
Template" line of the role editor.
Besides containing regular text, a template file may also contain (or a
template file program may produce) tokens which are replaced with text
which depends on the message you are replying to or forwarding. The
tokens all look like _word_ (a word surrounded by underscores). For
example, if the token
_DATE_
is included in the text of the template file, then when you reply to or
forward a message, the token will be replaced with the actual date the
message you are replying to or forwarding was sent.
If you use a role which has a template file for a plain composition
(that is, not a reply or forward) then there is no original message, so
any tokens which depend on the message will be replaced with nothing.
So if you want a template file to be useful for new compositions it
shouldn't include any of the tokens which depend on the message being
replied to or forwarded.
The list of available tokens is here.
Actually, for the adventurous, there is a way to conditionally include
text based on whether or not a token would result in specific
replacement text. For example, you could include some text based on
whether or not the _NEWS_ token would result in any newsgroups if it
was used. It's explained in detail here.
In the very unlikely event that you want to include a literal token in
a template file, you must precede it with a backslash character. For
example, to include the literal text _DATE_ you must actually use
\_DATE_. It is not possible to have a literal backslash followed by an
expanded token.
A blank field here means that _Alpine_ will not use a template file
when this role is being used.
Use SMTP Server
If this field has a value, then it will be used as the SMTP server to
send mail when this role is being used (unless the SMTP server variable
is set in the system-wide fixed configuration file). It has the same
semantics as the smtp-server variable in the Setup/Config screen. When
you postpone the composition this SMTP server list will be saved with
the postponed composition and it cannot be changed later. Because of
that, you may want to make this a list of SMTP servers with the
preferred server at the front of the list and alternate servers later
in the list.
If any of the actions are left unset, then the action depends on what
is present in the "Initialize settings using role" field. If you've
listed the nickname of another one of your roles there, then the
corresponding action from that role will be used here. If that action
is also blank, or if there is no nickname specified, then _Alpine_ will
do whatever it normally does to set these actions. This depends on
other configuration options and features you've set.
Filtering Configuration
The software which actually delivers mail (the stuff that happens
before _Alpine_ is involved) for you is in a better position to do mail
filtering than _Alpine_ itself. If possible, you may want to look into
using that sort of mail filtering to deliver mail to different folders,
delete it, or forward it. However, if you'd like _Alpine_ to help with
this, _Alpine_'s filtering is for you.
Filtering is a way to automatically move certain messages from one
folder to another or to delete messages. It can also be used to set
message status bits (Important, Deleted, New, Answered). _Alpine_
doesn't have the ability to forward mail to another address.
Each filtering rule has a "Pattern" and a "Filter Action". When a
folder is opened, when new mail arrives in an open folder, or when mail
is Expunged from a folder; each message is compared with the Patterns
of your filtering rules. The comparisons start with the first rule and
keep going until there is a match. If a match is found, the message may
be deleted or moved, depending on the setting of the Filter Action. If
the message is not deleted, it may have its status altered.
For efficiency, each message is usually only checked once. When new
mail arrives, the new messages are checked but not the old. There are
some exceptions to this rule. The expunge command will cause all
messages to be rechecked, as will editing of the filtering rules.
_NOTE:_ When setting up a Pattern used to delete messages, it is
recommended that you test the Pattern first with a "Move" folder
specified in case unintended matches occur. Messages that are deleted
will be removed from the folder and _unrecoverable_ from within _Alpine_
after the next Expunge command or once the folder being filtered has
been closed.
Filter Patterns
In order to determine whether or not a message matches a filter the
message is compared with the Filter's Pattern. These Patterns are the
same for use with Roles, Filtering, Index Coloring, Scoring, Other
Rules, and Search Rules, so are described in only one place, "here".
Since filtering is a potentially destructive action, if you have a
filtering Pattern with nothing other than Current Folder Type set, that
filtering rule is ignored.
Filter Actions
Once a filter match is found for a particular message, there are some
actions which may be taken. First, the message may have its status
changed. This is the same message status that you can manipulate
manually using the Flag Command. There are four elements of message
status that you can control. You can set or clear the Important status,
the New status, the Deleted status, and the Answered status. Of course,
if the filter is going to delete the message, then there is no point in
setting message status. You may also set or clear user-defined keywords
for a message.
Second, the filter may delete or move the message. Deleting the message
marks it Deleted and removes it from view. It is effectively gone
forever (though it technically is still there until the next expunge
command, which may happen implicitly). Moving the message moves it from
the open folder into the folder listed on the "Folder List" line of the
filter configuration. If you list more than one folder name (separated
by commas) then the message will be copied to each of those folders. In
any case, if "Delete" or "Move" is set then the message is removed from
the current folder. If you just want to set the messages status without
deleting it from the folder, then set the filter action to "Just Set
Message Status".
(There is no way to do a Copy instead of a Move, due to the
difficulties involved in keeping track of whether or not a message has
already been copied by a previous _Alpine_ session.)
Move-only-if-not-deleted option
If you have specified a Move to Folder to filter messages into, then
this option has an effect. If this option is set then messages will
only be moved into the specified folder if they aren't already marked
deleted. This might be useful if you have more than one _Alpine_
session running simultaneously and you don't want messages to be
filtered into a folder more than once. This method is not foolproof.
There may be cases where a message gets marked deleted and so it is
never filtered into the folder. For example, if you deleted it in
another _Alpine_ or another mail program that didn't know about the
filtering rule.
This option has no effect if the Filter Action is not set to Move.
Dont-quit-even-if-rule-matches option
If this option is set then this is a non-terminating rule. Usually, for
each message, _Alpine_ searches through the filter rules until a match
is found and then it performs the action associated with that rule.
Rules following the match are not considered. If this option is set
then the search for matches will continue at the next rule.
If a non-terminating rule matches then the actions associated with that
rule, except for any implied deletion of the message, are performed
before the match for the next rule is checked. For example, if the
non-terminating rule sets the Important status, then that status will
be set when the next rule is considered. However, if the
non-terminating rule Moves the message, the message will actually be
copied instead of copied and deleted so that it is still there for the
next rule. A moved message is deleted after all the relevant rules have
been checked. The name of the "Move" action is confusing in this case
because a single message can be moved to more than one folder. It turns
the Move into a Copy instead, but it is still followed by a deletion at
the end.
This option may be useful if you want to have a single message filtered
to two different folders because it matches two different Patterns. For
example, suppose you normally filter messages to a particular mailing
list into one folder, and messages addressed directly to you into a
second folder. If a message is sent to both you and the list (and you
can tell that by looking at the headers of the message) this option may
give you a convenient way to capture a copy to each folder. (It may
also cause you to capture two copies to each folder, depending on
whether your mail system delivers one or two copies of the message to
you and on how the list works.)
Scoring Configuration
Most people will not use scores at all, but if you do use them, here's
how they work in Alpine. Using this screen, you may define Scoring
rules. The score for a message is calculated by looking at every Score
rule defined and adding up the Score Values for the ones which match
the message. If there are no matches for a message, it has a score of
zero. Message scores may be used a couple of ways in Alpine.
Sorting by Score
One of the methods you may use to sort message indexes is to sort by
score. The scores of all the messages in a folder will be calculated
and then the index will be ordered by placing the messages in order of
ascending or descending score.
Scores for use in Patterns
The Patterns used for Roles, Index Line Coloring, and Filtering have a
category labeled "Score Interval". When a message is being compared
with a Pattern to check for a match, if the Score Interval is set only
messages which have a score somewhere in the interval are a match.
Scoring Rule Patterns
In order to determine whether or not a message matches a scoring rule
the message is compared with the rule's Pattern. These Patterns are the
same for use with Roles, Filtering, Index Coloring, Scoring, Other
Rules, and Search Rules, so are described in only one place, "here".
Actually, Scoring rule Patterns are slightly different from the other
types of Patterns because Scoring rule Patterns don't contain a Score
Interval. In other words, when calculating the score for a message,
which is done by looking at the Scoring rule Patterns, scores aren't
used.
Score Value
This is the value that will be added to the score for a message if the
rule's Pattern is a match. Each individual Score Value is an integer
between -100 and 100, and the values from matching rules are added
together to get a message's score. There is also a way to extract the
value from a particular header of each message. See the help text for
Score Value for further information.
Other Rules Configuration
Using this screen, you may define configuration Rules which don't fit
nicely into the other Rules categories.
Other Rule Patterns
Other Rules are a little different from the rest of the Rules because
they depend only on the current folder, and not on a particular
message. In order to determine whether or not a rule's actions should
be applied the current folder is compared with the rule's Pattern,
which consists of only the Current Folder Type. Current Folder Type
works the same for Other Rules as it does for Roles, Filtering, Index
Coloring, and Scoring. Keep in mind that the only part of the Pattern
which applies to Other Rules is the Current Folder Type when looking at
the description of Patterns given "here".
Other Rule Actions
Once a pattern match is found, the rule's Actions are taken. Neither of
the following two rule's depends on a message for its match. That means
that all the parts of the Pattern which depend on matching an attribute
of a message are ignored. So the only part of the Pattern that matters
for these Actions is the Current Folder Type.
Set Sort Order
When you enter a new folder, these rules will be checked to see if you
have set a sort order which is different from your default sort order.
The default is set in the Setup/Config screen with the Sort-Key option.
If the Sort Order action is set, then the folder will be displayed
sorted in that sort order instead of in the default order.
A possible point of confusion arises when you change the configuration
of the Sort Order for the currently open folder. The folder will
normally be re-sorted when you go back to viewing the index. However,
if you have manually sorted the folder with the Sort command, it will
not be re-sorted.
Set Index Format
When you enter a new folder, these rules will be checked to see if you
have set an Index Format which is different from your default Index
Format, which is set with the Index-Format option. If so, the index
will be displayed with this format instead of the default.
Set Startup Rule
When you enter a new folder, these rules will be checked to see if you
have set a startup rule which is different from the default startup
rule. The default for incoming folders is set in the Setup/Config
screen with the "incoming-startup-rule" option. The default for folders
other than INBOX that are not part of your incoming collection (see
enable-incoming-folders feature) is to start with the last message in
the folder. If the Startup Rule is set to something other than
"default", then the rule will determine which message will be the
current message when the folder is first opened.
The various startup rule possibilities work the same here as they do in
the incoming collection, except that the folder can be any specific
folder or any folder type.
Search Rules Configuration
One of the commands that becomes available when that feature is turned
on is the "; Select" command, which is used in the MESSAGE INDEX screen
to select a set of messages. One way of selecting messages is to use a
Rule. All of the messages which match (or don't match if you wish) a
Rule's Pattern will be selected.
Any of your Rules may be used for this purpose. You might already have
Rules set up for filtering, index line color, scores, or roles; and you
may use any of those Rules with the Select command. However, you might
find it more convenient to set up a separate set of Rules just for this
purpose without having to worry about what other effects they may
cause. That is the purpose of these Select Rules.
Rule Patterns
In order to determine whether or not a message is selected by a rule
the message is compared with the rule's Pattern. These Patterns are the
same for use with Roles, Filtering, Index Coloring, Scoring, Other
Rules, and Search Rules, so are described in only one place, "here".
There is no action associated with these Search Rules. Only their
Patterns are used.
Patterns
Patterns are used with Roles, Filtering, Index Coloring, Scoring, Other
Rules, and Search Rules. Patterns are compared with a message to see if
there is a match. For Filtering, the messages being checked are all the
messages in the folder, one at a time. For Index Line Coloring, each
message that is visible on the screen is checked for matches with the
Index Coloring Patterns. Roles are used with the Reply, Forward, and
Compose commands. For Reply, the message used to compare the Pattern
with is the message being replied to; for Forward, the message used to
compare the Pattern with is the message being forwarded; and for
Compose, there is no message, so the parts of the Pattern which depend
on a message (everything other than Current Folder Type and the
Beginning of Month and Year) are not used. Only the Current Folder Type
matters for Compose (plus the Beginning of Month or Year, which you
wouldn't usually use for a Role). For Scoring, the message being scored
is compared with all of the Score Patterns, and the Score Values from
the ones that match are added together to get the message's score. For
Other Rules, there is no message. Only the Current Folder Type is
checked for Other Rules.
Each Pattern has several possible parts, all of which are optional. In
order for there to be a match, _ALL_ of the _defined_ parts of the
Pattern must match the message. If a part is not defined it is
considered a match. For example, if the To pattern is not defined it
will be displayed as
To pattern = <No Value Set>
That is considered a match because it is not defined. This means that
the Pattern with nothing defined is a match if the Current Folder Type
matches, but there is an exception. Because filtering is a potentially
destructive action, filtering Patterns with nothing other than Current
Folder Type defined are ignored. If you really want a filtering Pattern
to match all messages (subject to Current Folder Type) the best way to
do it is to define a Score interval which includes all possible scores.
This would be the score interval (-INF,INF). This can be used even if
you haven't defined any rules to Set Scores.
There are six predefined header patterns called the To, From, Sender,
Cc, News, and Subject patterns. Besides those six predefined header
patterns, you may add additional header patterns with header fieldnames
of your choosing. You add an extra header pattern by placing the cursor
on one of the patterns while in the role editor and using the
"eXtraHdr" command. The Recip pattern is a header pattern which stands
for Recipient (To OR Cc) and the Partic pattern is a header pattern
which stands for Participant (From OR To OR Cc). (Defining the Recip
pattern does not have the same effect as defining both the To and Cc
patterns. Recip is To _OR_ Cc, not To _AND_ Cc.) Similar to the header
patterns are the AllText pattern and the BodyText pattern. Instead of
comparing this pattern's text against only the contents of a particular
header field, the text for the AllText pattern is compared with text
anywhere in the message's header or body, and the text for the BodyText
pattern is compared with text anywhere in the message's body.
Any of the header patterns, the AllText pattern, or the BodyText
pattern may be negated with the "!" "toggle NOT" command. You can tell
that _NOT_ has been turned on by looking for the character "!" at the
beginning of the pattern line. When the "!" is present, it reverses the
meaning of the match. That is, if the pattern matches then it is
considered to NOT be a match, and if it does not match it is considered
to be a match.
Don't make the mistake of putting the "!" in the data field for a
pattern. For example, if you type the characters "!urgent" into the
Subject pattern, the pattern will look like:
Subject pattern = !urgent
This means you want to match the 7 character sequence "!urgent". In
order to match messages which do not have "urgent" in their Subject
field, first type the characters "urgent" followed by carriage return
for the value of the Subject pattern, then negate it by typing the "!"
command. It should look like
! Subject pattern = urgent
The contents of each of these header patterns (or the AllText or
BodyText patterns) may be a complete email address, part of an address,
or a random set of characters to match against. It may also be a list
of such patterns, which means you are looking for a match against the
first pattern in the list _OR_ the second pattern _OR_ the third and so
on. For example, a Subject pattern equal to
Subject pattern = urgent
emergency
alert
would match all messages with a subject which contained at least one of
those words. It would also match subjects containing the words "alerts"
or "Urgently".
The same example with "NOT" turned on would be
! Subject pattern = urgent
emergency
alert
which would match all messages with a subject which did NOT contain any
of those words. You can use the "Add Value" command to add new words to
the list, or you can enter them as a comma-separated list.
(It is not possible to specify two patterns which must _BOTH_ be
present for a match. It is only possible to specify that _EITHER_
pattern1 _OR_ pattern2 must be present, and that is exactly what using
a list does.)
The "Current Folder Type" and the "Score Interval" are also part of the
Pattern, although the "Score Interval" is not used when checking for
matches for Scoring. There are five similar settings which relate to
the status of the message. These settings rely on the message being New
or not, Deleted or not, Answered or not, Important or not, and Recent
or not. There are also some other miscellaneous settings. The first is
the Age of the message in days. Another is the Size of the message in
bytes. The third is a setting which detects whether or not the Subject
of a message contains raw 8-bit characters (unencoded characters with
the most significant bit set). There is a setting which detects whether
or not this is the first time _Alpine_ has been run this month (doesn't
depend on individual messages), and another which detects whether or
not this is the first time _Alpine_ has been run this year. Other parts
of the Pattern detect whether or not the From address of a message
appears in your address book, whether or not certain keywords are set
for a message, and whether or not certain character sets are used in a
message.
Parts of a Pattern
Header patterns
A header pattern is simply text which is searched for in the
corresponding header field. For example, if a Pattern has a From header
pattern with the value "@company.com", then only messages which have a
From header which contains the text "@company.com" will be possible
matches. Matches don't have to be exact. For example, if the relevant
field of a message contains the text "mailbox@domain" somewhere in it,
then header patterns of "box", or "x@d", or "mailbox@domain" are all
matches.
All parts of the Pattern must match so, for example, if a message
matches a defined From pattern, it still must be checked against the
other parts of the Pattern which have been defined. The To header
pattern is a slightly special case. If the message being checked has a
Resent-To header and the feature Use-Resent-To-in-Rules is turned on,
the addresses there are used in place of the addresses in the To
header. This is only true for the To header. Resent-cc and Resent-From
headers are never used unless you add them with the eXtraHdrs command.
The meaning of a header pattern may be negated with the "!" "toggle
NOT" command. You can tell that _NOT_ has been turned on by looking for
the character "!" at the beginning of the pattern line. It would look
something like
! From pattern = susan@example.com
When the "!" is present, it reverses the meaning of the match.
If you want to check for the presence of a header field but don't care
about its value, then the empty pattern which you get by entering a
pair of double quotes ("") should match any message which has the
corresponding header field.
AllText patterns
AllText patterns are just like header patterns except that the text is
searched for anywhere in the message's headers or body, not just in the
contents of a particular header field.
BodyText patterns
BodyText patterns are just like header patterns except that the text is
searched for anywhere in the message's body, not just in the contents
of a particular header field.
If there is more than one header pattern or AllText pattern or BodyText
pattern for which you want to take the same action there is a shorthand
notation which may be used. Any of these patterns may be a list of
patterns instead of just a single pattern. If any one of the patterns
in the list matches the message then it is considered a match. For
example, if "company1" and "company2" both required you to use the same
role when replying to messages, you might have a To pattern which looks
like
To pattern = company1.com
company2.com
This means that if the mail you are replying to was addressed to either
"anything@company1.com" or "anything@company2.com", then this Pattern
is a match and the same actions will be taken.
The meaning of an AllText or BodyText pattern may be negated with the
"!" "toggle NOT" command. You can tell that _NOT_ has been turned on by
looking for the character "!" at the beginning of the pattern line.
When the "!" is present, it reverses the meaning of the match.
A technicality: Since comma is the character used to separate multiple
values in any of the fields which may have multiple values (such as
header patterns, AllText patterns, BodyText patterns, keywords, folder
lists, and so on), you must escape comma with a backslash (\) if you
want to include a literal comma in one of those fields. In other words,
if you type a backslash followed by a comma it will be interpreted as a
comma by _Alpine_, instead of as a separator between pattern values.
All other backslashes (those not followed by a comma) are literal
backslashes and should not be escaped. It's unlikely you'll ever need
to enter a literal comma or backslash in any of the patterns.
Current Folder Type
The "Current Folder Type" may be set to one of four different values:
"Any", "News", "Email", or "Specific". If the value is set to "News",
then the Pattern will only match if the currently open folder is a
newsgroup. The value "Email" only matches if the current folder is not
news and the value "Any" causes any folder to match. If the value of
"Current Folder Type" is set to "Specific", then you must fill in a
value for "Folder", which is on the line below the "Specific" line. In
this case you will only get a match if the currently open folder is the
specific folder you list. You may give a list of folders instead of
just a single folder name, in which case the Pattern will match if the
open folder is any one of the folders in the list. The name of each
folder in the list may be either "INBOX", the technical specification
of the folder (like what appears in your configuration file) or, if the
folder is one of your incoming folders, it may be the nickname you've
given the folder. Here are some samples of specific folder names:
{monet.art.example.com}mail/art-class
{news.example.com/nntp}#news.comp.mail.pine
mail/local-folder
The easiest way to fill in the "Folder" field is to use the "T" command
which is available when the "Folder" line is hilighted, or to use the
"Take" command with the configuration feature "enable-rules-under-take"
turned on.
When reading a newsgroup, there may be a performance penalty incurred
when collecting the information necessary to check whether or not a
Pattern matches a message. For this reason, the default Current Folder
Type is set to "Email". If you have Patterns with a Current Folder Type
of either "Any" or "News" and those Patterns are used for Index Line
Coloring or Scoring, you may experience slower screen redrawing in the
MESSAGE INDEX screen when in a newsgroup.
Age Interval
The "Age Interval" may be set to an interval of message ages which
should be considered a match. Like the other parts of the Pattern, if
it is unset it will be ignored. The Age Interval looks like
(min_age,max_age)
where "min_age" and "max_age" are integers greater than or equal to
zero. The special value "INF" may be used for the max value. It
represents infinity.
Actually, this option may be defined as a list of intervals instead of
just a single interval. The list is separated by commas. It can look
like
(min_age1,max_age1),(min_age2,max_age2),...
When there is an Age Interval defined, it is a match if the age, in
days, of the message is contained in any of the intervals. The
intervals include both endpoints.
Even though this option is called Age, it isn't actually the _age_ of
the message. Instead, it is how many days ago the message arrived in
one of your folders. If the current time is a little past midnight,
then a message that arrived just before midnight arrived yesterday,
even though the message is only a few minutes old. By default, the date
being used is not the date in the Date header of the message. It is the
date that the message arrived in one of your folders. When you Save a
message from one folder to another that arrival date is preserved. If
you would like to use the date in the Date header that is possible.
Turn on the option _use-date-header-for-age_ near the bottom of the
rule definition.
A value of 0 is today, 1 is yesterday, 2 is the day before yesterday,
and so on.
Size Interval
The "Size Interval" may be set to an interval of message sizes which
should be considered a match. Like the other parts of the Pattern, if
it is unset it will be ignored. The Size Interval looks like
(min_size,max_size)
where "min_size" and "max_size" are integers greater than or equal to
zero. The special value "INF" may be used for the max value. It
represents infinity.
Actually, this option may be defined as a list of intervals instead of
just a single interval. The list is separated by commas. It can look
like
(min_size1,max_size1),(min_size2,max_size2),...
When there is a Size Interval defined, it is a match if the size, in
bytes, of the message is contained in any of the intervals. The
intervals include both endpoints.
Score Interval
The "Score Interval" may be set to an interval of message scores which
should be considered a match. Like the other parts of the Pattern, if
it is unset it will be ignored. The Score Interval looks like
(min_score,max_score)
where "min_score" and "max_score" are integers between -32000 and
32000. The special values "-INF" and "INF" may be used for the min and
max values to represent negative and positive infinity.
Actually, a list of intervals may be used if you wish. A list would
look like
(min_score1,max_score1),(min_score2,max_score2),...
When there is a Score Interval defined, it is a match if the score for
the message is contained in any of the intervals in the list. The
intervals include the endpoints. The score for a message is calculated
by looking at every Score rule defined and adding up the Score Values
for the ones which match the message. When deciding whether or not a
Pattern matches a message for purposes of calculating the score, the
Score Interval is ignored.
Message Status
There are five separate message status settings. By default, all five
are set to the value "Don't care", which will match any message. The
value "Yes" means that the particular status must be true for a match,
and the value "No" means that the particular status must not be true
for a match. For example, one of the five Message Status settings is
whether a message is marked Important or not. A "Yes" means that the
message must be Important to be considered a match and "No" means that
the message must not be Important to be considered a match. The same is
true of the other four message status settings which depend on whether
or not the message is New; whether the message has been Answered or
not; whether the message has been Deleted or not, and whether the
message is Recent or not.
The nomenclature for New and Recent is a bit confusing:
New means that the message is Unseen. It could have been in your
mailbox for a long time but if you haven't looked at it, it is still
considered New. That matches the default _Alpine_ index display that
shows an N for such a message.
Recent means that the message was added to this folder since the last
time you opened the folder. _Alpine_ also shows an N by default for
these types of messages. If you were to run two copies of _Alpine_ that
opened a folder one right after the other, a message would only show up
as Recent in (at most) the first _Alpine_ session.
Message Keywords
Keywords are similar to Message Status, but they are chosen by the
user. Provided the mail server allows for it, you may add a set of
possible keywords to a folder and then you may set those keywords or
not for each message in the folder. The syntax of this part of the
Pattern is similar to the header patterns. It is a list of keywords.
The Keyword part of the Pattern is a match if the message has any of
the keywords in the list set. Like other parts of the Pattern, if this
is unset it will be ignored.
Message Character Set
A message may use one or more character sets. This part of the Pattern
matches messages which make use of one or more of the character sets
specified in the pattern. It will be considered a match if a message
uses any of the character sets in the list you give here. The syntax of
this part of the Pattern is similar to the header patterns and the
Message Keywords pattern. It is a list of character sets.
Besides actual character set names (for example, ISO-8859-7, KOI8-R, or
GB2312) you may also use some shorthand names that _Alpine_ provides.
These names are more understandable shorthand names for sets of
character set names. Two examples are "Cyrillic" and "Greek". Selecting
one of these shorthand names is equivalent to selecting all of the
character sets that make up the set. You can see all of these shorthand
names and the lists of character sets they stand for by typing the "T"
command with the Character Set pattern highlighted. The Character Set
part of the Pattern is a match if the message uses any of the character
sets in the list. Like other parts of the Pattern, if this is unset it
will be ignored.
Raw 8-bit in Subject
It seems that lots of unwanted email contains unencoded 8-bit
characters in the Subject. Normally, characters with the 8th bit set
are not allowed in the Subject header unless they are MIME-encoded.
This option gives you a way to match messages which have Subjects which
contain unencoded 8-bit characters. Setting this option will affect
performance in large folders because the subject of each message in the
folder has to be checked.
Beginning of Month
This option gives you a way to take some action once per month. The
value "Yes" means that this must be the first time _Alpine_ has been
run this month in order to count as a match,
Beginning of Year
This option gives you a way to take some action once per year. The
value "Yes" means that this must be the first time _Alpine_ has been
run this year in order to count as a match,
From or Reply-To address in Address Books
This option gives you a way to match messages which have a From or a
Reply-To address which is in one of your address books. Only the simple
entries in your address books are searched. Address book distribution
lists are ignored! Setting this option will affect performance in large
folders because the From and Reply-To of each message in the folder
have to be checked.
Categorizer Command
This is a command that is run with its standard input set to the
message being checked and its standard output discarded. The full
directory path should be specified. The command will be run and then
its exit status will be checked against the Exit Status Interval, which
defaults to just the value zero. If the exit status of the command
falls in the interval, it is considered a match, otherwise it is not a
match.
This option may actually be a list of commands. The first one that
exists and is executable is used. That makes it possible to use the
same configuration with Unix _Alpine_ and _PC-Alpine_.
If none of the commands in the list exists and is executable then the
rule is _not_ a match. If it is possible that the command may not
exist, you should be careful to structure your rules so that nothing
destructive happens when the command does not exist. For example, you
might have a filter that filters away spam when there is a match but
does nothing when there is not a match. That would continue to work
correctly if the command didn't exist. However, if you have a filter
which filters away spam when there is not a match and keeps it when
there is a match, that would filter everything if the categorizer
command didn't exist.
Help Configuring Pattern Fields
_Nickname_
This is a nickname to help you. You should have a different
nickname for each role you define. The nickname will be used in
the SETUP ROLE RULES screen to allow you to pick a role to edit.
It will also be used when you send a message to let you know you
are sending with a different role than you use by default, and
it will be useful for choosing a role when composing with the
Role command or when composing with one of the Role Uses set to
With Confirmation. This field is not used in the outgoing
message.
_Comment_
This is a comment to help you. This comment does not play any
functional role, it is simply an optional comment to help you
remember what the rule is for.
_To pattern_
If this pattern is non-blank, then for this role to be
considered a match, at least one of the recipients from the To
line of the message being replied to or forwarded must match
this pattern. In the case of the Compose command, this pattern
and the other header patterns are ignored. If this pattern is a
list of patterns, then at least one of the recipients must match
at least one of the patterns. (Any other non-blank parts of the
Pattern must match, too.) If the message being replied to or
forwarded has a Resent-To header line, then that is used in
place of the To line. (Note that this special Resent rule only
applies to the To header. The Resent-From, Resent-Subject, and
so on are not consulted.)
It is possible to add a _NOT_ to the To Pattern meaning with the
"!" "toggle NOT" command. This changes the meaning of the To
pattern so that it has the opposite meaning. It will be
considered a match if there are no matches between the addresses
in the To: line and the list of To patterns.
Don't make the mistake of putting the "!" in the data field for
the pattern. For example, if you type the characters "!frizzle"
into the To pattern, the pattern will look like:
To pattern = !frizzle
This means you want to match the 8 character sequence
"!frizzle". In order to match messages which do not have
"frizzle" in their To field, first type the characters "frizzle"
followed by carriage return for the value of the To pattern,
then negate it by typing the "!" command. It should end up
looking like
! To pattern = frizzle
_From pattern_
This is just like the To pattern except that it is compared with
the address from the From header of the message being replied to
or forwarded instead of the addresses from the To header.
_Sender pattern_
This is just like the To pattern except that it is compared with
the address from the Sender header of the message being replied
to or forwarded instead of the addresses from the To header. If
there is no Sender header, then the From header is used instead.
_Cc pattern_
This is just like the To pattern except that it is compared with
the address from the CC header of the message being replied to
or forwarded instead of the addresses from the To header.
_News pattern_
If this pattern is non-blank, then for this role to be
considered a match, at least one of the newsgroups from the
Newsgroups line of the message must match this pattern. If this
pattern is a list of patterns, then at least one of the
newsgroups must match at least one of the patterns. (Any other
non-blank parts of the Pattern must match, too.)
_Subject pattern_
This is similar to the other header patterns. It is compared
with the contents from the Subject of the message being replied
to or forwarded.
If you enter non-ascii characters in this field then the search
will be done using the character set you have defined with the
Character-Set configuration variable. (The truly sophisticated
may use an alternate character set for a search by entering the
MIME encoding of the header string here.)
_Extra header patterns_
There isn't actually a field called Extra header patterns, but
you may add extra header patterns by moving the cursor to one of
the header patterns and using the "eXtraHdr" command to add a
new header pattern. You would do this if the six predefined
header patterns don't cover the header you want to use for
pattern matching. Once you've added an extra header pattern, you
use it just like the Subject pattern. Of course, it is compared
with the contents from the particular header field of the
message being replied to or forwarded rather than the contents
from the subject field. To remove an extra header pattern from a
role, use the "RemoveHdr" command on the highlighted extra
header.
If you enter non-ascii characters in this field then the search
will be done using the character set you have defined with the
Character-Set configuration variable. (The truly sophisticated
may use an alternate character set for a search by entering the
MIME encoding of the header string here.)
_Recipient pattern_
This is just like the To pattern except that it is compared with
the addresses from both the To header and the Cc header instead
of just the addresses from the To header. It's equivalent to
having two different rules; one with a To pattern and the other
with the same Cc pattern.
_Participant pattern_
This is just like the To pattern except that it is compared with
the addresses from the To header, the Cc header, and the From
header instead of just the addresses from the To header. It's
equivalent to having three different rules; one with a To
pattern, another with the same Cc pattern, and another with the
same From pattern.
_AllText pattern_
This is similar to the header patterns. Instead of comparing
with text in a particular header field it is compared with all
of the text in the message header and body.
If you enter non-ascii characters in this field then the search
will be done using the character set you have defined with the
Character-Set configuration variable. (The truly sophisticated
may use an alternate character set for a search by entering the
MIME encoding of the header string here.)
_BodyText pattern_
Just like AllText, except it is compared only with the body of
the message, not the body and header.
If you enter non-ascii characters in this field then the search
will be done using the character set you have defined with the
Character-Set configuration variable. (The truly sophisticated
may use an alternate character set for a search by entering the
MIME encoding of the header string here.)
_Age Interval_
The Age Interval, if defined, is part of the Pattern. If you use
this, it should be set to something like:
(min_age,max_age)
where "min_age" and "max_age" are non-negative integers. The
special value "INF" may be used for the max value. It represents
infinity.
In rare cases it may be useful to use the more general form of
the value, which is a comma-separated list of intervals. It
would look something like:
(min_age1,max_age1),(min_age2,max_age2),...
When there is an Age Interval defined, it is a match if the age,
in days, of the message is contained in the interval. The
interval includes both endpoints. If the option is set to a list
of intervals then it is a match if the age of the message is
contained in any of the intervals.
Even though this option is called Age, it isn't actually the
_age_ of the message. Instead, it is how many days ago the
message arrived in one of your folders. If the current time is a
little past midnight, then a message that arrived just before
midnight arrived yesterday, even though the message is only a
few minutes old. By default, the date being used is not the date
in the Date header of the message. It is the date that the
message arrived in one of your folders. When you Save a message
from one folder to another that arrival date is preserved. If
you would like to use the date in the Date header that is
possible. Turn on the option _use-date-header-for-age_ near the
bottom of the rule definition.
A value of 0 is today, 1 is yesterday, 2 is the day before
yesterday, and so on. The age interval
(2,2)
matches all messages that arrived on the day before yesterday.
The interval
(180,INF)
matches all messages that arrived at least 180 days before
today. The interval
(0,1)
matches all messages that arrived today or yesterday.
_Score Interval_
The Score Interval, if defined, is part of the Pattern. If you
use this, it should be set to something like:
(min_score,max_score)
where "min_score" and "max_score" are integers between -32000
and 32000. The special values "-INF" and "INF" can be used for
the min and max values. These represent negative and positive
infinity.
Actually, the value may be a list of intervals rather than just
a single interval if that is useful. The elements of the list
are separated by commas like:
(min_score1,max_score1),(min_score2,max_score2),...
When there is a Score Interval defined, it is a match if the
score for the message is contained in any of the intervals. The
intervals include both endpoints. The score for a message is
calculated by looking at every scoring rule defined and adding
up the Score Values for the rules which match the message.
_Keyword pattern_
A folder may have user-defined keywords. These are similar to
the Important flag which the user may set using the Flag
command. The difference is that the Important flag is always
present for each folder. User-defined keywords are picked by the
user. You may add new keywords by defining them in the Keywords
option in the Setup/Config screen. After you have added a
potential keyword with the Keywords option, the Flag command may
be used to set or clear the keyword on individual messages. If
you have given a keyword a nickname when configuring it, that
nickname may be used instead of the actual keyword.
When filling in a value for this field, it may be easiest to use
the "T" command, which presents you with a list of the keywords
you have defined to choose from.
This part of the Pattern matches messages with certain keywords
set. It will be considered a match if a message has any of the
keywords in the list set.
It is possible to add a _NOT_ to the Keyword Pattern meaning
with the "!" "toggle NOT" command. This changes the meaning of
the Keyword pattern so that it has the opposite meaning. It will
be considered a match if none of the keywords in the list are
set for a message.
Don't make the mistake of putting the "!" in the data field for
the pattern. For example, if you type the characters "!frizzle"
into the Keyword pattern, the pattern will look like:
Keyword pattern = !frizzle
This means you want to match the 8 character sequence
"!frizzle". In order to match messages which do not have the
keyword "frizzle" set, first type the characters "frizzle"
followed by carriage return for the value of the Keyword
pattern, then negate it by typing the "!" command. It should end
up looking like
! Keyword pattern = frizzle
_Character Set pattern_
A message may use one or more character sets. This part of the
Pattern matches messages which make use of certain specified
character sets. It will be considered a match if a message uses
any of the character sets in the list you give here.
When filling in a value for this field, you may use the "T"
command, which presents you with a large list of possible
character sets to choose from. You may also just type in the
name of a character set, and it need not be one that Alpine
knows about.
Besides actual character set names (for example, ISO-8859-7,
KOI8-R, or GB2312) you may also use some shorthand names that
Alpine provides. These names are more understandable shorthand
names for sets of character set names. Two examples are
"Cyrillic" and "Greek". Selecting one of these shorthand names
is equivalent to selecting all of the character sets that make
up the set. You can see all of these shorthand names and the
lists of character sets they stand for by typing the "T"
command.
For the purposes of this Pattern, _Alpine_ will search through a
message for all of the text parts and collect the character sets
declared for each part. It will also look in the Subject line
for a character set used there. _Alpine_ does not actually look
at the text of the message or the text of the Subject to
determine if a declared character set is actually used, it looks
only at the declarations themselves in the MIME part headers and
in the Subject.
It is possible to add a _NOT_ to the Character Set Pattern
meaning with the "!" "toggle NOT" command. This changes the
meaning of the Character Set pattern so that it has the opposite
meaning. It will be considered a match if none of the character
sets in the list are used in a message.
Don't make the mistake of putting the "!" in the data field for
the pattern. For example, if you type the characters "!GB2312"
into the Character Set pattern, the pattern will look like:
Charset pattern = !GB2312
This means you want to match the 7 character sequence "!GB2312".
In order to match messages which do not have the character set
"GB2312" set, first type the characters "GB2312" followed by
carriage return for the value of the Character Set pattern, then
negate it by typing the "!" command. It should end up looking
like
! Charset pattern = GB2312
A technicality: Since comma is the character used to separate
multiple values in a pattern field, you have to escape comma
with a backslash (\) if you want to include a literal comma in
the field. In other words, if you type a backslash followed by a
comma it will be interpreted as a comma by _Alpine_, instead of
as a separator between pattern values. All other backslashes are
literal backslashes and should not be escaped.
_Current Folder Type_
The Current Folder Type is part of the Pattern. It refers to the
type of the currently open folder, which is the folder you were
last looking at from the MESSAGE INDEX or MESSAGE TEXT screen.
In order for a pattern to be considered a match, the current
folder must be of the type you set here. The three types "Any",
"News", and "Email" are all what you might think.
If the Current Folder Type for a Pattern is set to "News", for
example, then that will only be a match if the current folder is
a newsgroup and the rest of the Pattern matches. The value
"Specific" may be used when you want to limit the match to a
specific folder (not just a specific type of folder), or to a
list of specific folders. In order to match a specific folder
you must Select the "Specific" button _AND_ you must fill in the
name (or list of names) of the folder in the "Folder" field. If
the current folder is any of the folders in the list, that is
considered a match. The name of each folder in the list may be
either "INBOX", the technical specification of the folder (like
what appears in your configuration file) or, if the folder is
one of your incoming folders, it may be the nickname you've
given the folder. Here are a couple samples of specific folder
names:
{monet.art.example.com}mail/art-class
{news.example.com/nntp}#news.comp.mail.pine
The easiest way to fill in the "Folder" field is to use the T
command which is available when the "Folder" line is hilighted.
Note that you won't be able to edit the "Folder" line unless the
Current Folder Type is set to "Specific", and any value that
"Folder" has is ignored unless the type is set to "Specific".
When reading a newsgroup, there may be a performance penalty
incurred when collecting the information necessary to check a
Pattern. For this reason, the default Current Folder Type is set
to "Email". For example, a role with a non-Normal Index Line
Color and a Current Folder Type of "Any" or "News" may cause the
MESSAGE INDEX screen to draw more slowly when in a newsgroup.
_Message Status Important_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the message must be
flagged "Important" in order to be a match; or "No", which means
the message must _not_ be flagged "Important" in order to be
considered a match.
_Message Status New_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the message must be
"New" in order to be a match; or "No", which means the message
must _not_ be "New" in order to be a match. "New" is the same as
_Unseen_ and not "New" is the same as _Seen_.
The nomenclature for New and Recent is a bit confusing:
New means that the message is Unseen. It could have been in your
mailbox for a long time but if you haven't looked at it, it is
still considered New. That matches the default _Alpine_ index
display that shows an N for such a message.
Recent means that the message was added to this folder since the
last time you opened the folder. _Alpine_ also shows an N by
default for these types of messages. If you were to run two
copies of _Alpine_ that opened a folder one right after the
other, a message would only show up as Recent in (at most) the
first _Alpine_ session.
_Message Status Recent_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the message must be
"Recent" in order to be a match; or "No", which means the
message must _not_ be "Recent" in order to be a match. "Recent"
means that the message was added to the folder since the last
time the folder was opened. If more than one mail client has the
folder opened, the message will appear to be "Recent" to only
one of the clients.
The nomenclature for New and Recent is a bit confusing:
New means that the message is Unseen. It could have been in your
mailbox for a long time but if you haven't looked at it, it is
still considered New. That matches the default _Alpine_ index
display that shows an N for such a message.
Recent means that the message was added to this folder since the
last time you opened the folder. _Alpine_ also shows an N by
default for these types of messages. If you were to run two
copies of _Alpine_ that opened a folder one right after the
other, a message would only show up as Recent in (at most) the
first _Alpine_ session.
_Message Status Deleted_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the message must be
marked "Deleted" in order to be a match; or "No", which means
the message must _not_ be marked "Deleted" in order to be a
match.
If you are thinking of using this part of the Pattern as a way
to prevent messages from being filtered more than once in a
Filter Pattern, take a look at the Filter Option
"move-only-if-not-deleted" instead. It should work better than
using this field since it will hide the filtered messages even
if they are already Deleted.
_Message Status Answered_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the message must be
marked "Answered" in order to be a match; or "No", which means
the message must _not_ be marked "Answered" in order to be a
match.
_Subject Contains Raw 8-bit_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means the Subject of the
message must contain unencoded 8-bit characters (characters with
the most significant bit set) in order to be a match; or "No",
which means the Subject must _not_ contain unencoded 8-bit
characters in order to be a match.
_Beginning of Month_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means this is the first
time _Alpine_ has been run this month; or "No", which means this
is _not_ the first time _Alpine_ has been run this month. The
way that _Alpine_ decides if it is the beginning of the month or
not is to compare today's date with the date stored in the
Last-Time-Prune-Questioned variable in the config file. If the
month of today's date is later than the month stored in the
variable, then this is considered to be the first time you have
run Alpine this month, and that turns the Beginning of the Month
option on.
_Beginning of Year_
This part of the Pattern may have one of three possible values.
The default value is "Don't care", which matches any message.
The other two values are "Yes", which means this is the first
time _Alpine_ has been run this year; or "No", which means this
is _not_ the first time _Alpine_ has been run this year. The way
that _Alpine_ decides if it is the beginning of the year or not
is to compare today's date with the date stored in the
Last-Time-Prune-Questioned variable in the config file. If the
year of today's date is later than the year stored in the
variable, then this is considered to be the first time you have
run Alpine this year, and that turns the Beginning of the Year
option on.
_From or Reply-To in Address Book_
This part of the Pattern may have one of five possible values.
The default value is "Don't care", which matches any message.
The value "Yes, in any address book" means either the From
address or the Reply-To address of the message must be in at
least one of your address books in order to be a match. The
value "No, not in any address book" means neither the From nor
the Reply-To addresses may be in any of your address books in
order to be a match.
The values "Yes, in specific address books" and "No, not in any
of specific address books" are similar but instead of depending
on all address books you are allowed to give a list of address
books to look in. Usually this would be a single address book
but it may be a list of address books as well. For each of these
"specific" address book options you Select which of the Specific
options you want (Yes or No) _AND_ fill in the name (or list of
names) of the address book in the "Abook List" field. The names
to be used are those that appear in the ADDRESS BOOK LIST
screen. The easiest way to fill in the Abook List field it to
use the "T" command which is available when the "Abook List"
line is highlighted. Note that you won't be able to edit the
"Abook List" line unless the option is set to one of the two
"Specific", values.
_Categorizer Command_
This is a command that is run with its standard input set to the
message being checked and its standard output discarded. The
full directory path should be specified. The command will be run
and then its exit status will be checked against the _Exit
Status Interval_, which defaults to just the value zero. If the
exit status of the command falls in the interval, it is
considered a match, otherwise it is not a match.
This option may actually be a list of commands. The first one
that exists and is executable is used. That makes it possible to
use the same configuration with Unix _Alpine_ and _PC-Alpine_.
If none of the commands in the list exists and is executable
then the rule is _not_ a match. If it is possible that the
command may not exist, you should be careful to structure your
rules so that nothing destructive happens when the command does
not exist. For example, you might have a filter that filters
away spam when there is a match but does nothing when there is
not a match. That would continue to work correctly if the
command didn't exist. However, if you have a filter which
filters away spam when there is not a match and keeps it when
there is a match, that would filter everything if the
categorizer command didn't exist.
The categorizer command is run and the result is the exit status
of that command. If that exit status falls in the _Exit Status
Interval_ then it is considered a match, otherwise it is not a
match. Of course for the entire rule to match, it must also be
checked against the other defined parts of the Pattern.
The _Exit Status Interval_ defaults to the single value 0
(zero). If you define it, it should be set to something like:
(min_exit_value,max_exit_value)
where "min_exit_value" and "max_exit_value" are integers. The
special values "INF" and "-INF" may be used for large positive
and negative integers.
Actually, a list of intervals may be used if you wish. A list
would look like
(min_exit_value1,max_exit_value1),(min_exit_value2,max_exit_value2),...
When there is an _Exit Status Interval_ defined, it is a match
if the exit status of the categorizer command is contained in
any of the intervals. The intervals include both endpoints.
The default interval is
(0,0)
and it matches only if the command exits with exit status equal
to zero.
It is also possible to set a _Character Limit_ for the
categorizer command. Setting this option makes it possible to
limit how much of the message is made available to the
categorizer command as input. The default value (-1) means that
the entire message is fed to the command. A value of 0 (zero)
means that only the headers of the message are made available. A
positive integer means that the headers plus that many
characters from the body of the message are passed to the
categorizer.
Configuring News
_Alpine_ can access news folders in any one of three different ways:
REMOTE NNTP
Using the Network News Transport Protocol (NNTP) to access news
on a remote news server. In this case the newsrc file is stored
on the machine where _Alpine_ is running.
To specify a remote news-collection accessed via NNTP use the
SETUP/collectionList screen's "Add" command. Set the Server:
value to the NNTP server's hostname appended with the
communication method "/service=NNTP", and set the Path: value to
the "#news." namespace (without the quotes).
Instead of specifying a news-collection, you may simply set the
nntp-server option, which will cause _Alpine_ to create a
default news-collection for you. Another NNTP option which may
be of interest is nntp-range.
REMOTE IMAP
Using the Internet Message Access Protocol (IMAP) to access news
on a remote news server. In this case, your newsrc file is
stored on the news server, in your home directory, so you must
have an account on the news server, but you would be running
_Alpine_ on a different machine. The news server must be running
an IMAPd server process.
To specify a remote news-collection accessed via IMAP use the
SETUP/collectionList screen's "Add" command. Set the Server:
value to the IMAP server's hostname, and set the Path: value to
the "#news." namespace (without the quotes).
LOCAL
Using local file access to the news database. In this case, your
newsrc file is stored on the news server, in your home
directory, so you must have an account on the news server, and
you would be running _Alpine_ on the same machine.
To specify a local news-collection use the SETUP/collectionList
screen's "Add" command. Leave the Server: value blank, and set
the Path: value to the "#news." namespace (without the quotes).
NOTE: Should no news-collection be defined as above, _Alpine_ will
automatically create one using the Setup/Config screen's "nntp-server"
variable's value if defined. The collection will be created as a
"Remote NNTP" as described above.
If you are a _PC-Alpine_ user, either option 1 (NNTP) or option 2
(IMAP) is possible. If you don't have an account on the news server, or
if the news server is not running an IMAP daemon, then you must use
NNTP. (If you are not sure, ask your service provider, university, or
company for help.) In this case, your Unix .newsrc file can be
transferred to your PC. A good place to put it would be in the same
directory as your PINERC file, under the name NEWSRC, but you can
specify a different location.
Other configuration features related to news are
Enable-8bit-Nntp-Posting. Compose-Sets-Newsgroup-Without-Confirm,
News-Approximates-New-Status, News-Deletes-Across-Groups,
News-Offers-Catchup-On-Close, News-Post-Without-Validation,
News-Read-in-Newsrc-Order, and Quell-Extra-Post-Prompt.
__________________________________________________________________
Notes on Configuration and Preferences
Alpine in Function Key Mode
The standard _Alpine_ uses alphabetic keys for most commands, and
control keys in the composer. Despite possible appearances, the current
bindings are the result of much discussion and thought. All the
commands in the composer are single control characters. This keeps
things very neat and simple for users. Two character commands in the
composer are a possibility, but we're trying to avoid them because of
the added complexity for the user.
_Alpine_ can also operate in a function-key mode. To go into this mode
invoke _alpine -k_ or (on some UNIX systems) _alpinef._ On a UNIX
system, you can link or copy the _Alpine_ executable to _alpinef_ to
install _alpinef._ Alternatively, users and systems administrators can
set the _use-function-keys_ feature in the personal or system-wide
_Alpine_ configuration file. The command menus at the bottom of the
screen will show _F1-F12 _instead of the alphabetic commands. In
addition, the help screens will be written in terms of function keys
and not alphabetic keys.
One of the results of using _Alpine_ in function-key mode is that users
can only choose from twelve commands at any given time. In
alphabetic-key mode, a user can press a key for a command (say, q to
quit) and that command can be fulfilled. In function-key mode, the
command must be visible on the bottom key-menu in order to be used.
There are some screens where four screens of commands are operational;
function-key users can get to all of them, just not all at once.
__________________________________________________________________
Domain Settings
_Alpine_ uses the default domain for a few different tasks. First, it
is tacked onto the user-id for outgoing email. Second, it is tacked
onto all "local" (unqualified) addresses in the "To:" or "Cc:" fields
of messages being composed (unless they are found in the address book
or on an LDAP server). The domain name is also used to generate
message-id lines for each outgoing message and to allow _Alpine_ to
check if an address is that of the current _Alpine_ user.
_Alpine_ determines the domain name according to whichever of these it
finds. The list here is in decreasing order of precedence.
1. Value of the variable user-domain in the system fixed configuration
file
2. Value of the variable _user-domain_ in the personal configuration
file
3. Value of the variable _user-domain_ in the system-wide
configuration file
4. Value from an external database (DNS, /etc/hosts, NIS) as modified
by a system fixed configuration file if use-only-domain-name set to
_yes_
5. Value from an external database (DNS, /etc/hosts, NIS) as modified
by a personal configuration file if _use-only-domain-name_ set to
_yes_
6. Value from an external database (DNS, /etc/hosts, NIS) as modified
by a system configuration file if _use-only-domain-name_ set to
_yes_
7. Unmodified value (host name) from an external database
The easiest way for this system to work is for _PC-Alpine_ users and
UNIX _Alpine_ system administrators to set the _user-domain_ variable.
The variable _use-only-domain-name_ is helpful if your site
supports/requires hostless addressing, but for some reason you don't
want to use the _user-domain_ variable.
__________________________________________________________________
Syntax for Collections
In many environments, it is quite common to have collections of
archived mail on various hosts around the network. Using the folder
collections facility in _Alpine_, access to these archives is just as
simple as access to folders on _Alpine_'s local disk.
"Collection" is the word we use in _Alpine_ to describe a set of
folders. A collection corresponds loosely to a "directory" containing
mail folders. Folders within a defined collection can be manipulated
(opened, saved-to, etc) using just their simple name. Any number of
folder collections can be defined, and _Alpine_ will adjust its menus
and prompts to help navigate them.
The way collections are defined in _Alpine_ is with the
folder-collections variable in the _Alpine_ configuration file.
_Folder-collections_ takes a list of one or more collections, each
(optionally) preceded by a user-defined logical name (label). Once
collections are defined, _Alpine_ adjusts its menus and behavior to
allow choosing files by their simple name within the collection.
Consider the following:
folder-collections= Local-Mail C:\MAIL\[],
Remote-Mail {imap.u.example.edu}mail/[]
The example shows two collections defined (a comma separated list;
newlines in the list are OK if there's one or more spaces before the
next entry), one local and one remote. Each collection is a
space-delimited pair of elements-first an optional logical-name and
second the collection specifier. The logical-name can have spaces if it
has quotes around it (but keeping the logical name short and
descriptive works best). _Alpine_ will use the logical-name (if
provided) to reference all folders in the collection, so the user never
has to see the ugliness of the collection specifier.
The collection specifier can be thought of as an extended IMAP format
(see the Remote Folders section for a description of IMAP format
names). Basically, a pair of square-brackets are placed in the fully
qualified IMAP path where the simple folder name (the part without the
host name and path) would appear. Like IMAP, the path can be either
fully qualified (i.e., with a leading '/') or relative to your home
directory.
An advanced feature of this notation is that a pattern within the
square brackets allows the user to define a collection to be a subset
of a directory. For example, a collection defined with the specifier:
M-Mail C:MAIL/[m*]
will provide a view in the folder lister of all folders in the PC's
"C:MAIL" directory that start with the letter 'm' (case insensitive
under DOS, of course). Further, the wildcard matching will honor
characters trailing the '*' in the pattern.
From within _Alpine_, the "Folder List" display will be adjusted to
allow browsing of the folders in any defined collection. Even more,
you'll notice in the _Goto_ and _Save_ commands a pair of sub-commands
to rotate through the list of logical collection names, so only a
simple name need be input in order to operate on a folder in any
collection.
The first collection specified in the _folder-collections_ has special
significance. That folder is the "default collection for saves". By
default, in cases where the user does not specify which collection
should be used to _Save_ a message, the default collection for saves
will be used. Also, if the default-fcc is a relative file name, then it
is relative to the default collection for saves. (See also
saved-msg-name-rule.
The notion of collections encompasses both email folders and news
reading. The variable news-collections uses nearly the same format as
_folder-collections_. Newsgroups can be defined for convenient access
via either IMAP or NNTP. There are advantages and disadvantages to both
access methods. In the IMAP case, your news environment state is
maintained on the server and, thus, will be seen by any client. The
downside is that, at the moment, you must have an account on the
server. In the NNTP case, server access is mostly anonymous and no
state/accounting need be maintained on it. The downside is that each
client, for now, must individually maintain news environment state.
An example pinerc entry might be:
news-collections= Remote-State {news.u.example.edu}#news.[],
Local-State {news.u.example.edu/nntp}#news.[]
Only newsgroups to which you are subscribed are included in the
collection.
The pattern matching facility can be applied so as to define a news
collection which is a subset of all the newsgroups you subscribe to.
For example, this could be a valid collection:
Newsfeed-News {news.u.example.edu/nntp}#news.[clari.*]
Collection handling is a tough problem to solve in a general way, and
the explanation of the syntax is a bit ugly. The upside is, hopefully,
that for a little complexity in the _Alpine_ configuration file you get
simple management of multiple folders in diverse locations.
Collection setup is handled by the _Setup/collectionList_ screen.
__________________________________________________________________
Syntax for Folder Names
Remote folders are distinguished from local folders by a leading host
name bracketed by '{' and '}'. The path and folder name immediately
following the closing bracket, '}', is interpreted by the remote server
and is in a form compatible with that server (i.e., path delimiters and
naming syntax relative to that server).
The full syntax for a _Alpine_ folder name looks like
[{<remote-specification>}][#<namespace>]<namespace-specific-part>
The square brackets ([]) mean that the part is optional.
If there is no remote-specification, then the folder name is
interpreted locally on the computer running _Alpine_. Local folder
names depend on the operating system used by the computer running
_Alpine_, as well as the configuration of that system. For example,
"C:\ALPINE\FOLDERS\OCT-94" might exist on a PC, and
"~/mail/september-1994" might be a reasonable folder name on a system
running Unix.
_Alpine_ users have the option of using folders which are stored on
some other computer. _Alpine_ accesses remote folders via IMAP (the
Internet Message Access Protocol), or in the case of news, via NNTP
(the Network News Transport Protocol). To be able to access remote
folders in _Alpine_, the remote host must be running the appropriate
server software (imapd or nntpd) and you must correctly specify the
name of the folder to _Alpine_, including the domain name of the remote
machine. For example,
{monet.art.example.com}INBOX
could be a remote folder specification, and so could
{unixhost.art.example.com}~/mail/september-1994
and
{winhost.art.example.com}\mymail\SEP-94
Note that in the case of remote folders, the directory/file path in the
specification is determined by the operating system of the remote
computer, _not_ by the operating system of the computer on which you
are running _Alpine_.
As you can tell, the name of the computer is in {} brackets followed
immediately by the name of the folder. (In each of these cases the
optional namespace is missing.) If, as in these examples, there is no
remote access protocol specified, then IMAP is assumed. Check Server
Name Syntax for a more detailed look at what options can be placed
between the brackets. If there are no brackets at all, then the folder
name is interpreted locally on the computer on which you are running
_Alpine_.
To the right of the brackets when a server name is present, or at the
start of the foldername if no server is present, the sharp sign, "#",
holds special meaning. It indicates a folder name outside the area
reserved for your personal folders. In fact, it's used to indicate both
the name of the folder, and a special phrase telling _Alpine_ how to
interpret the name that follows.
So, for example, _Alpine_ can be used to access a newsgroup that might
be available on your computer using:
#news.comp.mail.pine
The sharp sign indicates the folder name is outside your personal
folder area. The "news." phrase after it tells _Alpine_ to interpret
the remainder of the name as a newsgroup.
Similarly, to access a newsgroup on your IMAP server, you might use
something like:
{wharhol.art.example.com}#news.comp.mail.misc
There are a number of such special phrases (or "namespaces") available.
For a more detailed explanation read about Namespaces.
Note that "INBOX" has special meaning in both local and remote folder
names. The name INBOX refers to your "principal incoming message
folder" and will be mapped to the actual file name used for your INBOX
on any given host. Therefore, a name like "{xxx.art.example.com}INBOX"
refers to whatever file is used to store incoming mail for you on that
particular host.
__________________________________________________________________
Server Name Syntax
This section describes the syntax which may be used for server names
which may be associated with remote folders or SMTP servers.
A server name is the hostname of the server. It's a good idea to use
the host's fully-qualified network name.
foo.example.com
However, IP addresses are allowed if surrounded with square-brackets.
[127.0.0.1]
An optional network port number may be supplied by appending a colon
(:) followed by the port number to the server name. By default, the
IMAP port number, 143, is used.
foo.example.com:port
Besides server name and optional port number, various other optional
parameters may be supplied that alter _Alpine_'s interaction with the
server. A parameter is supplied by appending a slash (/) character
followed by the parameter's name and, depending on the particular
parameter, the value assigned to that name, to the server name (and
optional port number). Parameter names are _not_ case sensitive.
Currently supported parameters include:
User
This parameter requires an associated value, and is intended to
provide the username identifier with which to establish the
server connection. If your SMTP server offers SMTP AUTH
authentication, adding this parameter to the SMTP-Server option
will cause _Alpine_ to attempt to authenticate to the server
using the supplied username. Similarly, if your NNTP server
offers NNTP "AUTHINFO SASL" or "AUTHINFO USER" authentication,
adding this parameter to the NNTP-Server option (or to the
server name for any folder collection using NNTP) will cause
_Alpine_ to attempt to authenticate to the server using the
supplied username. An example might be:
/user=katie
TLS
Normally, when a new connection is made an attempt is made to
negotiate a secure (encrypted) session using Transport Layer
Security (TLS). If that fails then a non-encrypted connection
will be attempted instead. This is a unary parameter indicating
communication with the server must take place over a TLS
connection. If the attempt to use TLS fails then this parameter
will cause the connection to fail instead of falling back to an
unsecure connection.
/tls
SSL
This is a unary parameter indicating communication with the
server should take place over a Secure Socket Layer connection.
The server must support this method, and be prepared to accept
connections on the appropriate port (993 by default). _Alpine_
must be linked with an SSL library for this option to be
operational.
/ssl
NoValidate-Cert
Do not validate certificates (for TLS or SSL connections) from
the server. This is needed if the server uses self-signed
certificates or if _Alpine_ cannot validate the certificate for
some other known reason.
Anonymous
This is a unary parameter (that means it does not have a value)
indicating that the connection be logged in as "anonymous"
rather than a specific user. Not all servers offer anonymous
access; those which do generally only offer read-only access to
certain "public" folders.
/anonymous
Secure
This is a unary parameter indicating that the connection use the
most secure authentication method mutually supported by _Alpine_
and the server. _Alpine_ is capable of authenticating
connections to the server using several methods. By default,
_Alpine_ will attempt each method until either a connection is
established or the list of methods is exhausted. This parameter
causes _Alpine_ to instead fail the connection if the first
(generally most "secure") method fails.
/secure
Submit
This is a unary parameter for use with the "SMTP-Server" option.
It indicates that the connection should be made to the Submit
server (RFC 3676) (port 587) instead of the SMTP port (25). At
the time this help was written the submit option was equivalent
to specifying port 587.
/submit
or
host:587
Debug
This is a unary parameter indicating that the connection be
established in a verbose mode. Basically, it causes _Alpine_ to
log the communication with the server in _Alpine_'s debug file.
Normally, the alpine -d command-line flag would be used instead.
NoRsh
By default, _Alpine_ attempts to login using "rsh", the UNIX
remote shell program. Including "NoRsh" will cause connections
to this server to skip the "rsh" attempt. This might be useful
to avoid long timeouts caused by rsh firewalls, for example.
Service
This parameter requires an associated value. The default value
is "IMAP" which indicates communication with the server based on
the IMAP4rev1 protocol (defined in RFC 3501 -- see
http://www.imap.org/docs/rfc3501.html). Other service values
include:
NNTP
This value indicates communication with the server takes
place via the Network News Transfer Protocol. Use this to
define a collection of newsgroups on a remote news server.
So
/service=NNTP
or just
/NNTP
is the way to specify NNTP access.
POP3
This value indicates communication with the server takes
place via the Post Office Protocol 3 protocol.
/service=POP3
or just
/POP3
Note that there are several important issues to consider
when selecting this option:
1. POP3 provides access to only your INBOX. In other words,
secondary folders such as your "saved-messages" are
inaccessible.
2. _Alpine_'s implementation of POP3 does not follow the
traditional POP model and will leave your mail on the
server. Refer to the Mail Drop functionality for a
possible way around this problem.
3. See the discussion about new-mail checking in
Folder-Reopen-Rule.
Note that it is possible to include more than one parameter in a server
specification by concatenating the parameters. For example:
foo.example.com:port/user=katie/novalidate-cert/debug
__________________________________________________________________
Folder Namespaces
A _Alpine_ folder name looks like
[{<remote-specification>}][#<namespace>][<namespace-specific-part>]
The local part of a folder name has an optional "Namespace" which tells
_Alpine_ how to interpret the rest of the name.
By default the folder name is interpreted as defining a section of your
personal folder area. This area and how you specify it are defined by
the server, if one is specified, or, typically, the home directory, if
no server is defined.
If a namespace is specified, it begins with the sharp, "#", character
followed by the name of the namespace and then the namespace's
path-element-delimiter. Aside from the path's format, namespaces can
also imply access rights, content policy, audience, location, and,
occasionally, access methods.
Each server exports its own set (possibly of size one) of namespaces.
Hence, it's likely communication with your server's administrator will
be required for specific configurations. Some of the more common
namespaces, however, include:
#news.
This specifies a set of folders in the newsgroup namespace.
Newsgroup names are hierarchically defined with each level
delimited by a period.
#news.comp.mail.pine
#public/
This specifies a folder area that the server may export to the
general public.
#shared/
This specifies a folder area that the folder may export to
groups of users.
#ftp/
This specifies a folder area that is the same as that it may
have exported via the "File Transfer Protocol".
#mh/
This specifies the personal folder area associated with folders
and directories that were created using the MH message handling
system.
#move/
This namespace is interpreted locally by _Alpine_. It has an
unusual interpretation and format.
#move<DELIM><MailDropFolder><DELIM><DestinationFolder>
The #move namespace is followed by two folder names separated by
a delimiter character. The delimiter character may be any
character which does not appear in the MailDropFolder name. The
meaning of #move is that mail will be copied from the
MailDropFolder to the DestinationFolder and then deleted (if
possible) from the MailDropFolder. Periodic checks at frequency
Mail-Check-Interval, but with a minimum time between checks set
by MailDrop-Check-Minimum, are made for new mail arriving in the
MailDropFolder. An example which copies mail from a POP inbox to
a local folder follows
#move+{popserver.example.com/pop3/ssl}inbox+local folder
To you it appears that mail is being delivered to the local
folder when it is copied from the MailDropFolder, and you read
mail from the local folder.
Note that if the DestinationFolder does not exist then the
messages are not copied from the MailDropFolder. A #move folder
may only be used as an Incoming folder or an Inbox. When you are
in the FOLDER LIST of Incoming Message Folders (after turning on
the enable-incoming-folders option) the Add command has a
subcommand "Use Mail Drop" which may be helpful for defining the
folder in your _Alpine_ configuration. The same is true when you
edit the Inbox-Path option in Setup/Config. Each of these
configuration methods will also create the DestinationFolder if
it doesn't already exist. If you are having problems, make sure
the DestinationFolder exists.
In addition, the server may support access to other user's folders,
provided you have suitable permissions. Common methods use a prefix of
either "~user/", or "/user/" to indicate the root of the other user's
folder area.
__________________________________________________________________
What is a Mail Drop?
In some situaions it may make sense to have your mail delivered to one
folder (the Mail Drop) and then when you want to read mail that has
been delivered to the Mail Drop folder _Alpine_ will move it to another
destination folder. Often the Mail Drop will be a remote folder and
messages will be moved from there to a local destination folder.
One example where this might make sense is if the Mail Drop folder is
accessible only with the POP protocol. You could designate your POP
inbox as the Mail Drop folder and have _Alpine_ move mail from there to
a local (on the same machine _Alpine_ is running on) destination
folder, where you'll read it.
A Mail Drop may only be used as your Inbox or as an Incoming folder.
There is no attempt to synchronize the contents of the destination
folder with the contents of the Mail Drop folder. All that happens is
that all of the messages in the Mail Drop folder are copied to the
destination folder and then they are deleted and expunged (if possible)
from the Mail Drop folder. The next time a check for new mail is made,
any messages in the Mail Drop folder are once again copied to the
destination folder and deleted and expunged from the Mail Drop folder.
(If the Mail Drop folder is a news group, then the messages can't be
expunged from the newsgroup. Instead, only Recent messages are copied
from the newsgroup to the destination folder.)
Configuration of a Mail Drop is a little different from configuration
of a folder which does not use a Mail Drop because you have to specify
two folder names instead of one. The two folders may be any types of
folders that _Alpine_ can normally use. They don't have to be a remote
folder and a local folder, that is simply the most common usage. When
you use a Mail Drop folder _Alpine_ will periodically re-open the Mail
Drop to check for new mail. The new-mail checks will happen at the
frequency set with the Mail-Check-Interval option, but with a minimum
time (MailDrop-Check-Minimum) between checks. Because of this minimum
you may notice that new mail does not appear promptly when you expect
it. The reason for this is to protect the server from over-zealous
opening and closing of the Mail Drop folder. If the user initiates the
check by typing ^L (Ctrl-L) or the Next command when at the end of the
folder index, then the check will happen, regardless of how long it has
been since the previous check.
If there is new mail, that mail will be copied to the destination
folder and then will be deleted from the Mail Drop. Note that using a
Mail Drop with a local destination folder does not make sense if you
read mail from more than one machine, because the mail is downloaded to
the destination folder (which is accessible from only one machine) and
deleted from the Mail Drop.
The feature Maildrops-Preserve-State modifies the operation of Mail
Drops.
The actual syntax used by _Alpine_ for a folder that uses a Mail Drop
is:
#move<DELIM><MailDropFolder><DELIM><DestinationFolder>
The brackets are not literal.
<DELIM>
is a single character which does not appear in the MailDropFolder name.
If the name doesn't contain spaces then it can be a space character.
The two folder names are full technical folder names as used by
_Alpine_. Here are a couple examples to give you an idea what is being
talked about:
#move {popserver.example.com/pop3}inbox localfolder
#move+{nntpserver.example.com/nntp}#news.comp.mail.pine+local folder
A #move folder may only be used as an Incoming folder or an Inbox. When
you are in the FOLDER LIST of Incoming Message Folders (after turning
on the Enable-Incoming-Folders option) the Add command has a subcommand
"Use Mail Drop" which may be helpful for defining the folder in your
_Alpine_ configuration. The same is true when you edit the Inbox-Path
option in Setup/Config.
if it doesn't already exist. If you are having problems, make sure the
DestinationFolder exists.
__________________________________________________________________
Sorting a Folder
The mail index may be sorted by arrival, date, subject, from, size,
score, to, or cc order. Each sort order can also be reversed. The _$_
command will prompt the user for the sort order. The sort order can
also be specified on the command line with the _-sort_ flag or
(equivalently) with the sort-key variable in the _pinerc_ file. When a
user changes folders, the sort order will go back to the original sort
order. The command line (_-sort_) or configuration file sort
specification (_sort-key_) changes the original sort order.
When a folder is sorted and new mail arrives in the folder it will be
inserted in its properly sorted place. This can be a little odd when
the folder is sorted by something like the subject. It can also be a
little slow if you are viewing a large, sorted _INBOX_, since the
_INBOX_ will have to be re-sorted whenever new mail arrives.
The sorts are all independent of case and ignore leading or trailing
white space. There are actually two forms of subject sort. One called
_Subject_ and the other called _OrderedSubj_. They both ignore "Re:" at
the beginning and "(fwd)" at the end of the subjects. _Subject_ sorts
all the subjects alphabetically. _OrderedSubj_ sorts by subjects
alphabetically, groups messages with the same subject (pseudo-threads),
then sorts the groups by the date of the first message of the group.
Sorting by _Thread_ was added after _OrderedSubj_ and is usually a
better method. Thread sorting uses information in the message headers
References, Message-ID, and Subject. It is possible the sort will be
slightly slower with a Thread sort than with an OrderedSubj sort. The
sort by sender sorts by the user-id (part before the "@"), not the full
name. The arrival sort is no sort at all and the date sort depends on
the format of the date. Some dates are in strange formats and are
unparsable. The time zone is also taken into account.
Sorting large mail folders can be very slow since it requires fetching
all the headers of the mail messages. With UNIX _Alpine_, only the
first sort is slow since _Alpine_ keeps a copy of all the headers. One
exception is sorting in reverse arrival order. This is fast because no
headers have to be examined. _Alpine_ will show progress as it is
sorting.
__________________________________________________________________
Alternate Editor
In the _Alpine_ composer you can use any text editor, such as _vi_ or
_emacs,_ for composing the message text. The addresses and subject still
must be edited using the standard _Alpine_ composer. If you include the
feature enable-alternate-editor-cmd in your _pinerc_ you can type _^__
while in the body of the message in the composer and be prompted for
the editor. If you also set the editor variable in your _pinerc_ then
_^__ will invoke the configured editor when you type it.
Turning on the feature enable-alternate-editor-implicitly will
automatically invoke the editor you have defined with the _editor_
variable whenever you enter the body of a message you are composing.
For example, when you move out of the last header line and into the
body of the message, the alternate editor will be automatically
invoked.
We know that many people would like to use the alternate editor to edit
the mail header as well. We considered several designs for this and
didn't come up with one that we liked and that was easy to implement.
One of the main problems is that you lose access to the address book.
__________________________________________________________________
Signatures and Signature Placement
If the file _~/.signature_ (UNIX) or _<PINERC_directory>\PINE.SIG (PC)
exists, it will be included in all outgoing messages. It is included
before composition starts so that the user has a chance to edit it out
if he or she likes. The file name for the signature can be changed by
setting the signature-file variable in the _pinerc_. If the feature
enable-sigdashes is turned on then the line consisting of the three
characters "-- " is prepended to the signature file. When Replying or
Forwarding a message different signatures my be automatically included
by configuring them in the Roles setup screen. It's easy to include
different signatures by hand, by having multiple signature files
(_.sig1, .sig2, .sig3, etc_) and choosing to include (^R in the
composer) the correct one for the message being sent.
_Alpine_'s default behavior encourages a user to put his or her
contribution before the inclusion of the original text of the message
being forwarded or replied to, This is contrary to some conventions,
but makes the conversation more readable when a long original message
is included in a reply for context. The reader doesn't have to scroll
through the original text that he or she has probably already seen to
find the new text. If the reader wishes to see the old message(s), the
reader can scroll further into the message. Users who prefer to add
their input at the end of a message should set the signature-at-bottom
feature. The signature will then be appended to the end of the message
after any included text. This feature applies when _Reply_ing, not when
_Forward_ing.
__________________________________________________________________
Feature List Variable
_Alpine_ used to have _feature levels_ for users with different amounts
of experience. We found that this was too restrictive. _Alpine_ now has
a feature-list instead. Each user may pick and choose which features
they would like enabled (simple to do in the _Setup/Config_ screen).
There is a short description of each in Configuration Features. There
is also a short on-line help explaining the effect of each of the
features in the _Setup/Config_ screen. When the cursor is highlighting
a feature, the _?_ command will show the help text for that feature.
Features don't have values, they are just turned on or off. They are
all off by default.
The _feature-list_ variable is different from all other configuration
variables in that its value is additive. That is, the system-wide
configuration file can have some features turned on by default. The
user can select other features in their personal configuration file and
those features will be _added_ to the set of features turned on in the
system-wide configuration file. (With all other configuration
variables, the user's values _replace_ the system-wide values.)
Likewise, additional features may be set on the command-line with the
argument "-feature-list=". These will be added to the others.
The treatment of _feature-list_ in the system-wide _fixed_
configuration file is also different from other variables. The system
management can fix the value of individual features by placing them in
the fixed configuration file. Users will not be able to alter those
features, but will still be able to set the other non-restricted
features the way they like.
Because _feature-list_ is additive, there is a way to turn features off
as well as on. Prepending the prefix "no-" to any feature sets it to
off. This is useful for over-riding the system-wide default in the
personal configuration file or for over-riding the system-wide default
or the personal configuration value on the command line. For example,
if the system-wide default configuration has the _quit-without-confirm_
feature set, the user can over-ride that (and turn it off) by including
_no-quit-without-confirm_ in the personal configuration file or by
giving the command line argument
_-feature-list=no-quit-without-confirm._ More features (options) will no
doubt continue to be added.
__________________________________________________________________
Configuration Inheritance
We start with an explanation of how configuration works in hopes of
making it easier to describe how inheritance works.
_Alpine_ uses a hierarchy of configuration values from different
locations. There are five ways in which each configuration option
(configuration variable) can be set. In increasing order of precedence
they are:
1. the system-wide configuration file.
2. the personal configuration file
3. the personal exceptions file
4. a command line argument
5. the system-wide _fixed_ configuration file (Unix _Alpine_ only)
The fixed configuration file is normally
/usr/local/lib/pine.conf.fixed.
The system-wide configuration file is normally /usr/local/lib/pine.conf
for Unix _Alpine_ and is normally not set for _PC-Alpine_. For
_PC-Alpine_, if the environment variable _$PINECONF_ is set, that is
used for the system-wide configuration. This location can be set or
changed on the command line with the -P flag. The system-wide
configuration file can be either a local file or a remote configuration
folder.
For Unix _Alpine_, the personal configuration file is normally the file
.pinerc in the user's home directory. This can be changed with the -p
command line flag. For _PC-Alpine_, the personal configuration file is
in $PINERC or <PineRC registry value> or ${HOME}\ALPINE\PINERC or
<ALPINE.EXE dir>\PINERC. This can be changed with the -p command line
flag. If -p or $PINERC is used, the configuration data may be in a
local file or a remote config folder.
For Unix _Alpine_, the personal exceptions configuration file is
specified with the "-x exceptions_config" command line argument.
"Exceptions_config" may be either a local file or a remote
configuration folder. If there is no "-x" command line option, _Alpine_
will look for the file ".pinercex" in the same local directory that the
regular config file is located in. If the regular config file is remote
then Unix _Alpine_ looks in the home directory for ".pinercex".
For _PC-Alpine_, the personal exceptions configuration file is
specified with the "-x exceptions_config" command line argument. If
there is no "-x" command line argument the environment variable
$PINERCEX may be set to the name of the "exceptions_config" instead.
"Exceptions_config" may be either a local file or a remote
configuration folder. If there is no "-x" command line option and
$PINERCEX is not set, _PC-Alpine_ will look for the file "PINERCEX" in
the same local directory that the regular config file is located in. If
the regular config file is remote then _PC-Alpine_ looks in the local
directory specified by the "-aux local_directory" command line
argument, or the directory ${HOME}\ALPINE, or in <ALPINE.EXE directory>
for a file named "PINERCEX".
To reiterate, the value of a configuration option is taken from the
last location in the list above in which it is set. Or, thinking about
it slightly differently, a default value for an option is established
in the system-wide configuration file (or in the source code if there
is no value in the system-wide file). That default remains in effect
until and unless it is overridden by a value in a location further down
the list, in which case a new "default" value is established. As we
continue down the list of locations we either retain the value at each
step or establish a new value. The value that is still set after going
through the whole list of configuration locations is the one that is
used.
So, for example, if an option is set in the system-wide configuration
file and in the personal configuration file, but is not set in the
exceptions, on the command line, or in the fixed file; then the value
from the personal configuration file is the one that is used. Or, if it
is set in the system-wide config, in the personal config, not in the
exceptions, but is set on the command line; then the value on the
command line is used.
Finally we get to inheritance. For configuration options which are
lists, like "smtp-server" or "incoming-folders", the inheritance
mechanism makes it possible to _combine_ the values from different
locations instead of _replacing_ the value. This is true of all
configuration lists other than the "feature-list", for which you may
already set whatever you want at any configuration location (by using
the "no-" prefix if necessary).
To use inheritance, set the first item in a configuration list to the
token "INHERIT". If the first item is "INHERIT", then instead of
replacing the default value established so far, the rest of the list is
appended to the default value established so far and that is the new
value.
Here is an example which may make it clearer. Suppose we have:
System-wide config : smtp-server = smtp1.corp.com, smtp2.corp.com
Personal config : smtp-server = INHERIT, mysmtp.home
Exceptions config : smtp-server = <No Value Set>
Command line : smtp-server = <No Value Set>
Fixed config : smtp-server = <No Value Set>
This would result in an effective smtp-server option of
smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home
The "INHERIT" token can be used in any of the configuration files and
the effect cascades. For example, if we change the above example to:
System-wide config : smtp-server = smtp1.corp.com, smtp2.corp.com
Personal config : smtp-server = INHERIT, mysmtp.home
Exceptions config : smtp-server = INHERIT, yoursmtp.org
Command line : smtp-server = <No Value Set>
Fixed config : smtp-server = <No Value Set>
This would result in:
smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home, yoursmtp.org
Unset variables are skipped over (the default value is carried forward)
so that, for example:
System-wide config : smtp-server = smtp1.corp.com, smtp2.corp.com
Personal config : smtp-server = <No Value Set>
Exceptions config : smtp-server = INHERIT, yoursmtp.org
Command line : smtp-server = <No Value Set>
Fixed config : smtp-server = <No Value Set>
produces:
smtp-server = smtp1.corp.com, smtp2.corp.com, yoursmtp.org
If any later configuration location has a value set (for a particular
list option) which does _not_ begin with "INHERIT", then that value
replaces whatever value has been defined up to that point. In other
words, that cancels out any previous inheritance.
System-wide config : smtp-server = smtp1.corp.com, smtp2.corp.com
Personal config : smtp-server = INHERIT, mysmtp.org
Exceptions config : smtp-server = yoursmtp.org
Command line : smtp-server = <No Value Set>
Fixed config : smtp-server = <No Value Set>
results in:
smtp-server = yoursmtp.org
For some configuration options, like "viewer-hdr-colors" or
"patterns-roles", it is difficult to insert the value "INHERIT" into
the list of values for the option using the normal Setup tools. In
other words, the color setting screen (for example) does not provide a
way to input the text "INHERIT" as the first item in the
viewer-hdr-colors option. The way to do this is to either edit the
pinerc file directly and manually insert it, or turn on the
"expose-hidden-config" feature and insert it using the Setup/Config
screen.
__________________________________________________________________
Using Environment Variables
The values of _Alpine_ configuration options may include environment
variables which are replaced by the value of the variable at the time
_Alpine_ is run (and also at the time the config option is changed). The
syntax to use environment variables is a subset of the common Unix
shell dollar-syntax. For example, if
$VAR
appears in the value of a _Alpine_ configuration option it is looked up
in the environent (using getenv("VAR")) and its looked-up value
replaces the $VAR part of the option value. To include a literal dollar
sign you may precede the dollar sign with another dollar sign. In other
words, if the text
$$text
is the value of a configuration option, it will be expanded to
$text
and no environment lookup will be done. For Unix _Alpine_ it will also
work to use a backslash character to escape the special meaning of the
dollar sign, but $$ is preferable since it works for both _PC-Alpine_
and Unix _Alpine_, allowing the configuration option to be in a shared
configuration file.
This all sounds more complicated than it actually is. An example may
make it clearer. Unfortunately, the way in which environment variables
are set is OS-dependent and command shell-dependent. In some Unix
command shells you may use
PERSNAME="Fred Flintstone"
export PERSNAME
Now, if you use _Alpine_'s Setup/Config screen to set
personal-name=$PERSNAME
the $PERSNAME would be replaced by Fred Flintstone so that this would
be equivalent to
personal-name=Fred Flintstone
Note, environment variable substitution happens after configuration
options which are lists are split into the separate elements of the
list, so a single environment variable can't contain a list of values.
The environment variable doesn't have to be the only thing after the
equal sign. However, if the name of the variable is not at the end of
the line or followed by a space (so that you can tell where the
variable name ends), it must be enclosed in curly braces like
${VAR}
It is always ok to use the braces even if you don't need to.
It is also possible to set a default value for an environment variable.
This default value will be used if the environment variable is not set
(that is, if getenv("VAR") returns NULL). The syntax used to set a
default value is
${VAR:-default value}
If the config file contains
personal-name=${VAR:-Fred Flintstone}
then when _Alpine_ is run VAR will be looked up in the environment. If
VAR is found then personal-name will have the value that VAR was set
to, otherwise, personal-name will be set to Fred Flintstone, the
default value.
An example where an environment variable might be useful is the
variable inbox-path in the global configuration file. Suppose most
users used the server
imapserver.example.com
but that there were some exceptions who used
altimapserver.example.com
In this case, the system manager might include the following line in
the systemwide default _Alpine_ configuration file
inbox-path=${IMAPSERVER:-imapserver.example.com}
For the exceptional users adding
IMAPSERVER=altimapserver.example.com
to their environment should work.
Another example might be the case where a user has to use a different
SMTP server from work and from home. The setup might be something as
simple as
smtp-server=$SMTP
or perhaps a default value could be given. Note that, as mentioned
above, the variable SMTP cannot contain a list of SMTP servers.
__________________________________________________________________
SMTP Servers
It is sometimes desirable to set smtp-server=localhost instead of
setting sendmail-path to overcome the inability to negotiate ESMTP
options when _sendmail_ is invoked with the _-t_ option. Sendmail can
also be subject to unacceptable delays due to slow DNS lookups and
other problems.
It is sometimes desirable to configure an SMTP server on a port other
than the default port 25. This may be used to provide an alternate
service that is optimized for a particular environment or provides
different features from the port 25 server. An example would be a
program that negotiates ESMTP options and queues a message, but does
not attempt to deliver messages. This would avoid delays frequently
encountered when invoking _sendmail_ directly.
A typical configuration would consist of
* A program that implements the SMTP or ESMTP protocol via stdio.
* An entry in /etc/services for the alternate service.
* An entry in /etc/inetd.conf for the alternate service.
* An entry in /usr/local/lib/pine.conf,
/usr/local/lib/pine.conf.fixed or ~/.pinerc.
__________________________________________________________________
MIME.Types file
_Alpine_'s MIME-TYPE support is based on code contributed by Hans
Drexler <drexler@mpi.nl>. _Alpine_ assigns MIME Content-Types
according to file name extensions found in the system-wide files
/usr/local/lib/mime.types and /etc/mime.types, and a user specific
~/.mime.types file.
In Windows, _Alpine_ looks in the same directory as the PINERC file and
the same dir as ALPINE.EXE. This is similar to the UNIX situation with
personal config info coming before potentially shared config data. An
alternate search path can be specified by setting the
mimetype-search-path variable in the user or system-wide configuration
or by setting the MIMETYPES environment variable.
These files specify file extensions that will be connected to a mime
type. Lines beginning with a '#' character are treated as comments and
ignored. All other lines are treated as a mime type definition. The
first word is a _type/subtype_ specification. All following words are
file _extensions_ belonging to that type/subtype. Words are separated
by whitespace characters. If a file extension occurs more than once,
then the first definition determines the file type and subtype. A
couple sample lines from a mime.types file follow:
image/gif gif
text/html html htm
video/mpeg mpeg mpg mpe
__________________________________________________________________
Color Details
UNIX _Alpine_ may display color if the terminal or terminal emulator
you are using is capable of displaying colors. If the terminal supports
ANSI color escape sequences you will be able to turn color on using the
color-style option and setting it to the value _force-ansi-8color_ or
_force-ansi-16color_. If instead you'd like _Alpine_ to automatically
detect whether or not you are on a color terminal, set _color-style_ to
_use-termdef_ _and_ configure the termcap entry to describe your
terminal's color capabilities.
If the _color-style_ option is set to _use-termdef_, _Alpine_ looks in
the terminal capabilities database, TERMINFO or TERMCAP, depending on
how _Alpine_ was compiled, to decide whether or not your terminal is
capable of color. For TERMINFO compiled _Alpine_s, the capabilities
that are used for color are "colors", "setaf", "setab", "op", and
"bce". If you have a terminal with color capabilities described by the
"scp" capability, _Alpine_ does not support it. The capabilities "setf"
and "setb" may be used instead of "setaf" and "setab". The capability
"bce" is optional and is used as an optimization, the other
capabilities are required. For TERMCAP compiled _Alpine_s, the
capabilities that are used for color are "Co", "AF", "AB", "op", and
"ut". The capabilities "Sf" and "Sb" may be used instead of "AF" and
"AB", though this isn't a useful feature.
Here are some short descriptions of the capabilities listed above. The
TERMINFO name is listed, followed by the TERMCAP name in parentheses.
_colors_ (_Co_)
The number of different colors.
_setaf_ (_AF_)
Set ANSI foreground color.
_setab_ (_AB_)
Set ANSI background color.
_setf_ (_Sf_)
Set foreground color. Alternate form of _setaf_.
_setb_ (_Sb_)
Set background color. Alternate form of _setab_.
_op_ (_op_)
Set default pair to its original value.
_bce_ (_ut_)
Screen is erased with current background color instead of
default background.
A standard ANSI terminal which supports color will have a TERMINFO
entry which contains:
colors#8
setaf=\E[3%p1%dm
setab=\E[4%p1%dm
op=\E[39;49m
bce
or the TERMCAP equivalent:
Co#8
AF=\E[3%dm
AB=\E[4%dm
op=\E[39;49m
ut
If there are eight colors, the program uses colors 0, 1, ..., 7. For an
ANSI terminal, the foreground color is set by sending the escape
sequence "Escape LeftBracket 3 color_number m" to the terminal. The
background color is set by sending the sequence "Escape LeftBracket 4
color_number m". ANSI colors zero through seven are defined to be
"black", "red", "green", "yellow", "blue", "magenta", "cyan", and
"white". Some terminal emulators will swap blue and red and swap yellow
and cyan. The capabilities "setf" and "setb" are usually designed for
those terminals so that they will flip the color numbers 1 and 4 and
the numbers 3 and 6 to compensate for this. _Alpine_ will use the ANSI
versions of the capabilities if they exist, and will use the non-ANSI
versions (setf and setb) if the ANSI versions don't exist. Here's a
version which does the flipping. This can only be used with TERMINFO
_Alpine_s, because of the arithmetic, which is not supported by TERMCAP.
colors#8
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
op=\E[39;49m
bce
Some terminal emulators are capable of displaying eight more colors
when the foreground colors 30-37 are replaced with 90-97 and the
background colors 40-47 are replaced with 100-107. These terminals
require a fancy termcap entry which can take foreground colors 0, 1,
..., 15 and map that into 30, 31, ..., 37, 90, 91, ..., 97, and
similarly for the background colors. Here is a terminfo entry which
will do just that:
colors#16
setaf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%dm
setab=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%dm
op=\E[39;49m
bce
and here is the termcap equivalent:
Co#16
AF=\E[%i%i%>\001\034%>\045\064%dm
AB=\E[%i%i%>\001\046%>\057\064%dm
op=\E[39;49m
ut
This is a terminfo entry for 16 colors that also does the color
flipping:
colors#16
setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{
4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{
4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
op=\E[39;49m
bce
If you are always using the same display it probably won't matter to
you if the color pairs red/blue and cyan/yellow are flipped, since
you'll always be seeing them flipped. You will get different defaults
than on a display with them not flipped, but that's about all. If you
are trying to use the same pinerc file from displays with different
color characteristics, or from _Alpine_ and _PC-Alpine_, you will have
to be more careful. The colors numbered 0 through 7 may be used
portably between different systems if you are careful to make them
correspond to the ANSI order mentioned above. You can check this by
looking at a color configuration screen for one of the colors. The
first eight colors should be in the order above. If they aren't, you
could fix that by modifying your termcap entry on the UNIX system. This
is not possible if your system uses TERMCAP instead of TERMINFO.
__________________________________________________________________
S/MIME Overview
UNIX _Alpine_ only.
S/MIME is a standard for the public key encryption and signing of
email. UNIX _Alpine_ contains a basic implementation of S/MIME based on
the OpenSSL libraries.
Some limitations:
* There is no _PC-Alpine_ implementation.
* There is no provision for checking for CRLs (Certificate Revocation
Lists) in _Alpine_.
* This built-in S/MIME implementation is not compatible with and does
not help with PGP.
* There is no mechanism available for feeding either an entire
incoming or an entire outgoing message to an external filter and
using that external filter to do S/MIME or PGP processing.
* Because the implementation currently uses OpenSSL, there is only a
very limited integration with the Mac OS Keychain (the storing and
access of public certificates).
* There is no way to view or manipulate the lists of certificates
from within _Alpine_.
The S/MIME configuration screen is reached by going to the Main Menu
and typing the "S Setup" command followed by "M S/MIME".
S/MIME BASICS
In order to digitally sign messages you send you must have a
public/private key-pair. This may be obtained from a public Certificate
Authority (CA) such as Thawte, Verisign, Comodo, or GoDaddy; or from a
smaller CA such as a university which provides certificates for its
users or a company which provides certificates for its workers. These
certificates are bound to an email address, so the identity being
verified is the email address not a person's name.
Mail is signed by using the sender's private key, which only the owner
of the private key has access to. The signature is verified using the
signer's public key, which anyone can have access to. With _Alpine_,
the first time you receive a signed message the public key of the
sender will be stored for future use.
Mail is encrypted using the recipient's public key and decrypted by the
recipient with their private key.
You need a key of your own in order to sign outgoing messages and to
have others encrypt messages sent to you. You do not need a key of your
own to verify signed messages sent by others or to encrypt messages
sent to others.
ALPINE S/MIME CERTIFICATE STORAGE
By default UNIX _Alpine_ stores the certificates it uses in a directory
in your home directory. The directory name is
.alpine-smime
Within that directory are three subdirectories. Each of the three
subdirectories contains files with PEM-encoded contents, the default
format for OpenSSL. The "public" directory contains public
certificates. The files within that directory have names that are email
addresses with the suffix ".crt" appended. An example filename is
user@example.com.crt
The "private" directory contains private keys, probably just one for
your private key. These are also email addresses but with the suffix
".key" instead. The third directory is "ca" and it contains
certificates for any Certificate Authorities that you want to trust but
that aren't contained in the set of system CAs. Those files may have
arbitrary names as long as they end with the suffix ".crt".
HOW TO SIGN AND ENCRYPT
If you have a certificate you may sign outgoing messages. After typing
the Ctrl-X command to send a message you will see the prompt
Send message?
Available subcommands include "G Sign" and "E Encrypt". Typing the "G"
command will change the prompt to
Send message (Signed)?
Typing the "E" command will change the prompt to
Send message (Encrypted)?
You may even type both to get
Send message (Encrypted, Signed)?
HOW TO READ SIGNED OR ENCRYPTED MESSAGES
The reading of a signed message should not require any special action
on your part. There should be an editorial addition at the start of the
message which says either
This message was cryptographically signed.
or
This message was cryptographically signed but the signature could not
be verified.
If an encrypted message is sent to you the encrypted text will not be
shown. You will have to type the "Ctrl-D Decrypt" command (from the
screen where you are viewing the message) and supply your passphrase
when asked.
For a signed or encrypted message there is also a "Ctrl-E Security"
command which gives you some information about the certificate used to
sign or encrypt the message.
MISCELLANEOUS
You may have access to a private certificate in the PKCS12 format,
which would sometimes be in a file with a ".p12" suffix. The UNIX shell
command
openssl pkcs12 -in file.p12 -out file.pem
may work to convert that from the PKCS12 format to the PEM format. Then
that file could be placed in the "private" directory with a filename of
your email address followed by the suffix ".key".
__________________________________________________________________
Additional Notes on PC-Alpine
Below are a few odds and ends worth mentioning about _PC-Alpine_. They
have to do with DOS-specific behavior that is either necessary or
useful (and sometimes both!).
As _PC-Alpine_ runs in an environment with limited access control,
accounting or auditing, an additional line is automatically inserted
into the header of mail messages generated by _PC-Alpine_:
X-Sender: <userid>@<imap.host>
By popular demand of system administrators, _PC-Alpine_ has been
modified to prevent sending messages until the user has successfully
logged into a remote mail server. Even though _PC-Alpine_ cannot
prevent users from changing the apparent identity of the sender of a
message, the IMAP server login name and host name included in the
_X-Sender_ line provide some level of traceability by the recipient.
However, this should not be considered a rigorous form of
authentication. It is extremely lightweight, and is not a replacement
for true authentication.
Hand in hand with authentication and accounting is user information.
Since _PC-Alpine_ has no user database to consult for _user-id_,
_personal-name_, etc., necessary information must be provided by the
user/installer before _PC-Alpine_ can properly construct the "From"
address required for outbound messages. _PC-Alpine_ will, by default,
prompt for the requisite pieces as they are needed. This information
corresponds to the _PINERC_ variables user-id, personal-name,
user-domain, and smtp-server.
The user is then asked whether or not this information should
automatically be saved to the _PINERC_. This is useful behavior in
general, but can lead to problems in a lab or other shared environment.
Hence, these prompts and automatic saving of configuration can be
turned off on an entry by entry basis by setting any of the above
values in the _PINERC_ to the null string (i.e., a pair of double
quotes). This means that the user will be prompted for the information
once during each _Alpine_ session, and no opportunity to save them in
the _PINERC_ will be offered.
Another feature of DOS is the lack of standard scratch area for
temporary files. During the course of a session, _PC-Alpine_ may
require numerous temporary files (large message texts, various caches,
etc.). Where to create them can be a problem, particularly when running
under certain network operating systems. _PC-Alpine_ observes the
_TMPDIR_, _TMP_, and _TEMP_ environment variables, and creates temporary
files in the directory specified by either. In their absence,
_PC-Alpine_ creates these files in the root of the current working
drive. Some temporary files have to be created in the same directory as
the file they are a temporary copy of. For example, a pinerc file or a
address book file.
Behind the Scenes
Many people ask how certain _Alpine_ features are implemented. This
section outlines some of the details.
Address Books
There are two types of address book storage. There are _local_ address
books, which are the address books that are stored in a local file; and
there are _remote_ address books, which are stored on an IMAP server.
Information About Remote Address Books
NOTE: The remote address book capability does not allow you to
access an existing local address book from a remote system! That is,
you can't set the remote address book to something like
{remote.host}.addressbook and expect to access the existing
.addressbook _file_ on remote.host. Instead, you need to create a
new remote address book in a new, previously unused remote mail
_folder_. Then you can use the _Select_ and _Apply Save_ commands in
the address book screen to _Save_ all of the entries from an
existing local address book to the new remote address book.
A remote address book is stored in a mail folder on an IMAP server. An
_Alpine_ remote address book is just like an _Alpine_ local address book
in that it is not interoperable with other email clients. The folder is
a regular folder containing mail messages but those messages are
special. The first message must be an alpine remote address book header
message which contains the header _x-pine-addrbook_. The last message
in the folder contains the address book data. In between the first and
the last message are old versions of the address book data. The address
book data is simply stored in the message as it would be on disk, with
no MIME encoding. When it is used the data from the last message in the
folder is copied to a local file and then that file is used exactly
like a local address book file is used. When a change is made the
modified local file is appended to the remote folder in a new message.
In other words, the local file is just a cache copy of the data in the
remote folder. Each client which uses the remote address book will have
its own cache copy of the data. Whenever a copy is done the entire
address book is copied, not just the entries which have changed.
_Alpine_ can tell that the remote data has changed by one of several
methods. If the date contained in the Date header of the last message
has changed then it knows it has changed. If the UID of the last
message has changed, or the number of messages in the folder has
changed, it knows that it has changed. When _Alpine_ discovers the
folder has changed it gets a new copy and puts it in the local cache
file.
There is a configuration file variable for remote address books called
remote-abook-metafile. The variable is the name of a file in which
information about remote address books is stored. There is one line in
the metafile for each remote address book. The information stored there
is the name of the cache file and information to help figure out when
the remote folder was last changed. If the metafile or any of the cache
files is deleted then _Alpine_ will rebuild them the next time it runs.
Remote address books have names that look just like regular remote mail
folder names. For example:
{host.domain}foldername
_Alpine_ decides whether or not an address book is remote simply by
looking at the first character of the address book name and comparing
it to '{'.
Information About All Address Books
The address book is named, by default, .addressbook in the user's Unix
home directory, or in the case of _PC-Alpine_, ADDRBOOK, in the same
directory as the PINERC file. There may be more than one address book,
and the default name can be overridden via an entry in any of the
_Alpine_ configuration files. The two configuration variables
address-book and global-address-book are used to specify the names of
the address books. Each of these variables is a list variable. The
total set of address books for a user is the combination of all the
address books specified in these two lists. Each entry in the list is
an optional nickname followed by an address book name. The nickname is
everything up to the last space before the file name. The
_global-address-book_ list will typically be configured in the
system-wide configuration file, though a user may override it like most
other variables. Address books which are listed in the
_global-address-book_ variable are forced read-only, and are typically
shared among multiple users.
Local address books (or local cache files for remote address books) are
simple text files with lines in the format:
<nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
The last two fields are optional. A "line" may be made up of multiple
actual lines in the file by using continuation lines, which are lines
beginning with SPACE characters. The line breaks may be after TABs or
in between addresses in a distribution list. Each _actual_ line in the
file must be less than 1000 characters in length.
Nicknames (the first field) are short names that the user types instead
of typing in the full address. There are several characters which
aren't allowed in nicknames in order to avoid ambiguity when parsing
the address (SPACE, COMMA, @, ", ;, :, (, ), [, ], <, >, \). Nicknames
aren't required. In fact, none of the fields is required.
The _fullname_ field is usually stored as Last_name, First_name, in
order that a sort on the fullname field comes out sorted by Last_name.
If there is an unquoted comma in the fullname, _Alpine_ will flip the
first and last name around and get rid of the comma when using the
entry in a composition. It isn't required that there be a comma, that's
only useful if the user wants the entries to sort on last names.
The _address_ field takes one of two forms, depending on whether the
entry is a single (simple) address or a distribution list. For a simple
entry, the address field is an RFC 2822 address. This could be either
the email-address part of the address, i.e., the part that goes inside
the brackets (<>), or it could be a full RFC 2822 address. The phrase
part of the address (the fullname) is used unless there is a fullname
present in the fullname field of the address book entry. In that case,
the fullname of the address book entry replaces the fullname of the
address. For a distribution list, the <address> is in the format:
"(" <address>, <address>, <address>, ... ")"
The only purpose for the parentheses around the list of addresses is to
make it easier for the parsing routines to tell that it is a simple
entry instead of a list. The two are displayed differently and treated
slightly differently in some cases, though most of the distinction has
disappeared. Each of the addresses in a list can be a full RFC 2822
address with fullname included, or it may be just the simple
email-address part of the address. This allows the user to have a list
which includes the fullnames of all the list members. In both the
simple and list cases, addresses may also be other nicknames which
appear in this address book or in one of the other address books.
(Those nicknames are searched for by looking through the address books
in the order they appear in the address book screen, with the first
match winning.) Lists may be nested. If addresses refer to each other
in a loop (for example, list A includes list B which includes list A
again) this is detected and flagged. In that case, the address will be
changed to "**** address loop ****".
The optional _fcc_ field is a folder name, just like the fcc field in
the composer headers. If the first address in the To field of a
composition comes from an address book entry with an fcc field, then
that fcc is placed in the fcc header in the composer.
The _comments_ field is just a free text field for storing comments
about an entry. By default, neither the fcc nor the comments field is
shown on the screen in the address book screen. You may make those
fields visible by configuring the variable addressbook-formats. They
are also searched when you use the _WhereIs_ command in the address
book screen and are visible when you _View_ or _Update_ an entry.
The address book is displayed in the order that it is stored. When the
user chooses a different sorting criterion, the data is actually sorted
and stored, as opposed to showing a sorted view of the data.
When the address book is written out, it is first written to a
temporary file and if that write is successful it is renamed. This
guards against errors writing the file that might destroy the whole
address book. The address book is re-written after each change. If the
address book is a remote address book, the file is then appended to the
remote mail folder using IMAP.
The end-of-line character(s) in the address book file are those native
to the system writing it. So it is <LF> on Unix and <CR><LF> on PC's.
However, both Unix and PC versions of _Alpine_ can read either format,
so it should be possible to share a read-only address book among the
two populations (using NFS, for example).
__________________________________________________________________
Address Book Lookup File
_Pine_ used an additional file for each address book, called the LookUp
file. It had the same name as the address book file with the suffix
".lu" appended. _Alpine_ no longer uses a lookup file.
Validity Checking of Address Books
There is no file locking done on _Alpine_ address books, however, there
is considerable validity checking done to make sure that the address
book hasn't changed unexpectedly. Whenever the address book is about to
be changed, a check is made to see if the file is newer than when we
read it or the remote address book folder has changed since we last
copied it. If either of these is true, the change is aborted.
There is an automatic, behind-the-scene check that happens every so
often, also. For example, if someone else changes one of the address
books that you have configured, your _Alpine_'s copy of the address
book will usually be updated automatically without you noticing. This
checking happens at the same time as new mail checking takes place,
unless you are actively using the address book, in which case it
happens more frequently.
__________________________________________________________________
Remote Configuration
Configuration information may be stored remotely. Remote configuration
information is stored in a folder on an IMAP server. This should be a
folder which is used only for storing the configuration information. In
other words, it should be a folder which didn't exist before.
Remote configuration folders are very similar to remote address book
folders. They both consist of a header message, which serves to
identify the type of folder; the last message, which contains the data;
and intermediate messages, which contain old versions of the data. The
first message must contain the header _x-pine-pinerc_.
When a remote configuration is being used, the folder is checked to
make sure it is a remote configuration folder, then the data contained
in the last message is copied to a temporary file. That file is treated
just like any regular local configuration file from that point on.
Whenever a configuration change is made, the entire file is copied back
to the IMAP server and is appended to the folder as a new message.
Because remote configuration folders are so similar to remote address
books, the configuration variable remote-abook-metafile is used by
both.
Remote configuration folders have names that look just like regular
remote mail folder names. For example:
{host.domain}mypinerc
_Alpine_ decides whether or not a configuration file is remote simply
by looking at the first character of the name and comparing it to '{'.
__________________________________________________________________
Checkpointing
Periodically _Alpine_ will save the whole mail folder to disk to
prevent loss of any mail or mail status in the case that it gets
interrupted, disconnected, or crashes. The period of time _Alpine_
waits to do the checkpoint is calculated to be minimally intrusive. The
timing can be changed (but usually isn't) at compile time. Folder
checkpointing happens for both local folders and those being accessed
with IMAP. The delays are divided into three categories:
The exact algorithm given below is no longer correct. It has gotten
more complicated over time. However, this gives the general idea
_Alpine_ uses when deciding whether or not to do a checkpoint.
Good Time:
This occurs when _Alpine_ has been idle for more than 30
seconds. In this case _Alpine_ will checkpoint if 12 changes to
the file have been made or at least one change has been made and
a checkpoint hasn't been done for five minutes.
Bad Time:
This occurs just after _Alpine_ has executed some command.
_Alpine_ will checkpoint if there are 36 outstanding changes to
the mail file or at least one change and no checkpoint for ten
minutes.
Very Bad Time:
Done when composing a message. In this case, _Alpine_ will only
checkpoint if at least 48 changes have been made or at least one
change has been made in the last twenty minutes with no
checkpoint.
__________________________________________________________________
Debug Files
If UNIX _Alpine_ is compiled with the compiler _DEBUG_ option on (the
default), then _Alpine_ will produce debugging output to a file. This
can be disabled at compile-time with the --disable-debug configure
option, or at run-time with the command line flag -d0. The file is
normally .pine-debugX in the user's home directory where _X_ goes from
1 to 4. Number 1 is always the most recent session and 4 the oldest.
Four are saved because often the user has gone in and out of _Alpine_ a
few times after a problem has occurred before the expert actually gets
to look at it. The amount of output in the debug files varies with the
debug level set when _Alpine_ is compiled and/or as a command line
flag. The default is level 2. This shows very general things and
records errors. Level 9 produces copious amounts of output for each
keystroke.
Similarly, _PC-Alpine_ creates debug files named pinedebg.txtX in the
same directory as the PINERC file.
__________________________________________________________________
INBOX and Special Folders
The _INBOX_ folder is treated specially. It is normally kept open
constantly so that the arrival of new mail can be detected. The name
_INBOX_ refers to wherever new mail is retrieved on the system. If the
inbox-path variable is set, then _INBOX_ refers to that. IMAP servers
understand the concept of _INBOX_, so specifying the folder
_{imap.u.example.edu}INBOX_ is meaningful. The case of the word _INBOX_
is not important, but _Alpine_ tends to display it in all capital
letters.
The folders for sent mail and saved messages folders are also somewhat
special. They are automatically created if they are absent and
recreated if they are deleted.
__________________________________________________________________
Internal Help Files
The file pine.hlp in the alpine subdirectory of the distribution
contains all the help text for _Alpine_. It is compiled right into the
_Alpine_ binary as strings. This is done to simplify installation and
configuration. The pine.hlp file is in a special format that is
documented at the beginning of the file. It is divided into sections,
each with a name that winds up being referenced as a global variable.
This file is processed during the build process and turned into a C
file that is compiled into _Alpine_.
__________________________________________________________________
International Character Sets
_Alpine_ uses Unicode characters internally and it is a goal for
_Alpine_ to handle email in many different languages. _Alpine_ will
properly display only left-to-right character sets in a fixed-width
font. Specifically, _Alpine_ assumes that a fixed-width font is in use,
in the sense that characters are assumed to take up zero, one, or two
character cell widths from left to right on the screen. This is true
even in _PC-Alpine_.
_Alpine_ recognizes some local character sets which are right-to-left
(Arabic, Hebrew, and Thai) or not representable in a fixed-width font
(Arabic) and properly converts texts in these character sets to/from
Unicode; however, there are known display bugs with these character
sets.
There are three possible configuration character settings and some
environment variable settings which can affect how _Alpine_ handles
international characters. The first two of these are only available in
UNIX _Alpine_. The three configuration options are
_display-character-set_, _keyboard-character-set_, and
_posting-character-set_. The _keyboard-character-set_ defaults to being
the same value as the _display-character-set_, and that is usually
correct, because the keyboard almost always produces characters in the
same character set as the display displays. The _display-character-set_
is the character set that _Alpine_ will attempt to use when sending
characters to the display.
Besides those variables there is also use-system-translation which can
be used instead of these. That usage is only lightly tested and is not
recommended.
By default, the _display-character-set_ variable is not set and UNIX
_Alpine_ will attempt to get this information from the environment. In
particular, the nl_langinfo(CODESET) call is used. This usually depends
on the setting of the environment variables LANG or LC_CTYPE. An
explicit configuration setting for _display-character-set_ will, of
course, override any default setting.
For _PC-Alpine_ the _display-character-set_ and the
_keyboard-character-set_ are always equivalent to UTF-8 and this is not
settable.
It is probably best to use UNIX _Alpine_ in a terminal emulator capable
of displaying UTF-8 characters, since that will allow you to view just
about any received text that is correctly formatted (note, however, the
above comments about known index display bugs with certain character
sets). You'll need to have an emulator which uses a UTF-8 font and
you'll need to set up your environment to use a UTF-8 charmap. For
example, on a Linux system you might include
setenv LANG en_US.UTF-8
or something similar in your UNIX startup files. You'd also have to
select a UTF-8 font in your terminal emulator.
The types of values that the character set variables may be set to are
UTF-8, ISO-8859-1, or EUC-JP. The ISO-2022 character sets are not
supported for input or for display, but as a special case, ISO-2022-JP
is supported for use only as a _posting-character-set_. In the
Setup/Config screen you may choose from a list of all the character
sets _Alpine_ knows about by using the "T" ToCharsets command. Here is
a list of many of the possible character sets:
UTF-8 Unicode
US-ASCII 7 bit American English characters
ISO-8859-1 8 bit European "Latin 1" character set
ISO-8859-2 8 bit European "Latin 2" character set
ISO-8859-3 8 bit European "Latin 3" character set
ISO-8859-4 8 bit European "Latin 4" character set
ISO-8859-5 8 bit Latin and Cyrillic
ISO-8859-6 8 bit Latin and Arabic
ISO-8859-7 8 bit Latin and Greek
ISO-8859-8 8 bit Latin and Hebrew
ISO-8859-9 8 bit European "Latin 5" character set
ISO-8859-10 8 bit European "Latin 6" character set
ISO-8859-11 Latin and Thai
ISO-8859-12 Reserved
ISO-8859-13 8 bit European "Latin 7" character set
ISO-8859-14 8 bit European "Latin 8" character set
ISO-8859-15 8 bit European "Latin 9" character set
ISO-8859-16 8 bit European "Latin 10" character set
KOI8-R 8 bit Latin and Russian
KOI8-U 8 bit Latin and Ukranian
WINDOWS-1251 8 bit Latin and Russian
TIS-620 8 bit Latin and Thai
VISCII 8 bit Latin and Vietnamese
GBK Latin and Chinese Simplified
GB2312 Latin and Chinese Simplified
CN-GB Latin and Chinese Simplified
BIG5 Latin and Chinese Traditional
BIG-5 Latin and Chinese Traditional
EUC-JP Latin and Japanese
SHIFT-JIS Latin and Japanese
EUC-KR Latin and Korean
KSC5601 Latin and Korean
When reading incoming email, _Alpine_ understands many different
character sets and is able to convert the incoming mail into Unicode.
The Unicode will be converted to the _display-character-set_ for
display on your terminal. Characters typed at the keyboard will be
converted from the _keyboard-character-set_ to Unicode for _Alpine_'s
internal use. You may find that you can read some malformed messages
that do not contain a character set label by setting the option
unknown-character-set.
The _posting-character-set_ is used when sending messages. The default
behavior obtained by leaving this variable unset is usually what is
wanted. In that default case, _Alpine_ will attempt to label the
message with the most specific character set from the rather arbitrary
set
US-ASCII, ISO-8859-15, ISO-8859-1, ISO-8859-2, VISCII, KOI8-R, KOI8-U,
ISO-8859-7, ISO-8859-6, ISO-8859-8, TIS-620, ISO-2022-JP, GB2312, BIG5,
EUC-KR, and UTF-8.
For example, if the message is made up of only US-ASCII characters, it
will be labeled US-ASCII. Otherwise, if it is all ISO-8859-15
characters, that will be the label. If that doesn't work the same is
tried for the remaining members of the list.
It might make sense to set _posting-character-set_ to an explicit value
instead. For example, if you usually send messages in Greek, setting
this option to ISO-8859-7 will result in messages being labeled as
US-ASCII if there are no non-ascii characters, ISO-8859-7 if there are
only Greek characters, or UTF-8 if there are some characters which
aren't representable in ISO-8859-7. Another possibility is to set this
option explicitly to UTF-8. In that case _Alpine_ labels only ascii
messages as US-ASCII and all other messages as UTF-8.
__________________________________________________________________
Interrupted and Postponed Messages
If the user is composing mail and is interrupted by being disconnected
(SIGHUP, SIGTERM or end of file on the standard input), _Alpine_ will
save the interrupted composition and allow the user to continue it when
he or she resumes _Alpine_. As the next _Alpine_ session starts, a
message will be given that an interrupted message can be continued. To
continue the interrupted message, simply go into the composer. To get
rid of the interrupted message, go into the composer and then cancel
the message with _^C._
Composition of half-done messages may be postponed to a later time by
giving the _^O_ command. Other messages can be composed while postponed
messages wait. All of the postponed messages are kept in a single
folder. Postponing is a good way to quickly reference other messages
while composing.
__________________________________________________________________
Message Status
The c-client library allows for several flags or status marks to be set
for each message. _Alpine_ uses four of these flags: UNSEEN, DELETED,
ANSWERED, and FLAGGED. The N in _Alpine_'s FOLDER INDEX means that a
message is unseen-it has not been read from this folder yet. The D
means that a message is marked for deletion. Messages marked with D are
removed when the user _Expunges_ the folder (which usually happens when
the folder is closed or the user quits _Alpine_). The A in _Alpine_'s
FOLDER INDEX means that the message has been replied-to. The * in
_Alpine_'s FOLDER INDEX means that the message has been ``flagged'' as
important. That is, the user used the _Flag_ command to turn the
FLAGGED flag on. This flag can mean whatever the user wants it to mean.
It is just a way to mark some messages as being different from others.
It will usually probably be used to mark a message as somehow being
``important''. For Berkeley format folders, the message status is
written into the email folder itself on the header lines marked Status:
and X-Status.
It is also possible for a user to define their own flags in addition to
the standard system flags above. In _Alpine_ these user defined flags
are called Keywords.
__________________________________________________________________
MIME: Reading a Message
_Alpine_ should be able to handle just about any MIME message. When a
MIME message is received, _Alpine_ will display a list of all the
parts, their types and sizes. It will display the attachments when
possible and appropriate and allow users to _Save_ all other
attachments.
_Alpine_ honors the "mailcap" configuration system for specifying
external programs for handling attachments. The mailcap file maps MIME
attachment types to the external programs loaded on your system which
can display and/or print the file. A sample mailcap file comes bundled
with the _Alpine_ distribution. It includes comments which explain the
syntax you need to use for mailcap. With the mailcap file, any program
(mail readers, newsreaders, WWW clients) can use the same configuration
for handling MIME-encoded data.
If a MAILCAPS environment variable is defined, _Alpine_ will use that
to look for one or more mailcap files, which are combined. In the
absence of MAILCAPS, Unix _Alpine_ will look for a personal mailcap
file in ~/.mailcap and combine that with a system-wide file in
/etc/mailcap. _PC-Alpine_ will look for a file named MAILCAP in the
same directory as the PINERC file, and/or the directory containing the
ALPINE.EXE executable.
Messages which include _rich text_ or _enriched text_ in the main body
will be displayed in a very limited way (it will show bold and
underlining).
If _Alpine_ sees a MIME message part tagged as type IMAGE, and
_Alpine_'s image-viewer configuration variable is set, _Alpine_ will
attempt to send that attachment to the named image viewing program. In
the case of UNIX _Alpine_, the DISPLAY environment variable is checked
to see if an X-terminal is being used (which can handle the images). If
the _image-viewer_ variable is not set, _Alpine_ uses the _mailcap_
system to determine what to do with IMAGE types, just as it does for
any other non-TEXT type, e.g. type APPLICATION. For MIME's generic
"catch all" type, APPLICATION/OCTET-STREAM, the _mailcap_ file will
probably not specify any action, but _Alpine_ users may always _Save_
any MIME attachment to a file.
MIME type "text/plain" is handled a little bit differently than the
other types. If you are viewing the main body part in the MESSAGE TEXT
viewing screen, then _Alpine_ will use its internal viewer to display
it. This happens even if there is a mailcap description which matches
this particular type. However, if you view a part of type "text/plain"
from the ATTACHMENT INDEX screen, then _Alpine_ will check the mailcap
database for a matching entry and use it in preference to its internal
viewer.
Some text attachments, specifically those which are just other email
messages forwarded as MIME messages, are displayed as part of the main
body of the message. This distinction allows easy display when possible
(the forward as MIME case) and use of an attachment viewer when that is
desirable (the plain text file attachment case).
If the parts of a multipart message are alternate versions of the same
thing _Alpine_ will select and display the one best suited. For parts
of type "message/external-body", the parameters showing the retrieval
method will be displayed, and the retrieval process is automated.
Messages of type "message/partial" are not supported.
__________________________________________________________________
MIME: Sending a Message
There are two important factors when trying to include an attachment in
a message: encoding and labeling. _Alpine_ has rules for both of these
which try to assure that the message goes out in a form that is robust
and can be handled by other MIME mail readers.
MIME has two ways of encoding data-Quoted-Printable and Base64.
Quoted-Printable leaves the ASCII text alone and only changes 8-bit
characters to "=" followed by the hex digits. For example, "=09" is a
tab. It has the advantage that it is mostly readable and that it allows
for end of line conversions between unlike systems. Base64 encoding is
similar to _uuencode_ or _btoa_ and just encodes a raw bit stream. This
encoding is designed to get text and binary files through even the most
improperly implemented and configured gateways intact, even those that
distort uuencoded data.
_All_ attachments are encoded using Base64 encoding. This is so that
the attachment will arrive at the other end looking exactly like it did
when it was sent. Since Base64 is completely unreadable except by
MIME-capable mailers or programs, there is an obvious tradeoff being
made here. We chose to ensure absolutely reliable transport of
attachments at the cost of requiring a MIME-capable mailer to read
them. If the user doesn't want absolute integrity he or she may always
_include_ text (with the _^R_ command) in the body of a message instead
of attaching it. With this policy, the only time quoted-printable
encoding is used is when the main body of a message includes special
foreign language characters.
When an attachment is to be sent, _Alpine_ sniffs through it to try to
set the right label (content-type and subtype). An attachment with any
lines longer than 500 characters in it or more than 10% of the
characters are 8-bit it will be considered binary data. _Alpine_ will
recognize (and correctly label) a few special types including GIF,
JPEG, PostScript, and some audio formats. Another method which can be
more robust and flexible for determining the content-type and subtype
is to base it on the file extension. This method uses a MIME.Types
File.
If it is not binary data (has only a small proportion of 8-bit
characters in it,) the attachment is considered 8-bit text. 8-bit text
attachments are labeled "text/plain" with charset set to the value of
the user's _keyboard-character-set_ variable. If an attachment is ASCII
(no 8-bit characters) and contains no control characters then it is
considered plain ASCII text. Such attachments are given the MIME label
"text/plain; charset=US-ASCII", regardless of the setting of the user's
_keyboard-character-set_ variable.
All other attachments are unrecognized and therefore given the generic
MIME label "application/octet-stream".
__________________________________________________________________
New Mail Notification
_Alpine_ checks for new mail in the _INBOX_ and in the currently open
folder every two and a half minutes by default. This default can be
changed in the system-wide configuration file or at compile-time with
the --with-mailcheck-interval=VALUE configuration option. A user can
change it by changing the option mail-check-interval. A new mail check
can be manually forced by redrawing the screen with a _^L_.
When there is new mail, the message(s) will appear in the index, the
screen will beep, and a notice showing the sender and subject will be
displayed. If there has been more than one new message since you last
issued a command to _Alpine_, the notice will show the count of new
messages and the sender of the most recent one.
__________________________________________________________________
NFS
It is possible to access mail folders on _NFS_ mounted volumes with
_Alpine_, but there are some drawbacks to doing this, especially in the
case of incoming-message folders that may be concurrently updated by
_Alpine_ and the system's mail delivery agent. One concern is that
_Alpine_'s user-contention locks don't work because _/tmp_ is usually
not shared, and even if it was, _flock()_ doesn't work across _NFS._
The implementation of the standard UNIX ".lock" file locking has been
modified to work with _NFS_ as follows. Standard hitching post locking
is used so first a uniquely named file is created, usually something
like _xxxx.host.time.pid._ Then a link to it is created named
_xxxx.lock_ where the folder being locked is _xxxx._ This file
constitutes the lock. This is a standard UNIX locking scheme. After the
link returns, a _stat(2)_ is done on the file. If the file has two
links, it is concluded that the lock succeeded and it is safe to
proceed.
In order to minimize the risks of locking failures via _NFS_, we
strongly recommend using IMAP rather than _NFS_ to access remote
incoming message folders, e.g. your _INBOX_. However, it is generally
safe to access personal saved-message folders via _NFS_ since it is
unlikely that more than one process will be updating those folders at
any given time. Still, some problems may occur when two _Alpine_
sessions try to access the same mail folder from different hosts
without using IMAP. Imagine the scenario: _Alpine_-A performs a write
that changes the folder. _Alpine_-B then attempts to perform a write on
the same folder. _Alpine_-B will get upset that the file has been
changed from underneath it and abort operations on the folder.
_Alpine_-B will continue to display mail from the folder that it has in
its internal cache, but it will not read or write any further data. The
only thing that will be lost out of the _Alpine_-B session when this
happens is the last few status changes.
If other mail readers besides _Alpine_ are involved, all bets are off.
Typically, mailers don't take any precautions against a user opening a
mailbox more than once and no special precautions are taken to prevent
_NFS_ problems.
__________________________________________________________________
Printers and Printing
UNIX _Alpine_ can print to the standard UNIX line printers or to
generic printers attached to ANSI terminals using the escape sequences
to turn the printer on and off. The user has a choice of three printers
in the configuration.
The first setting, _attached-to-ansi_, makes use of escape sequences on
ANSI/VT100 terminals. It uses "<ESC>[5i" to begin directing all output
sent to the terminal to the printer and then "<ESC>[4i" to return to
normal. _Alpine_ will send these escape sequences if the printer is set
to _attached-to-ansi._ This works with most ANSI/VT100 emulators on
Macs and PCs such as kermit, NCSA telnet, VersaTerm Pro, and WinQVT.
Various terminal emulators implement the print feature differently.
There is also a closely related method called
_attached-to-ansi-no-formfeed_ which is the same except for the lack of
formfeed character at the end of the print job.
_Attached-to-wyse_ and _attached-to-wyse-no-formfeed_ are very similar
to "attached-to-ansi". The only difference is in the control characters
sent to turn the printer on and off. The Wyse version uses Ctrl-R for
on, and Ctrl-T for off.
The second selection is the standard UNIX print command. The default is
_lpr_, but it can be changed on a system basis to anything so desired
in /usr/local/lib/pine.conf.
The third selection is the user's personal choice for a UNIX print
command. The text to be printed is piped into the command. _Enscript_
or _lpr_ with options are popular choices. The actual command is
retained even if one of the other print selections is used for a while.
Both the second and third sections are actually lists of possible
commands rather than single commands.
If you have a PostScript printer attached to a PC or Macintosh, then
you will need to use a utility called _ansiprt_ to get printouts on
your printer. _Ansiprt_ source code and details can be found in the
./contrib directory of the _Alpine_ distribution.
__________________________________________________________________
Save and Export
_Alpine_ users get two options for moving messages in _Alpine_: _Save_
and _Export_. _Save_ is used when the message should remain ``in the
_Alpine_ realm.'' Saved messages include the complete header (including
header lines normally hidden by _Alpine_), are placed in a _Alpine_
folder collection and accumulate in a standard folder format which
_Alpine_ can read. In contrast, the _Export_ command is used to write
the contents of a message to a file for use outside of _Alpine_.
Messages which have been exported are placed in the user's home
directory (unless the feature use-current-dir is turned on), not in a
_Alpine_ folder collection. Unless FullHeaderMode is toggled on, all
delivery-oriented headers are stripped from the message. Even with
_Export_, _Alpine_ retains message separators so that multiple messages
can accumulate in a single file and subsequently be accessed as a
folder. On UNIX systems, the _Export_ command pays attention to the
standard _umask_ for the setting of the file permissions.
__________________________________________________________________
Sent Mail
_Alpine_'s default behavior is to keep a copy of each outgoing message
in a special "sent mail" folder. This folder is also called the fcc for
"file carbon copy". The existence, location and name of the sent mail
folder are all configurable. Sent mail archiving can be turned off by
setting the configuration variable default-fcc="". The sent mail folder
is assumed to be in the default collection for _Save_s, which is the
first collection named in folder-collections. The name of the folder
can be chosen by entering a name in _default-fcc_. With _PC-Alpine_,
this can be a bit complicated. If the default collection for _Save_s is
local (DOS), then the _default-fcc_ needs to be SENTMAIL, which is
syntax for a DOS file. However, if the default collection for _Save_s
is remote, then the _default-fcc_ needs to be sent-mail to match the
UNIX syntax.
The configuration variable fcc-name-rule also plays a role in selecting
the folder to save sent mail in.
A danger here is that the sent mail could grow without bound. For this
reason, we thought it useful to encourage the users to periodically
prune their sent mail folder. The first time _Alpine_ is used each
month it will offer to archive all messages sent from the month before.
_Alpine_ also offers to delete all the sent mail archive folders which
are more than 1 month old. If the user or system has disabled sent mail
archiving (by setting the configuration variable _default-fcc=""_)
there will be no pruning question.
__________________________________________________________________
Spell Checker
Both UNIX _Alpine_ and _PC-Alpine_ depend on the system for their spell
checking and dictionary. _Pico_, the text editor, uses the same spell
checking scheme as _Alpine_.
Lines beginning with ">" (usually messages included in replies) are not
checked. The message text to be checked is on the standard input and
the incorrect words are expected on the standard output.
The default spell checker is UNIX _spell_. You can replace this by
setting the speller configuration variable. A common choice for a
superior replacement is _ispell_.
_PC-Alpine_ relies on the aspell library being installed. Aspell is
independent of Alpine. The Windows version has traditionally been
available at http://aspell.net/win32/. You'll need to download and
install both Aspell and a precompiled dictionary. Aspell is provided in
an installer package. Dictionaries, to be installed after Aspell, are
in '.exe' files to download and run.
__________________________________________________________________
Terminal Emulation and Key Mapping
UNIX _Alpine_ has been designed to require as little as possible from
the terminal. At the minimum, _Alpine_ requires cursor positioning,
clear to end of line, and inverse video. Unfortunately, there are
terminals that are missing some of these such as a vt52. _Alpine_ makes
no assumptions as to whether the terminal wraps or doesn't wrap. If the
terminal has other capabilities it may use some of them. _Alpine_ won't
run well on older terminals that require a space on the screen to
change video attributes, such as the Televideo 925. One can get around
this on some terminals by using "protected field" mode. The terminal
can be made to go into protected mode for reverse video, and then
reverse video is assigned to protected mode.
_Alpine_ handles screens of most any size and resizing on the fly. It
catches SIGWINCH and does the appropriate thing.
On the input side of things, _Alpine_ uses all the standard keys, most
of the control keys and (in function-key mode) the function keys.
_Alpine_ avoids certain control keys, specifically ^S, ^Q, ^H, and _^\_
because they have other meanings outside of _Alpine_ (they control data
flow, etc.) _^H_ is treated the same as the _delete_ key, so the
_backspace_ or _delete_ keys always work regardless of any
configuration. There is a feature _compose-maps-delete-key-to-ctrl-d_
which makes the delete key behave like ^D rather than ^H (deletes
current character instead of previous character).
Sometimes a communications program or communications server in between
you and the other end will eat certain control characters. There is a
work-around when you need it. If you type two escape characters
followed by a character that will be interpreted as the character with
the control key depressed. For example, _ESC ESC T_ is equivalent to
_^T_.
When a function key is pressed and _Alpine_ is in regular (non-function
key) mode, _Alpine_ traps escape sequences for a number of common
function keys so users don't get an error message or have an unexpected
command executed for each character in the function key's escape
sequence. _Alpine_ expects the following escape sequences from
terminals defined as VT100:
ANSI/VT100
F1: <ESC>OP
F2: <ESC>OQ
F3: <ESC>OR
F4: <ESC>OS
F5: <ESC>Op
F6: <ESC>Oq
F7: <ESC>Or
F8: <ESC>Os
F9: <ESC>Ot
F10: <ESC>Ou
F11: <ESC>Ov
Arrow keys are a special case. _Alpine_ has the escape sequences for a
number of conventions for arrow keys hard coded and does not use
_termcap_ to discover them. This is because _termcap_ is sometimes
incorrect, and because many users have PC's running terminal emulators
that don't conform exactly to what they claim to emulate. There is a
feature called termdef-takes-precedence which can be set to cause the
_termcap_ or _terminfo_ definitions to be used instead of the built in
definitions. Some arrow keys on old terminals send single control
characters like _^K_ (one even sends _^\_). These arrow keys will not
work with _Alpine_. The most popular escape sequences for arrow keys
are:
Up: <ESC>[A <ESC>?x <ESC>A <ESC>OA
Down: <ESC>[B <ESC>?r <ESC>B <ESC>OB
Right: <ESC>[C <ESC>?v <ESC>C <ESC>OC
Left: <ESC>[D <ESC>?t <ESC>D <ESC>OD
|