1Mail::SpamAssassin::PluUgsienr::CPoDnFtIrnifbou(t3e)d PeMralilD:o:cSupmaemnAtsastaisosnin::Plugin::PDFInfo(3)
2
3
4
6 Mail::SpamAssassin::Plugin::PDFInfo - PDFInfo Plugin for SpamAssassin
7
9 loadplugin Mail::SpamAssassin::Plugin::PDFInfo
10
12 This plugin helps detected spam using attached PDF files
13
14 See "Usage:" below - more documentation see 20_pdfinfo.cf
15 Original info kept for history. For later changes see SVN repo
16 -------------------------------------------------------
17 PDFInfo Plugin for SpamAssassin
18 Version: 0.8
19 Info: $Id: PDFInfo.pm 904 2007-08-12 01:36:23Z root $
20 Created: 2007-08-10
21 Modified: 2007-08-10
22 By: Dallas Engelken
23
24 Changes:
25 0.8 - added .fdf detection (thanks John Lundin) [axb]
26 0.7 - fixed empty body/pdf count buglet(thanks Jeremy) [axb]
27 0.6 - added support for tags - PDFCOUNT, PDFVERSION, PDFPRODUCER, etc.
28 - fixed issue on perl 5.6.1 where pdf_match_details() failed to call
29 _find_pdf_mime_parts(), resulting in no detection of pdf mime parts.
30 - quoted-printable support - requires MIME::QuotedPrint (which should be in everyones
31 install as a part of the MIME-Base64 package which is a SA req)
32 - added simple pdf_is_empty_body() function with counts the body bytes minus the
33 subject line. can add optional <bytes> param if you need to allow for a few bytes.
34 0.5 - fix warns for undef $pdf_tags
35 - remove { } and \ before running eval in pdf_match_details to avoid eval error
36 0.4 - added pdf_is_encrypted() function
37 - added option to look for image HxW on same line
38 0.3 - added 2nd fuzzy md5 which uses pdf tag layout as data
39 - renamed pdf_image_named() to pdf_named()
40 - PDF images are encapsulated and have no names. We are matching the PDF file name.
41 - renamed pdf_image_name_regex() to pdf_name_regex()
42 - PDF images are encapsulated and have no names. We are matching the PDF file name.
43 - changed pdf_image_count() a bit and added pdf_count().
44 - pdf_count() checks how many pdf attachments there are on the mail
45 - pdf_image_count() checks how many images are found within all pdfs in the mail.
46 - removed the restriction of the pdf containing an image in order to md5 it.
47 - added pdf_match_details() function to check the following 'details'
48 - author: Author of PDF if specified
49 - producer: Software used to produce PDF
50 - creator: Software used to produce PDF, usually similar to producer
51 - title: Title of PDF
52 - created: Creation Date
53 - modified: Last Modified
54 0.2 - support PDF octet-stream
55 0.1 - just ported over the imageinfo code, and renamed to pdfinfo.
56 - removed all support for png, gif, and jpg from the code.
57 - prepended pdf_ to all function names to avoid conflicts with ImageInfo in SA 3.2.
58
59 Usage:
60
61 pdf_count()
62
63 body RULENAME eval:pdf_count(<min>,[max])
64 min: required, message contains at least x pdf mime parts
65 max: optional, if specified, must not contain more than x pdf mime parts
66
67 pdf_image_count()
68
69 body RULENAME eval:pdf_image_count(<min>,[max])
70 min: required, message contains at least x images in pdf attachments.
71 max: optional, if specified, must not contain more than x pdf images
72
73 pdf_pixel_coverage()
74
75 body RULENAME eval:pdf_pixel_coverage(<min>,[max])
76 min: required, message contains at least this much pixel area
77 max: optional, if specified, message must not contain more than this much pixel area
78
79 pdf_named()
80
81 body RULENAME eval:pdf_named(<string>)
82 string: exact file name match, if you need partial match, see pdf_name_regex()
83
84 pdf_name_regex()
85
86 body RULENAME eval:pdf_name_regex(<regex>)
87 regex: regular expression, see examples in ruleset
88
89 pdf_match_md5()
90
91 body RULENAME eval:pdf_match_md5(<string>)
92 string: 32-byte md5 hex
93
94 pdf_match_fuzzy_md5()
95
96 body RULENAME eval:pdf_match_md5(<string>)
97 string: 32-byte md5 hex - see ruleset for obtaining the fuzzy md5
98
99 pdf_match_details()
100
101 body RULENAME eval:pdf_match_details(<detail>,<regex>);
102 detail: author, creator, created, modified, producer, title
103 regex: regular expression, see examples in ruleset
104
105 pdf_is_encrypted()
106
107 body RULENAME eval:pdf_is_encrypted()
108
109 pdf_is_empty_body()
110
111 body RULENAME eval:pdf_is_empty_body(<bytes>)
112 bytes: maximum byte count to allow and still consider it empty
113
114 NOTE: See the ruleset for more examples that are not documented here.
115
116
117
118perl v5.30.1 2020-02M-a0i3l::SpamAssassin::Plugin::PDFInfo(3)