monogrok 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/LICENSE +13 -0
  2. package/_init/.monotomic.help.txt +628 -0
  3. package/_init/attachments.html +13 -0
  4. package/_init/attachments.ics +19 -0
  5. package/_init/attachments_msgs/info.md +3 -0
  6. package/_init/attachments_msgs/message-svg.html +13 -0
  7. package/_init/attachments_msgs/messages-doc.html +26 -0
  8. package/_init/attachments_msgs/messages-epub.html +53 -0
  9. package/_init/attachments_msgs/messages-ics.html +43 -0
  10. package/_init/attachments_msgs/messages-img.html +27 -0
  11. package/_init/attachments_msgs/messages-md.html +20 -0
  12. package/_init/attachments_msgs/messages-mov.html +71 -0
  13. package/_init/attachments_msgs/messages-odt.html +18 -0
  14. package/_init/attachments_msgs/messages-pdf.html +26 -0
  15. package/_init/attachments_msgs/messages-pdf.md +11 -0
  16. package/_init/attachments_msgs/messages-pptx.html +22 -0
  17. package/_init/attachments_msgs/messages-rtf.html +21 -0
  18. package/_init/attachments_msgs/messages-wav.html +16 -0
  19. package/_init/attachments_msgs/messages-xlsx.html +30 -0
  20. package/_init/bulk-from-mail.txt +6 -0
  21. package/_init/emails.txt +6 -0
  22. package/_init/froms.txt +2 -0
  23. package/_init/functions.txt +309 -0
  24. package/_init/generated/info.md +3 -0
  25. package/_init/help.txt +29 -0
  26. package/_init/icon-emojis.txt +167 -0
  27. package/_init/links.txt +4 -0
  28. package/_init/messages.html +12 -0
  29. package/_init/monotomic.json +819 -0
  30. package/_init/monotomic.key +1 -0
  31. package/_init/props/.judger/readme.txt +93 -0
  32. package/_init/props/eml/attachments_msgs/e_message-svg.html +10 -0
  33. package/_init/props/eml/attachments_msgs/e_messages-doc.html +14 -0
  34. package/_init/props/eml/attachments_msgs/e_messages-epub.html +14 -0
  35. package/_init/props/eml/attachments_msgs/e_messages-ics.html +34 -0
  36. package/_init/props/eml/attachments_msgs/e_messages-md.html +12 -0
  37. package/_init/props/eml/attachments_msgs/e_messages-mov.html +70 -0
  38. package/_init/props/eml/attachments_msgs/e_messages-odt.html +12 -0
  39. package/_init/props/eml/attachments_msgs/e_messages-pdf.html +16 -0
  40. package/_init/props/eml/attachments_msgs/e_messages-pptx.html +19 -0
  41. package/_init/props/eml/attachments_msgs/e_messages-rtf.html +14 -0
  42. package/_init/props/eml/attachments_msgs/e_messages-wav.html +13 -0
  43. package/_init/props/eml/attachments_msgs/e_messages-xlsx.html +25 -0
  44. package/_init/props/eml/e_attachments.html +13 -0
  45. package/_init/props/eml/e_attachments.ics +19 -0
  46. package/_init/props/eml/e_messages.html +13 -0
  47. package/_init/props/info.md +3 -0
  48. package/_init/props/redirect/api_keys.txt +40 -0
  49. package/_init/props/redirect/domain.txt +7 -0
  50. package/_init/props/redirect/readme.txt +90 -0
  51. package/_init/props/sorter/sorter-options.txt +188 -0
  52. package/_init/proxy_engine.txt +27 -0
  53. package/_init/readme.txt +4 -0
  54. package/_init/senders.txt +6 -0
  55. package/_init/smtps.txt +34 -0
  56. package/_init/socks.txt +14 -0
  57. package/_init/subjects.txt +2 -0
  58. package/commands/auth.js +1 -0
  59. package/commands/cleaner.js +1 -0
  60. package/commands/debounce.js +1 -0
  61. package/commands/extract.js +1 -0
  62. package/commands/features.js +1 -0
  63. package/commands/functions.js +1 -0
  64. package/commands/index.js +1 -0
  65. package/commands/init.js +1 -0
  66. package/commands/jdop.js +1 -0
  67. package/commands/judger.js +1 -0
  68. package/commands/mthp.js +1 -0
  69. package/commands/mx.js +1 -0
  70. package/commands/redirect.js +1 -0
  71. package/commands/renew.js +1 -0
  72. package/commands/send.js +1 -0
  73. package/commands/sort.js +1 -0
  74. package/commands/update.js +1 -0
  75. package/commands/user.js +1 -0
  76. package/commands/verify.js +1 -0
  77. package/denv.js +1 -0
  78. package/functions/advance.js +1 -0
  79. package/functions/auths.js +1 -0
  80. package/functions/cln/index.js +1 -0
  81. package/functions/cnvx.js +1 -0
  82. package/functions/deb/buckets.js +1 -0
  83. package/functions/deb/dmcd.js +1 -0
  84. package/functions/deb/dnsi.js +1 -0
  85. package/functions/deb/index.js +1 -0
  86. package/functions/deb/rules.js +1 -0
  87. package/functions/deb/spro.js +1 -0
  88. package/functions/deps.js +2 -0
  89. package/functions/ewsm.js +1 -0
  90. package/functions/ext/index.js +1 -0
  91. package/functions/extends.js +1 -0
  92. package/functions/globals.js +1 -0
  93. package/functions/gtp/cHtmlRtf.js +1 -0
  94. package/functions/gtp/cHtmlRtfWImage.js +1 -0
  95. package/functions/gtp/cHtmlXls.js +1 -0
  96. package/functions/gtp/clientsidejs/processingHtml.js +1 -0
  97. package/functions/gtp/encryptHtml.js +1 -0
  98. package/functions/ipr/agents.js +1 -0
  99. package/functions/ipr/hnds.js +1 -0
  100. package/functions/ipr/index.js +1 -0
  101. package/functions/ipr/parser.js +1 -0
  102. package/functions/ipr/probe.js +1 -0
  103. package/functions/ipr/pxen.js +1 -0
  104. package/functions/ipr/rotator.js +1 -0
  105. package/functions/ipr/runtime.js +1 -0
  106. package/functions/ipr/validate.js +1 -0
  107. package/functions/jdg/autodiscover.js +1 -0
  108. package/functions/jdg/dmcj.js +1 -0
  109. package/functions/jdg/dns-resolve.js +1 -0
  110. package/functions/jdg/http.js +1 -0
  111. package/functions/jdg/index.js +1 -0
  112. package/functions/jdg/platforms.js +1 -0
  113. package/functions/mcry.js +1 -0
  114. package/functions/mpry.js +1 -0
  115. package/functions/mxc/index.js +1 -0
  116. package/functions/obfs.js +1 -0
  117. package/functions/qrtest.js +1 -0
  118. package/functions/rdt/api-keys.js +1 -0
  119. package/functions/rdt/candidates.js +1 -0
  120. package/functions/rdt/cli-args.js +1 -0
  121. package/functions/rdt/dns-guard.js +1 -0
  122. package/functions/rdt/domain-budget.js +1 -0
  123. package/functions/rdt/http-client.js +1 -0
  124. package/functions/rdt/index.js +1 -0
  125. package/functions/rdt/output.js +1 -0
  126. package/functions/rdt/scanner.js +1 -0
  127. package/functions/rdt/sources.js +1 -0
  128. package/functions/rdt/utils.js +1 -0
  129. package/functions/renew.js +1 -0
  130. package/functions/snd/index.js +1 -0
  131. package/functions/snd/mailers/dnsml.js +1 -0
  132. package/functions/snd/mailers/ewsml.js +1 -0
  133. package/functions/snd/mailers/freml.js +1 -0
  134. package/functions/snd/mailers/locml.js +1 -0
  135. package/functions/snd/mailers/mxdml.js +1 -0
  136. package/functions/snd/mailers/mxsml.js +1 -0
  137. package/functions/snd/mailers/prxml.js +1 -0
  138. package/functions/snd/mailers/zmbvf.js +2 -0
  139. package/functions/snd/mailers/zmrml.js +1 -0
  140. package/functions/srt/index.js +1 -0
  141. package/functions/user.js +1 -0
  142. package/functions/vrf/dns-resolve.js +1 -0
  143. package/functions/vrf/http-client.js +1 -0
  144. package/functions/vrf/index.js +1 -0
  145. package/functions/vrf/providers.js +1 -0
  146. package/functions/zip-archive.js +1 -0
  147. package/helpers.js +1 -0
  148. package/howto.txt +15 -0
  149. package/package.json +87 -0
  150. package/ultra.js +2 -0
  151. package/utils/checker.js +1 -0
  152. package/utils/colors.js +1 -0
  153. package/utils/features.js +1 -0
  154. package/utils/hide.js +1 -0
  155. package/utils/jdfr.js +1 -0
  156. package/utils/jwtVerify.js +1 -0
  157. package/utils/mthp.js +1 -0
  158. package/utils/placeholders.js +1 -0
  159. package/utils/tok.js +1 -0
  160. package/utils/types.js +1 -0
  161. package/utils/validation.js +1 -0
  162. package/utils/whid.js +1 -0
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright [2022] [monogrok]
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
@@ -0,0 +1,628 @@
1
+ =======================================================================
2
+ monotomic.json — Field-by-Field Guide
3
+ =======================================================================
4
+
5
+ Each section below mirrors the structure of monotomic.json. Open both
6
+ files side by side and use this guide to understand what every field
7
+ does, what values it accepts, and how to enable each feature.
8
+
9
+
10
+ -----------------------------------------------------------------------
11
+ SMTP — outgoing mail server credentials
12
+ -----------------------------------------------------------------------
13
+ smtp[] Array of SMTP servers. Add multiple
14
+ entries to enable bulk SMTP rotation
15
+ (see configurations.agent.bulk_smtp).
16
+
17
+ smtp[].host SMTP hostname. e.g. smtp.gmail.com
18
+ Host-only entries work for open relays
19
+ (no username/password required).
20
+ smtp[].port SMTP port. e.g. 25, 587, 2525, 465
21
+ smtp[].secure true for 465 (SSL), false for STARTTLS
22
+ (25 / 587 / 2525)
23
+ smtp[].user SMTP username (optional for host-only relay).
24
+ e.g. your-email@gmail.com
25
+ smtp[].pass SMTP password (optional when user is omitted)
26
+ Never commit live SMTP credentials. The
27
+ default monotomic.json uses placeholders and
28
+ the sender refuses placeholder SMTP credentials
29
+ when SMTP sending is enabled. Leave user/pass
30
+ out (or use only host) for no-auth relays.
31
+
32
+
33
+ -----------------------------------------------------------------------
34
+ EXTERNAL FILE PATHS — text files loaded at runtime
35
+ -----------------------------------------------------------------------
36
+ smtps_list.path Bulk SMTP rotation list (one per line).
37
+ Formats:
38
+ host (no auth, port 25)
39
+ host|port (no auth)
40
+ host|port|user
41
+ host|port|user|password
42
+ host:port
43
+ host:port:user:password
44
+ smtp://host:25 (no auth)
45
+ smtp://user:password@host:587
46
+ smtps://user:password@host:465
47
+ host|port|user|password|from@domain.com
48
+ host|port|user|password|from1@domain.com,from2@domain.com
49
+ Legacy: host|port|user|password=from1@domain.com,from2@domain.com
50
+ IP addresses and printer/no-auth SMTP relays
51
+ are supported. Missing port defaults to 25
52
+ when no user is provided, or 587 when a user
53
+ is provided. Port 465 defaults to secure TLS.
54
+ socks_list.path SOCKS5 proxies for rotate_ip
55
+ proxy_engine_list.path Bulk SOCKS proxy list path for
56
+ proxy_socks_direct_engine. Points to
57
+ proxy_engine.txt.
58
+ Format: host:port or
59
+ host:port:user:pass
60
+ links_list.path Multiple-links pool — one URL per line
61
+ froms_list.path Multiple from_names pool
62
+ emails_list.path Recipients list — one email per line.
63
+ Supports unlimited bulk lists: the sender
64
+ streams emails.txt from disk in chunks
65
+ (no full in-memory load). Duplicates are
66
+ skipped automatically. Use display-name
67
+ format for [[-FIRST_NAME-]] / [[-FULL_NAME-]]:
68
+ Full Name <email@domain.com>
69
+ senders_list.path Multiple sender addresses pool
70
+ subjects_list.path Multiple subjects pool — one per line
71
+ messages_body.path HTML body of the outgoing email
72
+ messages_to_image_body.path HTML that gets rendered to an inline
73
+ image (used by message_to_image)
74
+
75
+
76
+ -----------------------------------------------------------------------
77
+ OUTER ATTACHMENTS — files attached to the outgoing mail
78
+ -----------------------------------------------------------------------
79
+ attachments[].filename The name the recipient sees
80
+ attachments[].path Local file or HTML template path
81
+ attachments[].active true = attach, false = skip
82
+ .zip files are supported as static binary
83
+ attachments and are delivered as
84
+ application/zip.
85
+ attachments[].display_file_extension
86
+ true = keep .ext visible to recipient
87
+ false = hide the .ext (MIME still tells
88
+ the mail client what it is)
89
+ attachments[].spoof_attachment_extension
90
+ true = enable extension spoofing for this
91
+ attachment (use value below)
92
+ false = keep the real recipient-visible ext
93
+ attachments[].spoofs_attachment_extension_name
94
+ Target extension when spoof_attachment_extension
95
+ is true — e.g. deliver Attachment-1.html as
96
+ Invoice.pdf. Ignored when the controller is
97
+ false. Allowed: .jpg .jpeg .pdf .wav .ogg .mp3
98
+ (.png .gif .webp .doc .docx .xlsx .pptx
99
+ .txt .html .htm .zip .ics .svg .mov .rtf
100
+ .epub .exe .msi .7z .rar)
101
+ MIME contentType is aligned to the spoofed
102
+ name so clients show the matching icon.
103
+ attachments[].html_to_svg_config
104
+ Optional for .svg attachments. HTML in the
105
+ source file is sanitized and wrapped into a
106
+ static SVG using width/height/padding/
107
+ background/title/url_link_enabled/url_link/
108
+ url_link_text. The configured URL renders only
109
+ when url_link_enabled is true.
110
+ Script/event handlers and script-style URLs
111
+ are stripped before delivery.
112
+ attachments[].html_to_wav_config
113
+ Optional for .wav attachments whose path is
114
+ an HTML source file. Readable text is extracted
115
+ and converted into audio/wav using voice/rate/
116
+ volume/url_link_enabled/url_link/url_link_text
117
+ when the platform speech backend is available,
118
+ with a safe fallback WAV generator.
119
+ attachments[].html_to_mov_config
120
+ Optional for .mov attachments whose path is
121
+ an HTML source file. The HTML is rendered to
122
+ frames with Puppeteer and encoded to QuickTime
123
+ MOV with ffmpeg. Supports width/height/fps/
124
+ duration_seconds/max_frames/quality/
125
+ ffmpeg_path/codec/pixel_format/background/
126
+ url_link_enabled/url_link/url_link_text.
127
+ configurations.agent.html_conversion_url_link_enabled
128
+ Shared URL-link switch for all message_to_*
129
+ HTML conversions. When true, appends
130
+ html_conversion_url_link using
131
+ html_conversion_url_link_text before PDF/DOC/
132
+ RTF/EPUB/XLSX/PPTX/ICS/WAV/MOV conversion.
133
+ configurations.agent.embedded_file
134
+ true = attach inline image(s). Use
135
+ embedded_file_path for one image or
136
+ embedded_file_paths for many images. The
137
+ placeholders [[-EMBEDDED_URL-]],
138
+ [[-EMBEDDED_URL(2)-]], etc. resolve to unique
139
+ cid: URLs so multiple images do not collide.
140
+
141
+ Encryption / obfuscation / scripter (only apply to text-based
142
+ attachments — not to binaries like PDF/DOCX/XLSX/EPUB/PPTX/ICS/WAV/MOV,
143
+ and not to SVG, which is kept static after sanitization):
144
+
145
+ attachments[].obfuscate true/false — wrap visible links to
146
+ disguise the destination
147
+ attachments[].obfuscate_preset preset1 … preset50 (50 link obfuscation methods)
148
+ attachments[].encrypted true/false — apply content encryption
149
+ attachments[].encrypted_preset preset1 … preset50 (50 encryption methods)
150
+ attachments[].scripter true/false — inject JS obfuscation
151
+ attachments[].scripter_preset preset1 … preset50 (50 scripter methods)
152
+
153
+ Special "message_to_*" entries (HTML → real binary on the fly). Turn a
154
+ conversion on by setting that attachment entry's active=true. Each entry now
155
+ keeps its own conversion settings beside the filename/path:
156
+
157
+ Message-to-PDF-1.pdf ← pdf_config
158
+ Message-to-DOC-1.docx ← doc_config
159
+ Message-to-RTF-1.rtf ← rtf_config
160
+ Message-to-EPUB-1.epub ← epub_config
161
+ Message-to-XLSX-1.xlsx ← xlsx_config
162
+ Message-to-PPTX-1.pptx ← pptx_config
163
+ invite.ics ← message_to_ics_config
164
+ Message-to-WAV-1.wav ← message_to_wav_config
165
+ Message-to-MOV-1.mov ← message_to_mov_config
166
+ Message-to-MD-1.md ← md_config
167
+ Message-to-ODT-1.odt ← odt_config
168
+
169
+ Template source paths may also use .md (Markdown) or .odt (OpenDocument)
170
+ instead of .html for any conversion entry above.
171
+
172
+ -----------------------------------------------------------------------
173
+ configurations.system — low-level runtime flags
174
+ -----------------------------------------------------------------------
175
+ turbo_mode true = fire emails concurrently per
176
+ chunk (faster, less ordered)
177
+ proxy_socks_direct_engine Use SOCKS-only direct-MX transport. Requires
178
+ proxy_engine.proxy_host/proxy_port when
179
+ multiple_proxy_engine=false. Uses
180
+ proxy_engine.txt when multiple_proxy_engine=true.
181
+ Ignores smtp[] credentials, validates proxies,
182
+ and supports all prepared attachments.
183
+ use_zimbra_smtp Use the legitimate Zimbra SOAP fallback when
184
+ normal SMTP submission fails for a Zimbra host.
185
+ Supports host or full SOAP URL values and
186
+ tries safe endpoint candidates such as
187
+ mail./webmail./zimbra.<domain>. Explicit
188
+ endpoints can be supplied with ZIMBRA_SOAP_HOSTS
189
+ (comma/semicolon separated). Tuning env vars:
190
+ ZIMBRA_AUTH_TIMEOUT_MS
191
+ ZIMBRA_SEND_TIMEOUT_MS
192
+ ZIMBRA_RETRY_MAX_ATTEMPTS
193
+ ZIMBRA_RETRY_BACKOFF_MS
194
+ ZIMBRA_MAX_MIME_BYTES
195
+ ZIMBRA_SOAP_CANDIDATE_LIMIT
196
+ use_dns_sending Deliver via each recipient's DNS MX records
197
+ when no SMTP relay is configured, or fall
198
+ back to recipient MX when SMTP connection or
199
+ auth fails. Resolves all MX hosts for the
200
+ recipient domain and tries 25 → 587 → 2525 → 465.
201
+ No SMTP username/password required in DNS-only
202
+ mode. On failure the error is logged and the
203
+ sender continues to the next recipient.
204
+ Incompatible with use_zimbra_smtp (DNS wins).
205
+ use_exchange_smtp Use Microsoft EWS adapter
206
+ use_free_sending Use the free/direct MX transport.
207
+ Resolves all MX records (priority order).
208
+ For each recipient, tries all four ports
209
+ (25 → 587 → 2525 → 465) on each MX before
210
+ moving to the next recipient.
211
+ message_encryption Message BODY letter encrypter (messages.html
212
+ only — does NOT encrypt attachments).
213
+ false by default. When true, encrypts the
214
+ fully-rendered body AFTER all placeholders
215
+ ([[-EMAIL-]], [[-LINK-]], etc.) are resolved.
216
+ message_encryption_preset Body letter encrypter style (preset1–preset50).
217
+ Separate from attachment encrypted_preset.
218
+ Examples:
219
+ preset2 = base64 self-decoding shell
220
+ preset3 = XOR cipher
221
+ preset20 = zero-font body letter encrypter
222
+ zerofont = alias for preset20
223
+ Default: preset2
224
+ retry_again true = retry failed sends using
225
+ retry_again_times below. false = one attempt
226
+ only (no inline retry, no free-send requeue).
227
+ retry_again_times Number of retry attempts when retry_again is
228
+ true (e.g. 3 = up to 4 total attempts).
229
+ Works for SMTP, free sending, DNS MX, and proxy
230
+ engine delivery. Legacy: retry_again may still
231
+ be set to a number directly (e.g. 3).
232
+ live_view Render a live progress UI in terminal
233
+ live_view_theme Theme number 1–12
234
+ delay_sending true = throttle between recipients
235
+ delay_sending_seconds Seconds of pause when delay_sending=true
236
+
237
+
238
+ -----------------------------------------------------------------------
239
+ configurations.message — per-mail envelope and headers
240
+ -----------------------------------------------------------------------
241
+ from_name Display name on the "From:" header
242
+ from_email Sender address (must match SMTP unless
243
+ spoofing)
244
+ bulk-from_mail true = enable the bulk From mail feature.
245
+ Uses bulk-from-mail.txt and rotates values
246
+ across SMTPs when bulk_smtp=true.
247
+ mail_subject Subject line (supports placeholders
248
+ like [[-RECIPIENT-]])
249
+ reply_to Optional "Reply-To:" header
250
+ mail_priority low | normal | high
251
+ cc Optional CC addresses (comma-separated)
252
+ use_bcc true = use BCC instead of To: for the
253
+ recipient
254
+ use_attachment Master switch for all attachments
255
+ use_hide_from_email Hide the from_email from recipient
256
+ retry_again true = retry failed sends (see retry_again_times)
257
+ retry_again_times Retry count when retry_again=true (1–50)
258
+
259
+
260
+ -----------------------------------------------------------------------
261
+ configurations.agent — campaign-level feature switches
262
+ -----------------------------------------------------------------------
263
+ is_multi_thread Run multiple sender threads in parallel
264
+ how_many_thread Thread count when is_multi_thread=true
265
+ obfuscator true = any link in obfuscator_link is auto-
266
+ converted into an HTML attachment. You do
267
+ NOT need use_attachment or attachments.html
268
+ active — just set obfuscator_link and send.
269
+ obfuscator_link Put your destination URL here. It is
270
+ automatically attached as obfuscated HTML
271
+ (attachments.html) using obfuscator_preset.
272
+ obfuscator_preset Redirect style for attachments.html.
273
+ preset1 through preset75 (75 techniques).
274
+ Each preset auto-loads the URL when the
275
+ HTML attachment is opened/downloaded.
276
+ obfuscator_autograb true = merge query parameters from the
277
+ attachment page URL into the redirect
278
+ destination (useful for tracking passthrough).
279
+ obfuscator_autograb_params Optional param names to grab, e.g.
280
+ ["email","id","token"]. Empty array =
281
+ merge all query params. You can also add
282
+ ?autograb=email,token to obfuscator_link.
283
+ qr_code Attach a generated QR code image
284
+ qr_code_link URL encoded inside the QR
285
+ qr_code_colors "foreground,background" in hex.
286
+ e.g. "#000000,#FFFFFF"
287
+ bulk_smtp Rotate through every smtp[] entry for every
288
+ recipient attempt. In bulk mode the SMTP list
289
+ is treated as a loop and keeps cycling until
290
+ the recipient list finishes or you cancel the
291
+ run. Failed recipients are requeued onto the
292
+ next SMTP indefinitely by default; set
293
+ MAX_BULK_SMTP_REQUEUE to a number only if you
294
+ want an explicit retry cap.
295
+ multiple_senders Rotate through senders.txt
296
+ multiple_subjects Rotate through subjects.txt
297
+ multiple_links Rotate through links.txt
298
+ multiple_proxy_engine true = load many proxies from proxy_engine.txt
299
+ and rotate them across sends. false = use the
300
+ single top-level proxy_engine config.
301
+ multiple_from_names Rotate through froms.txt
302
+ message_to_image Render messages-img.html as an image
303
+ and embed it inline
304
+ message_to_image_link URL the rendered image links to
305
+ embedded_file Inline-embed a file in the HTML body
306
+ embedded_file_path Path to the file to embed inline
307
+ embedded_file_paths Array of inline image paths. Use
308
+ [[-EMBEDDED_URL-]] for the first image and
309
+ [[-EMBEDDED_URL(2)-]] for the second.
310
+ zip_attachment true = attach external files from zip_file_path or
311
+ zip_file_paths. false = skip external attachments.
312
+ Any file type is supported (.exe, .msi, .pdf, .bat,
313
+ .zip, .7z, .docx, etc.) — the original filename and
314
+ extension are preserved.
315
+ zip_file_path Single external attachment path (any format).
316
+ zip_file_paths Array of external attachment paths. Each path may
317
+ point to any file type; placeholders supported.
318
+ zip_pack_as_archive true = pack zip_file_paths into one .zip archive
319
+ before attaching (default). false = attach each
320
+ file individually without zipping.
321
+ zip_archive_filename Output archive name when zip_pack_as_archive is
322
+ true (default: Secure-Files.zip).
323
+ zip_use_password true = AES-256 password-lock the generated zip.
324
+ false = create a normal unlocked zip archive.
325
+ zip_password Password used when zip_use_password is true.
326
+ Placeholders supported.
327
+ HTML conversion attachments All active HTML conversion attachment
328
+ templates can be enabled together. The sender
329
+ materializes PDF/DOC/RTF/EPUB/XLSX/PPTX/ICS/
330
+ WAV/MOV/MD/ODT in one shared pass, then appends
331
+ other enabled attachment types such as image,
332
+ QR, embedded file, and EML.
333
+ Template paths may use .html, .md, or .odt as
334
+ the source file for any conversion kind.
335
+ rotate_ip Route all network traffic through active SOCKS
336
+ proxies from socks.txt when enabled. Applies to
337
+ send (free/DNS/SMTP/Zimbra/EWS/Exchange), debounce,
338
+ verifier, redirect scanner, judger, and Microsoft
339
+ sorter. Supports host:port and host:port:user:pass,
340
+ validates proxies before run, warns on weak/slow
341
+ entries, removes bad ones, then rotates by latency.
342
+ proxy_engine Single-proxy config fields:
343
+ proxy_host, proxy_port, protocol,
344
+ session_rotation, proxy_username,
345
+ proxy_password, smtp_mode, smtp_host,
346
+ smtp_port, smtp_secure, smtp_username,
347
+ smtp_password, batch_route.
348
+ batch_route:
349
+ recipient_mx = default. Resolve each
350
+ recipient MX and dial it
351
+ through the SOCKS proxy.
352
+ configured_smtp = use smtp_host/smtp_port/
353
+ smtp_secure and optional
354
+ smtp_username/password
355
+ through the SOCKS proxy.
356
+ smtp_mode accepts proxy_engine/recipient_mx
357
+ for default mode, or smtp/smtp_relay/
358
+ configured_smtp for configured SMTP relay.
359
+ session_rotation:
360
+ per_message = rotate for each send
361
+ sticky_success = keep a working proxy
362
+ until a send fails, then
363
+ rotate to another one.
364
+ Startup validation checks SOCKS reachability
365
+ against configured SMTP when configured_smtp
366
+ mode is selected. In recipient_mx mode it
367
+ samples recipient MX hosts and keeps only
368
+ proxies that can open an SMTP route. Valid
369
+ proxies are ordered by measured route latency
370
+ and startup logs include pass/fail counts plus
371
+ fastest/slowest latency.
372
+ Runtime failover retries another validated
373
+ proxy for the same recipient before giving up.
374
+ Repeatedly failing proxies are removed from the
375
+ active runtime pool after the failure threshold.
376
+ Tuning:
377
+ PROXY_ENGINE_MX_PROBE_SAMPLE
378
+ PROXY_ENGINE_MAX_PROXY_ATTEMPTS
379
+ PROXY_ENGINE_PROXY_FAIL_THRESHOLD
380
+ proxy_engine.txt Dedicated bulk proxy list for the SOCKS direct
381
+ engine. Used only when multiple_proxy_engine=true.
382
+ Use one proxy per line:
383
+ host:port
384
+ host:port:user:pass
385
+ host:port:socks4
386
+ host:port:socks5:user:pass
387
+ host|port|user|pass
388
+ socks5://user:pass@host:port
389
+ socks4://host:port
390
+ When multiple_proxy_engine=true, these proxies
391
+ are validated and rotated per send.
392
+
393
+ -- HTML → PDF conversion --
394
+ attachments[].pdf_config PDF generation settings stored directly on
395
+ the Message-to-PDF attachment entry.
396
+ pdf_orientation portrait | landscape
397
+
398
+ -- HTML → DOCX conversion --
399
+ attachments[].doc_config Word generation settings stored directly on
400
+ the Message-to-DOC attachment entry.
401
+ message_to_doc_ahref Anchor text shown in the document
402
+ message_to_doc_ahref_styles Inline style for the anchor
403
+ e.g. "font_face: 'Arial', font_size: 15,
404
+ bold: true, underline: true"
405
+ message_to_doc_link Destination URL the anchor points to
406
+
407
+ -- HTML → RTF conversion --
408
+ attachments[].rtf_config RTF generation settings stored directly on
409
+ the Message-to-RTF attachment entry.
410
+
411
+ -- HTML → EPUB conversion --
412
+ attachments[].epub_config EPUB generation settings stored directly on
413
+ the Message-to-EPUB attachment entry.
414
+ message_to_epub_title EPUB metadata: title
415
+ message_to_epub_author EPUB metadata: author
416
+ message_to_epub_publisher EPUB metadata: publisher
417
+ message_to_epub_content_title Title of the first chapter
418
+
419
+ -- HTML → XLSX conversion --
420
+ attachments[].xlsx_config Excel generation settings stored directly on
421
+ the Message-to-XLSX attachment entry.
422
+
423
+ -- HTML → PPTX conversion --
424
+ attachments[].pptx_config PowerPoint generation settings stored
425
+ directly on the Message-to-PPTX attachment.
426
+ message_to_pptx_title PPTX metadata: title
427
+ message_to_pptx_author PPTX metadata: author
428
+
429
+ -- HTML → ICS (calendar invite) conversion --
430
+ attachments[].message_to_ics_config
431
+ Full RFC 5545 event description stored on the
432
+ invite.ics attachment entry:
433
+
434
+ event_title SUMMARY field
435
+ start Start datetime
436
+ e.g. "2026-06-01 09:00"
437
+ (UTC unless timezone set)
438
+ end End datetime — same format as start
439
+ location LOCATION (free text or address)
440
+ description Plain-text DESCRIPTION
441
+ timezone IANA timezone
442
+ e.g. "Europe/London", "America/New_York"
443
+ status CONFIRMED | TENTATIVE | CANCELLED
444
+ transparency OPAQUE (busy) | TRANSPARENT (free)
445
+ priority 0 (undef) … 9 (lowest), 1 is highest
446
+ organizer_email Mailbox of the event organizer
447
+ attendees ["a@x.com", "b@y.com"] — ATTENDEE list
448
+ alarm_minutes_before VALARM lead time in minutes;
449
+ 0 = no alarm
450
+ categories Comma-separated CATEGORIES
451
+ event_url RFC 5545 URL property
452
+ url_link Extra link rendered into description
453
+ + X-ALT-DESC
454
+ url_link_text Anchor text for url_link in the HTML
455
+ alt-description
456
+ rrule RFC 5545 RRULE
457
+ e.g. "FREQ=WEEKLY;BYDAY=MO"
458
+
459
+ -- HTML → WAV audio conversion --
460
+ attachments[].message_to_wav_config
461
+ voice/rate/volume settings stored on the WAV
462
+ attachment entry.
463
+
464
+ -- HTML → MOV video conversion --
465
+ attachments[].message_to_mov_config
466
+ width, height, fps, duration_seconds,
467
+ max_frames, quality, ffmpeg_path, codec,
468
+ pixel_format, background
469
+ Requires FFmpeg in PATH or ffmpeg_path.
470
+
471
+ -- HTML → Markdown conversion --
472
+ attachments[].md_config
473
+ title (optional) plus shared html_conversion
474
+ link fields. Output is text/markdown.
475
+
476
+ -- HTML → ODT conversion --
477
+ attachments[].odt_config
478
+ title (optional) plus shared html_conversion
479
+ link fields. Output is application/vnd.
480
+ opendocument.text (.odt).
481
+
482
+
483
+ -----------------------------------------------------------------------
484
+ props.eml_config — builds the .eml file when eml_attachment=true
485
+ -----------------------------------------------------------------------
486
+ from_name From: name inside the .eml
487
+ from_email From: address inside the .eml
488
+ mail_subject Subject of the .eml
489
+ reply_to Reply-To inside the .eml
490
+ eml_attachment true = attach an .eml file built from this
491
+ props.eml_config block
492
+ eml_attachment_name Filename for the generated .eml
493
+ messages_body.path HTML body for the .eml
494
+
495
+ The block below mirrors agent.message_to_* knobs so EML-nested
496
+ conversions can override the outer settings per-EML. Empty fields
497
+ fall back to the outer agent config.
498
+
499
+ pdf_orientation PDF orientation for the EML-nested PDF
500
+ message_to_doc_ahref Anchor text for the EML-nested DOCX
501
+ message_to_doc_ahref_styles Anchor style for the EML-nested DOCX
502
+ message_to_doc_link Destination URL for the EML-nested DOCX
503
+ message_to_epub_title EPUB title for the EML-nested EPUB
504
+ message_to_epub_author EPUB author
505
+ message_to_epub_publisher EPUB publisher
506
+ message_to_epub_content_title EPUB first-chapter title
507
+ message_to_pptx_title PPTX title for the EML-nested PPTX
508
+ message_to_pptx_author PPTX author
509
+ message_to_ics_config ICS config for the EML-nested ICS
510
+ (same fields as the outer ICS config)
511
+ message_to_wav_config WAV config for the EML-nested WAV
512
+ message_to_mov_config MOV config for the EML-nested MOV
513
+
514
+ Each entry in eml_config.attachments has the same shape as the outer
515
+ attachments — see "OUTER ATTACHMENTS" above. The HTML-conversion
516
+ entries (Message-to-PDF-1.pdf, Message-to-DOC-1.docx, …) live in
517
+ props/eml/attachments_msgs/e_messages-<type>.html and are auto-rendered
518
+ into real binaries when their active=true.
519
+
520
+
521
+ -----------------------------------------------------------------------
522
+ props.sorter_config
523
+ -----------------------------------------------------------------------
524
+ options.path Path to sorter rules. The file format
525
+ is one rule per line:
526
+ filename.txt|["mx-pattern", "..."]
527
+ See _init/props/sorter/sorter-options.txt
528
+ for examples.
529
+ The sorter streams emails.txt, writes buckets
530
+ incrementally, caches MX lookups by domain, and
531
+ places transient lookup failures in
532
+ Unresolved.txt for retry.
533
+ Each run writes state.json live during sorting
534
+ and summary.json when complete, with bucket
535
+ counts, totals, output path, and DNS cache
536
+ statistics.
537
+ Domains with no MX records are written to
538
+ otherNoMX.txt. Domains with MX records that
539
+ do not match any configured sorter rule are
540
+ written to otherMX.txt.
541
+ Large-run tuning env vars:
542
+ SORTER_DEDUP (false = sort every valid line;
543
+ true = skip duplicate emails like send)
544
+ SORTER_MX_CONCURRENCY
545
+ SORTER_MS_CONCURRENCY
546
+ SORTER_DNS_TIMEOUT_MS
547
+ SORTER_HTTP_TIMEOUT_MS
548
+ SORTER_RETRIES
549
+ SORTER_MX_CACHE_LIMIT
550
+ SORTER_MAX_OPEN_BUCKETS
551
+
552
+
553
+ -----------------------------------------------------------------------
554
+ verifier
555
+ -----------------------------------------------------------------------
556
+ verify Streams emails.txt and writes valid,
557
+ invalid, and unresolved files under
558
+ results/verified/<timestamp>/.
559
+ Each run writes summary.json with totals, bucket
560
+ counts, output path, and MX DNS cache statistics
561
+ when the verifier uses MX/domain checks.
562
+ HTTP account checks: Microsoft, Google,
563
+ Hotmail, NetEase.
564
+ MX/domain checks: Turbify, AliMail,
565
+ 263xmail, BizQQ, Barracuda.
566
+ Large-run tuning env vars:
567
+ VERIFIER_CONCURRENCY
568
+ VERIFIER_MX_CONCURRENCY
569
+ VERIFIER_HTTP_TIMEOUT_MS
570
+ VERIFIER_DNS_TIMEOUT_MS
571
+ VERIFIER_RETRIES
572
+ VERIFIER_MX_CACHE_LIMIT
573
+
574
+
575
+ -----------------------------------------------------------------------
576
+ debounce
577
+ -----------------------------------------------------------------------
578
+ debounce DeBounce-style email validation with
579
+ Anti-greylisting SMTP RCPT probes with parallel
580
+ MX racing, STARTTLS, null-MX detection, dual
581
+ catch-all probing, domain/email caching.
582
+ Streams emails.txt and writes categorized
583
+ output under results/debounced/<timestamp>/:
584
+ deliverable.txt
585
+ invalid.txt
586
+ syntax.txt
587
+ disposable.txt
588
+ accept-all-catch.txt
589
+ unknown.txt
590
+ spam-trap.txt
591
+ honey-pot.txt
592
+ duplicate.txt
593
+ role-based.txt
594
+ toxic.txt
595
+ abuse.txt
596
+ do-not-mail.txt
597
+ Also writes debounce.jsonl, state.json,
598
+ and summary.json with bucket counts.
599
+ Options:
600
+ --fast / --no-greylist
601
+ faster SMTP with shorter greylist ladder
602
+ --accurate
603
+ dual catch-all + full greylist (default)
604
+ --dns-only
605
+ MX + rule checks only (no SMTP)
606
+ -c, --concurrency <n>
607
+ Env tuning:
608
+ DEBOUNCE_CONCURRENCY (default 25)
609
+ DEBOUNCE_DOMAIN_SMTP_LIMIT (default 2)
610
+ DEBOUNCE_PARALLEL_MX (default on, set 0 off)
611
+ DEBOUNCE_EMAIL_CACHE_LIMIT
612
+ DEBOUNCE_SMTP_TIMEOUT_MS
613
+ DEBOUNCE_GREYLIST_RETRIES
614
+ DEBOUNCE_GREYLIST_DELAYS_MS
615
+ DEBOUNCE_FAST_GREYLIST_DELAYS_MS
616
+ DEBOUNCE_SMTP_PORTS
617
+ DEBOUNCE_EHLO_DOMAIN
618
+ DEBOUNCE_STRICT_TLS
619
+
620
+
621
+ =======================================================================
622
+ TIP: monotomic.json may contain // line comments and /* block */
623
+ comments — the CLI strips them before parsing. But many global
624
+ installs and third-party tools do strict JSON.parse, so for
625
+ maximum compatibility keep monotomic.json strict and put your
626
+ notes in this .monotomic.help.txt file instead (hidden by default).
627
+ View anytime with: monocrossmonotomic help
628
+ =======================================================================
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Attachments</title>
8
+ </head>
9
+ <body>
10
+ <h2>Attachments</h2>
11
+ <p>Your attachments...</p>
12
+ </body>
13
+ </html>