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
|
Alpine Technical Notes
Version 2.01, January 2009
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 /etc/pine.conf.fixed
2. _smtp-server_ in /etc/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 /etc/pine.conf
8. _smtp-server_ in /etc/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?= =?i
so-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: /etc/pine.info,
/etc/pine.conf, and /etc/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.
/etc/pine.conf
Pine's global configuration file.
/etc/pine.conf.fixed
Non-overridable global configuration file.
/etc/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 > /etc/pine.conf
To generate a system configuration file using settings from an old
system configuration file, execute
alpine -P old-pine.conf -conf > /etc/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
_/etc/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, /etc/pine.conf or
/etc/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 SUBJKEY(6
7%)
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-InboxandMail-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 /var/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, /etc/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/bin/sensible-browser,
/usr/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/bin/sensible-browser must exist. If either condition is not
met, then the file /usr/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 /etc/pine.conf.fixed.
The system-wide configuration file is normally /etc/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 /etc/pine.conf, /etc/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
/etc/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
|