Knowledge

Apache SpamAssassin: Difference between revisions

Source 📝

421: 1778: 648:. Within this file, they can specify individuals whose emails are never considered spam, or change the scores for certain rules. The user can also define a list of languages which they want to receive mail in, and SpamAssassin then assigns a higher score to all mails that appear to be written in another language. This can be very useful to users receiving a lot of foreign spam but never actually corresponding with people in that language. 71: 620:"limited time only" phrase) might be assigned a score of +0.3. With a spam threshold of 5 (default as of SpamAssassin version 2.55), several other tests would usually have to fail for the mail to be classified as spam. On the other hand, some tests, such as those for invalid message IDs or years, result in a very high score being assigned, where even a single test can almost put a mail "over the edge". 624: 508:
used in conjunction with the sources of spam may far exceed the average user's capability. For instance, graphic-only spam messages have no text to compare to therefore checking the sender's originating mailserver and included links against various databases of known e-mail abusers enables the prevention of unnecessary or non-personal mail getting through to the end user.
616:, and if these expressions match, the email is assigned a certain score, depending on the test, and several (customizable) headers are added to the mail. The total score resulting from all tests or other criteria can then be used by the end user or by the ISP to set the conditions under which email is moved to a separate spam folder, deleted, flagged etc. 640:
attachment, with a brief excerpt in the message body, and a description of the tests which resulted in the mail being classified as spam. If the score is lower than the defined settings, by default the information about the passed tests and total score is still added to the email headers and can be
507:
as one of the most effective spam filters, especially when used in combination with spam databases. While simple text-matching alone may, for most users, be sufficient to correctly classify a majority of incoming mail the complexity involved in the combination of the comparison of words and symbols
619:
Each test has a label and a description. The label is usually an all upper case identifier separated with underscores, such as "LIMITED_TIME_ONLY", with the description for that label being "Offers a limited time offer". A mail that fails that test (in this case, contains certain variants of the
727:
can be called for individual emails. Regardless of the method used to perform the learning, SpamAssassin's Bayesian test will subsequently assign a higher score to e-mails that are similar to previously received spam (or, more precisely, to those emails that are different from
142: 63: 635:
When a mail's total score is higher than the "required_score" setting in SpamAssassin's configuration, the mail is treated as spam and rewritten according to several options. In the default configuration, the content of the mail is appended as a
611:
SpamAssassin comes with a large set of rules which are applied to determine whether an email is spam or not. To decide, specific fields within the email header and the email body are typically searched for certain
15: 1814: 1804: 191: 125: 786:
test file. If this string is inserted in a RFC 2822 formatted message and passed through the SpamAssassin engine, SpamAssassin will trigger with a weight of 1000.
712:
example "ham" (useful) mails to the filter, which can then learn the difference between the two. For this purpose, SpamAssassin provides the command-line tool
958: 677: 100: 517: 858: 137: 93: 834: 31: 28: 1611: 72: 951: 759: 580:). The latter mode of operation has performance benefits, but under certain circumstances may introduce additional security risks. 886: 362: 708:, but Bayesian learning is most effective with actual user input. Typically, the user is expected to "feed" example spam mails 133: 89: 167: 1782: 944: 673: 723:
on the folder of non-spam and on the folder of spam separately. Alternatively, if the mail user agent supports it,
443: 345: 967: 1554: 493: 160: 396: 504: 373: 753: 573: 500:-based, checksum-based and statistical filtering, supported by external programs and online databases. 149: 107: 1559: 1033: 687: 560:) which is usually used to filter all incoming mail for one or several users. It can be run as a 904: 233:* showing that SpamAssassin received 69% of the vote for "best Linux-based anti-spam solution." 226:* showing that SpamAssassin received 69% of the vote for "best Linux-based anti-spam solution." 1809: 1574: 719:
Typically, the user will move unrecognized spam to a separate folder for a while, and then run
561: 1498: 907:
showing that SpamAssassin received 69% of the vote for "best Linux-based anti-spam solution."
716:, which can be instructed to learn a single mail or an entire mailbox as either ham or spam. 66: 767: 861:
is a hosted spam and virus solution that uses SpamAssassin as part of the filtering process
528:. Mason rewrote all of Jeftovic's code from scratch and uploaded the resulting codebase to 8: 641:
used in post-processing for less severe actions, such as tagging the mail as suspicious.
420: 696:
More methods can be added reasonably easily by writing a Perl plug-in for SpamAssassin.
1028: 705: 613: 565: 497: 1453: 1343: 1228: 1093: 1078: 1058: 156: 1662: 1536: 1493: 1483: 1183: 1143: 1128: 1083: 881: 852: 749: 628: 596: 482: 455: 431: 16: 1697: 1692: 1672: 1528: 1508: 1468: 1463: 1458: 1443: 1398: 1173: 1063: 993: 988: 983: 936: 855:
uses SpamEliminator, which is based on SpamAssassin, for heuristic spam filtering
783: 588: 1763: 1737: 1732: 1687: 1647: 1590: 1564: 1546: 1363: 1358: 1338: 1333: 1328: 1288: 1213: 1108: 1103: 1088: 1068: 998: 807:- email/groupware server contains built-in support for SpamAssassin integration 745: 645: 486: 460: 436: 405: 1798: 1722: 1677: 1652: 1523: 1513: 1488: 1473: 1448: 1393: 1353: 1293: 1268: 1263: 1243: 1223: 1218: 1193: 1178: 1113: 1098: 1008: 1003: 591:
that supports this, whenever new mail arrives. Mail filter programs such as
47: 1717: 1702: 1657: 1606: 1569: 1518: 1433: 1428: 1418: 1413: 1408: 1403: 1383: 1378: 1323: 1318: 1308: 1273: 1258: 1248: 1233: 1203: 1198: 1163: 1158: 1148: 1138: 1133: 1123: 1073: 1048: 1023: 1018: 819:
supports SpamAssassin and other spam filters, through some modular filters.
1742: 1682: 1637: 1478: 1423: 1388: 1298: 1278: 1253: 1238: 1208: 1188: 1153: 1053: 1043: 1038: 810: 796: 741: 584: 529: 490: 448: 380: 876: 644:
The user can customize these filters using a file "user_prefs" in their
520:
who had maintained a number of patches against an earlier program named
1747: 1707: 1667: 1616: 1373: 1368: 1348: 1168: 1118: 1013: 822: 804: 357: 829:
SpamAssassin has also been used in many commercial products including:
763: 898: 599:
all incoming mail through SpamAssassin with an adjustment to user's
290:* If a spam email MENTIONS a known-bad ], it gets blacklisted by ]. 283:* If a spam email MENTIONS a known-bad ], it gets blacklisted by ]. 1303: 1283: 871: 682: 592: 583:
Typically either variant of the application is set up in a generic
533: 470: 217:* to automatically update SA with the newest and best SARE rules. 210:* to automatically update SA with the newest and best SARE rules. 704:
SpamAssassin by default tries to reinforce its own rules through
917: 912: 892: 901:
to automatically update SA with the newest and best SARE rules.
840: 1727: 1642: 1621: 1313: 930: 816: 779: 666: 660: 623: 1712: 1503: 637: 557: 549: 537: 525: 384: 926: 778:
Most implementations of SpamAssassin will trigger on the
922: 627:
E-mail recognized as spam by SpamAssassin, here in the
895:
containing many very good rules for filtering with SA.
732:
in ways similar to previously received spam e-mails).
54: 496:
based on content-matching rules, which also supports
748:. Versions prior to 3.0 are dual-licensed under the 524:
by Mark Jeftovic, which in turn was begun in August
966: 651: 1796: 735: 952: 899:OpenProtect's SpamAssassin sa-update channel 782:, a 68 byte string not unlike the antivirus 344: 959: 945: 813:- "A Free Anti-Virus and Anti-Spam Filter" 419: 587:program, or it is called directly from a 843:uses SpamAssassin in its anti-spam tool 622: 799:products have support for SpamAssassin: 773: 606: 1797: 768:with the trademark holder's permission 693:as a means to tell 'ham' from 'spam'. 669:or URIBL.com which track spam websites 940: 925:If a spam email MENTIONS a known-bad 923:SURBL -- Spam URI Realtime Blocklists 849:Spamnix is also based on SpamAssassin 699: 80: 46: 674:Distributed Checksum Clearinghouses 672:checksum-based filters such as the 543: 334:Revision as of 22:59, 22 March 2007 190: 183: 179: 148: 134:Revision as of 22:59, 22 March 2007 131: 124: 117: 113: 99: 90:Revision as of 22:42, 22 March 2007 87: 13: 893:SpamAssassin Rules Emporium (SARE) 336: 35: 1826: 865: 1777: 1776: 346: 652:Network-based filtering methods 968:The Apache Software Foundation 872:SpamAssassin official homepage 760:Like many open-source programs 1: 913:Vipul's Razor, on SourceForge 762:, the name "SpamAssassin" is 736:Licensing and usage elsewhere 332: 295: 240: 656:SpamAssassin also supports: 516:SpamAssassin was created by 18:Browse history interactively 7: 905:Linux New Media Awards 2006 789: 572:) that communicates with a 10: 1831: 918:Pyzor, also on SourceForge 754:GNU General Public License 511: 485:released freely under the 181: 115: 1772: 1756: 1630: 1599: 1583: 1545: 974: 929:, it gets blacklisted by 889:Automatically updating SA 837:incorporates SpamAssassin 661:DNS-based blackhole lists 466: 454: 442: 430: 395: 391: 372: 368: 356: 343: 300: 238: 201: 198: 130: 86: 168:Extended confirmed users 688:Sender Policy Framework 665:URI blacklists such as 471:spamassassin.apache.org 85: 882:Links for german users 632: 562:standalone application 351: 766:and may only be used 744:, licensed under the 626: 363:The SpamAssassin team 350: 347:File:SpamAssassin.png 1815:Free e-mail software 774:Testing SpamAssassin 607:Anti-spam techniques 552:-based application ( 614:regular expressions 340: 1029:Apache HTTP Server 746:Apache License 2.0 706:Bayesian filtering 700:Bayesian filtering 633: 554:Mail::SpamAssassin 548:SpamAssassin is a 505:generally regarded 487:Apache License 2.0 461:Apache License 2.0 352: 338: 146: 97: 1792: 1791: 877:SpamAssassin Wiki 476: 475: 449:Email spam filter 331: 132: 88: 68: 1822: 1780: 1779: 961: 954: 947: 938: 937: 853:Kerio MailServer 750:Artistic License 740:SpamAssassin is 629:Novell Evolution 544:Methods of usage 503:SpamAssassin is 483:computer program 432:Operating system 423: 418: 415: 413: 411: 409: 407: 348: 341: 337: 188: 187: 186: 184:→‎External links 174: 164: 145: 140: 122: 121: 120: 118:→‎External links 111: 96: 69: 60: 59: 57: 52: 50: 42: 39: 21: 19: 1830: 1829: 1825: 1824: 1823: 1821: 1820: 1819: 1795: 1794: 1793: 1788: 1768: 1752: 1626: 1595: 1579: 1541: 976: 970: 965: 868: 792: 776: 738: 702: 654: 609: 595:can be made to 589:mail user agent 546: 530:SourceForge.net 514: 426: 404: 387: 328: 321: 312: 307: 298: 291: 284: 275: 268: 259: 252: 243: 234: 227: 218: 211: 194: 189: 182: 180: 178: 177: 176: 172: 170: 154: 152: 147: 141: 136: 128: 126:← Previous edit 123: 116: 114: 112: 105: 103: 102:199.106.103.254 98: 92: 84: 83: 82: 81: 79: 78: 77: 76: 75: 74: 65: 61: 55: 53: 48: 45: 43: 40: 38:Content deleted 37: 34: 29:← Previous edit 26: 25: 24: 17: 12: 11: 5: 1828: 1818: 1817: 1812: 1807: 1805:Spam filtering 1790: 1789: 1787: 1786: 1773: 1770: 1769: 1767: 1766: 1764:Apache License 1760: 1758: 1754: 1753: 1751: 1750: 1745: 1740: 1735: 1730: 1725: 1720: 1715: 1710: 1705: 1700: 1695: 1690: 1685: 1680: 1675: 1670: 1665: 1660: 1655: 1650: 1645: 1640: 1634: 1632: 1628: 1627: 1625: 1624: 1619: 1614: 1609: 1603: 1601: 1600:Other projects 1597: 1596: 1594: 1593: 1587: 1585: 1581: 1580: 1578: 1577: 1572: 1567: 1562: 1557: 1551: 1549: 1543: 1542: 1540: 1539: 1534: 1531: 1526: 1521: 1516: 1511: 1506: 1501: 1499:Traffic Server 1496: 1491: 1486: 1481: 1476: 1471: 1466: 1461: 1456: 1451: 1446: 1441: 1436: 1431: 1426: 1421: 1416: 1411: 1406: 1401: 1396: 1391: 1386: 1381: 1376: 1371: 1366: 1361: 1356: 1351: 1346: 1341: 1336: 1331: 1326: 1321: 1316: 1311: 1306: 1301: 1296: 1291: 1286: 1281: 1276: 1271: 1266: 1261: 1256: 1251: 1246: 1241: 1236: 1231: 1226: 1221: 1216: 1211: 1206: 1201: 1196: 1191: 1186: 1181: 1176: 1171: 1166: 1161: 1156: 1151: 1146: 1141: 1136: 1131: 1126: 1121: 1116: 1111: 1106: 1101: 1096: 1091: 1086: 1081: 1076: 1071: 1066: 1061: 1056: 1051: 1046: 1041: 1036: 1031: 1026: 1021: 1016: 1011: 1006: 1001: 996: 991: 986: 980: 978: 972: 971: 964: 963: 956: 949: 941: 935: 934: 920: 915: 909: 908: 902: 896: 890: 884: 879: 874: 867: 866:External links 864: 863: 862: 856: 850: 847: 838: 826: 825: 820: 814: 808: 795:The following 791: 788: 775: 772: 737: 734: 726: 722: 715: 701: 698: 691: 690: 685: 680: 670: 663: 653: 650: 646:home directory 608: 605: 602: 579: 571: 555: 545: 542: 513: 510: 474: 473: 468: 464: 463: 458: 452: 451: 446: 440: 439: 437:Cross-platform 434: 428: 427: 425: 424: 401: 399: 393: 392: 389: 388: 379:3.1.8 / 378: 376: 374:Stable release 370: 369: 366: 365: 360: 354: 353: 335: 330: 329: 326: 324: 322: 319: 317: 314: 313: 310: 308: 305: 302: 301: 299: 296: 293: 292: 289: 287: 285: 282: 280: 277: 276: 273: 271: 269: 266: 264: 261: 260: 257: 255: 253: 250: 248: 245: 244: 241: 239: 236: 235: 232: 230: 228: 225: 223: 220: 219: 216: 214: 212: 209: 207: 204: 203: 200: 196: 195: 171: 166: 165: 150: 129: 101: 70: 64: 62: 44: 36: 27: 23: 22: 14: 9: 6: 4: 3: 2: 1827: 1816: 1813: 1811: 1810:Perl software 1808: 1806: 1803: 1802: 1800: 1785: 1784: 1775: 1774: 1771: 1765: 1762: 1761: 1759: 1755: 1749: 1746: 1744: 1741: 1739: 1736: 1734: 1731: 1729: 1726: 1724: 1721: 1719: 1716: 1714: 1711: 1709: 1706: 1704: 1701: 1699: 1696: 1694: 1691: 1689: 1686: 1684: 1681: 1679: 1676: 1674: 1671: 1669: 1666: 1664: 1661: 1659: 1656: 1654: 1651: 1649: 1646: 1644: 1641: 1639: 1636: 1635: 1633: 1629: 1623: 1620: 1618: 1615: 1613: 1610: 1608: 1605: 1604: 1602: 1598: 1592: 1589: 1588: 1586: 1582: 1576: 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1556: 1553: 1552: 1550: 1548: 1544: 1538: 1535: 1532: 1530: 1527: 1525: 1522: 1520: 1517: 1515: 1512: 1510: 1507: 1505: 1502: 1500: 1497: 1495: 1492: 1490: 1487: 1485: 1482: 1480: 1477: 1475: 1472: 1470: 1467: 1465: 1462: 1460: 1457: 1455: 1452: 1450: 1447: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1425: 1422: 1420: 1417: 1415: 1412: 1410: 1407: 1405: 1402: 1400: 1397: 1395: 1392: 1390: 1387: 1385: 1382: 1380: 1377: 1375: 1372: 1370: 1367: 1365: 1362: 1360: 1357: 1355: 1352: 1350: 1347: 1345: 1342: 1340: 1337: 1335: 1332: 1330: 1327: 1325: 1322: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1300: 1297: 1295: 1292: 1290: 1287: 1285: 1282: 1280: 1277: 1275: 1272: 1270: 1267: 1265: 1262: 1260: 1257: 1255: 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1230: 1227: 1225: 1222: 1220: 1217: 1215: 1212: 1210: 1207: 1205: 1202: 1200: 1197: 1195: 1192: 1190: 1187: 1185: 1182: 1180: 1177: 1175: 1172: 1170: 1167: 1165: 1162: 1160: 1157: 1155: 1152: 1150: 1147: 1145: 1142: 1140: 1137: 1135: 1132: 1130: 1127: 1125: 1122: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1057: 1055: 1052: 1050: 1047: 1045: 1042: 1040: 1037: 1035: 1032: 1030: 1027: 1025: 1022: 1020: 1017: 1015: 1012: 1010: 1007: 1005: 1002: 1000: 997: 995: 992: 990: 987: 985: 982: 981: 979: 973: 969: 962: 957: 955: 950: 948: 943: 942: 939: 932: 928: 924: 921: 919: 916: 914: 911: 910: 906: 903: 900: 897: 894: 891: 888: 885: 883: 880: 878: 875: 873: 870: 869: 860: 857: 854: 851: 848: 846: 842: 839: 836: 833: 832: 831: 830: 824: 821: 818: 815: 812: 809: 806: 803: 802: 801: 800: 798: 787: 785: 781: 771: 769: 765: 761: 757: 755: 751: 747: 743: 733: 731: 724: 720: 717: 713: 711: 707: 697: 694: 689: 686: 684: 681: 679: 678:Vipul's Razor 675: 671: 668: 664: 662: 659: 658: 657: 649: 647: 642: 639: 631:email client. 630: 625: 621: 617: 615: 604: 600: 598: 594: 590: 586: 581: 577: 575: 569: 567: 563: 559: 553: 551: 541: 539: 535: 531: 527: 523: 519: 509: 506: 501: 499: 495: 492: 488: 484: 480: 472: 469: 465: 462: 459: 457: 453: 450: 447: 445: 441: 438: 435: 433: 429: 422: 417: 414:/spamassassin 403: 402: 400: 398: 394: 390: 386: 382: 377: 375: 371: 367: 364: 361: 359: 355: 349: 342: 333: 325: 323: 318: 316: 315: 311: 309: 306: 304: 303: 297: 294: 288: 286: 281: 279: 278: 272: 270: 265: 263: 262: 256: 254: 249: 247: 246: 242: 237: 231: 229: 224: 222: 221: 215: 213: 208: 206: 205: 197: 193: 185: 169: 162: 158: 153: 144: 139: 135: 127: 119: 109: 104: 95: 91: 73: 58: 51: 41:Content added 33: 30: 20: 1781: 1439:SpamAssassin 1438: 844: 828: 827: 794: 793: 777: 758: 739: 729: 718: 709: 703: 695: 692: 655: 643: 634: 618: 610: 582: 547: 521: 518:Justin Mason 515: 502: 479:SpamAssassin 478: 477: 358:Developer(s) 339:SpamAssassin 859:MailLaunder 811:MailScanner 797:open source 764:trademarked 742:open source 601:.procmailrc 585:mail filter 491:e-mail spam 381:February 14 192:Next edit → 32:Next edit → 1799:Categories 1668:Deltacloud 1454:Subversion 1344:OрenOffice 1229:Jackrabbit 1169:FreeMarker 1094:CloudStack 1079:CarbonData 1059:Bloodhound 845:SpamKiller 835:AntibodyMX 823:MIMEDefang 522:filter.plx 397:Repository 327:{{apache}} 320:{{apache}} 1663:Continuum 1584:Incubator 1537:ZooKeeper 1494:Trafodion 1484:TinkerPop 1184:Guacamole 1144:Empire-db 1129:Directory 1084:Cassandra 975:Top-level 887:sa-update 494:filtering 489:used for 1783:Category 1757:Licenses 1698:Marmotta 1529:XMLBeans 1509:Velocity 1469:Tapestry 1464:SystemDS 1459:Superset 1449:Struts 2 1444:Struts 1 1399:RocketMQ 1304:NetBeans 1284:mod_perl 1174:Geronimo 1064:Brooklyn 994:Airavata 989:ActiveMQ 984:Accumulo 977:projects 790:See also 752:and the 730:non-spam 725:sa-learn 721:sa-learn 714:sa-learn 683:Hashcash 593:procmail 564:or as a 534:April 20 202:Line 90: 199:Line 90: 161:contribs 56:Wikitext 1738:Tuscany 1733:Stanbol 1693:Jakarta 1688:Harmony 1648:Beehive 1591:Taverna 1575:Logging 1547:Commons 1364:Phoenix 1359:Parquet 1339:OpenNLP 1334:OpenJPA 1329:OpenEJB 1289:MyFaces 1214:Iceberg 1109:CouchDB 1104:Cordova 1089:Cayenne 1069:Calcite 999:Airflow 805:Citadel 512:History 467:Website 456:License 412:/viewvc 408:.apache 151:Vid2vid 1678:Giraph 1653:iBATIS 1565:Daemon 1524:Xerces 1514:Wicket 1489:Tomcat 1474:Thrift 1394:Roller 1354:PDFBox 1294:Mynewt 1269:Mahout 1264:Lucene 1244:JMeter 1224:Impala 1219:Ignite 1194:Hadoop 1179:Groovy 1114:cTAKES 1099:Cocoon 1009:Ambari 1004:Allura 841:McAfee 603:file. 574:daemon 566:client 67:Inline 49:Visual 1728:Sqoop 1723:Slide 1718:Shale 1713:River 1703:MXNet 1658:Click 1643:AxKit 1631:Attic 1622:Log4j 1607:Batik 1570:Jelly 1533:Yetus 1519:Xalan 1434:Storm 1429:Spark 1419:Sling 1414:SINGA 1409:Shiro 1404:Samza 1384:Pivot 1379:Pinot 1324:Oozie 1319:OFBiz 1314:NuttX 1309:Nutch 1274:Maven 1259:Kylin 1249:Kafka 1234:James 1204:Helix 1199:HBase 1164:Flume 1159:Flink 1149:Felix 1139:Druid 1134:Drill 1124:Derby 1074:Camel 1049:Axis2 1024:Arrow 1019:Aries 931:SURBL 817:KMail 784:EICAR 780:GTUBE 667:SURBL 578:spamd 570:spamc 481:is a 175:edits 173:1,032 1743:Wave 1683:Hama 1673:Etch 1638:Apex 1555:BCEL 1504:UIMA 1479:Tika 1424:Solr 1389:Qpid 1299:NiFi 1279:MINA 1254:Kudu 1239:Jena 1209:Hive 1189:Gump 1154:Flex 1054:Beam 1044:Axis 1039:Avro 676:and 638:MIME 597:pipe 558:CPAN 550:Perl 538:2001 526:1997 444:Type 410:.org 385:2007 157:talk 143:undo 138:edit 108:talk 94:edit 1748:XML 1708:ODE 1617:Ivy 1612:FOP 1560:BSF 1374:Pig 1369:POI 1349:ORC 1119:CXF 1034:APR 1014:Ant 927:URL 710:and 556:in 532:on 498:DNS 406:svn 1801:: 770:. 756:. 540:. 536:, 383:, 274:* 267:* 258:* 251:* 159:| 960:e 953:t 946:v 933:. 576:( 568:( 416:/ 163:) 155:( 110:) 106:(

Index

Browse history interactively
← Previous edit
Next edit →
Visual
Wikitext

Revision as of 22:42, 22 March 2007
edit
199.106.103.254
talk
→‎External links
← Previous edit
Revision as of 22:59, 22 March 2007
edit
undo
Vid2vid
talk
contribs
Extended confirmed users
→‎External links
Next edit →
File:SpamAssassin.png
Developer(s)
The SpamAssassin team
Stable release
February 14
2007
Repository
svn.apache.org/viewvc/spamassassin/
Edit this at Wikidata

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.