@@ 172-176 (lines=5) @@ | ||
169 | * # (expanded from: <[email protected]>) # |
|
170 | * # # |
|
171 | */ |
|
172 | elseif (preg_match("/Can't\s+create\s+output.*<(\S+@\S+\w)>/is", $body, $match)) { |
|
173 | $result['rule_cat'] = 'unknown'; |
|
174 | $result['rule_no'] = '0169'; |
|
175 | $result['email'] = $match[1]; |
|
176 | } /* rule: unknown |
|
177 | * sample: |
|
178 | * ????????????????: |
|
179 | * [email protected] : ????, ?????. |
|
@@ 197-201 (lines=5) @@ | ||
194 | * Delivery to the following recipients failed. |
|
195 | * [email protected] |
|
196 | */ |
|
197 | elseif (preg_match("/delivery[^\n\r]+failed\S*\s+(\S+@\S+\w)\s/i", $body, $match)) { |
|
198 | $result['rule_cat'] = 'unknown'; |
|
199 | $result['rule_no'] = '0013'; |
|
200 | $result['email'] = $match[1]; |
|
201 | } /* rule: unknown |
|
202 | * sample: |
|
203 | * A message that you sent could not be delivered to one or more of its |
|
204 | * recipients. This is a permanent error. The following address(es) failed: |
|
@@ 218-222 (lines=5) @@ | ||
215 | * 111.111.111.11 does not like recipient. |
|
216 | * Remote host said: 550 Invalid recipient: <[email protected]> |
|
217 | */ |
|
218 | elseif (preg_match("/Invalid.*(?:alias|account|recipient|address|email|mailbox|user).*<(\S+@\S+\w)>/is", $body, $match)) { |
|
219 | $result['rule_cat'] = 'unknown'; |
|
220 | $result['rule_no'] = '0233'; |
|
221 | $result['email'] = $match[1]; |
|
222 | } /* rule: unknown |
|
223 | * sample: |
|
224 | * Sent >>> RCPT TO: <[email protected]> |
|
225 | * Received <<< 550 [email protected]... No such user |
|
@@ 231-235 (lines=5) @@ | ||
228 | * [email protected] |
|
229 | * ***************** End of message *************** |
|
230 | */ |
|
231 | elseif (preg_match("/No\s+such.*(?:alias|account|recipient|address|email|mailbox|user).*<(\S+@\S+\w)>/is", $body, $match)) { |
|
232 | $result['rule_cat'] = 'unknown'; |
|
233 | $result['rule_no'] = '0234'; |
|
234 | $result['email'] = $match[1]; |
|
235 | } /* rule: unknown |
|
236 | * sample: |
|
237 | * Diagnostic-Code: X-Notes; Recipient user name info ([email protected]) not unique. Several matches found in Domino Directory. |
|
238 | */ |
|
@@ 260-264 (lines=5) @@ | ||
257 | * mail.local: /var/mail/2b/10/kellen.lee: Disc quota exceeded |
|
258 | * 554 <[email protected]>... Service unavailable |
|
259 | */ |
|
260 | elseif (preg_match("/quota\s+exceeded.*<(\S+@\S+\w)>/is", $body, $match)) { |
|
261 | $result['rule_cat'] = 'full'; |
|
262 | $result['rule_no'] = '0126'; |
|
263 | $result['email'] = $match[1]; |
|
264 | } /* rule: full |
|
265 | * sample: |
|
266 | * Hi. This is the qmail-send program at 263.domain.com. |
|
267 | * <[email protected]>: |
|
@@ 285-289 (lines=5) @@ | ||
282 | * sample: |
|
283 | * The message to [email protected] is bounced because : Quota exceed the hard limit |
|
284 | */ |
|
285 | elseif (preg_match("/The message to (\S+@\S+\w)\s.*bounce.*Quota exceed/i", $body, $match)) { |
|
286 | $result['rule_cat'] = 'full'; |
|
287 | $result['rule_no'] = '0168'; |
|
288 | $result['email'] = $match[1]; |
|
289 | } /* rule: full |
|
290 | * sample: |
|
291 | * Message rejected. Not enough storage space in user's mailbox to accept message. |
|
292 | */ |
|
@@ 307-311 (lines=5) @@ | ||
304 | } /* |
|
305 | * <[email protected]> is restricted |
|
306 | */ |
|
307 | elseif (preg_match("/(\S+@\S+\w).*n? is restricted/i", $body, $match)) { |
|
308 | $result['rule_cat'] = 'inactive'; |
|
309 | $result['rule_no'] = '0201'; |
|
310 | $result['email'] = $match[1]; |
|
311 | } /* rule: inactive |
|
312 | * sample: |
|
313 | * [email protected] [Inactive account] |
|
314 | */ |
|
@@ 322-326 (lines=5) @@ | ||
319 | *<[email protected]>: host mx3.HOTMAIL.COM said: 550 |
|
320 | * Requested action not taken: mailbox unavailable (in reply to RCPT TO command) |
|
321 | */ |
|
322 | elseif (preg_match("/<(\S+@\S+\w)>.*\n.*mailbox unavailable/i", $body, $match)) { |
|
323 | $result['rule_cat'] = 'unknown'; |
|
324 | $result['rule_no'] = '124'; |
|
325 | $result['email'] = $match[1]; |
|
326 | } /* |
|
327 | * rule: mailbox unknown; |
|
328 | * sample: |
|
329 | * [email protected] |
|
@@ 337-341 (lines=5) @@ | ||
334 | * http://support.google.com/mail/bin/answer.py?answer=6596 n7si4762785wiy.46 |
|
335 | * (in reply to RCPT TO command) |
|
336 | */ |
|
337 | elseif (preg_match("/<(\S+@\S+\w)>.*\n?.*\n?.*account that you tried to reach does not exist/i", $body, $match)) { |
|
338 | $result['rule_cat'] = 'unknown'; |
|
339 | $result['rule_no'] = '7770'; |
|
340 | $result['email'] = $match[1]; |
|
341 | } /* rule: dns_unknown |
|
342 | * sample1: |
|
343 | * Delivery to the following recipient failed permanently: |
|
344 | * |
|
@@ 397-402 (lines=6) @@ | ||
394 | * <[email protected]>: |
|
395 | * Unable to switch to /var/vpopmail/domains/domain.com: input/output error. (#4.3.0) |
|
396 | */ |
|
397 | elseif (preg_match("/input\/output error/i", $body, $match)) { |
|
398 | $result['rule_cat'] = 'internal_error'; |
|
399 | $result['rule_no'] = '0172'; |
|
400 | $result['bounce_type'] = 'hard'; |
|
401 | $result['remove'] = 1; |
|
402 | } /* rule: internal_error |
|
403 | * sample: |
|
404 | * <[email protected]>: |
|
405 | * can not open new email file errno=13 file=/home/vpopmail/domains/fromc.com/0/domain/Maildir/tmp/1155254417.28358.mx05,S=212350 |
|
@@ 407-412 (lines=6) @@ | ||
404 | * <[email protected]>: |
|
405 | * can not open new email file errno=13 file=/home/vpopmail/domains/fromc.com/0/domain/Maildir/tmp/1155254417.28358.mx05,S=212350 |
|
406 | */ |
|
407 | elseif (preg_match('/can not open new email file/i', $body, $match)) { |
|
408 | $result['rule_cat'] = 'internal_error'; |
|
409 | $result['rule_no'] = '0173'; |
|
410 | $result['bounce_type'] = 'hard'; |
|
411 | $result['remove'] = 1; |
|
412 | } /* rule: defer |
|
413 | * sample: |
|
414 | * <[email protected]>: |
|
415 | * 111.111.111.111 failed after I sent the message. |
|
@@ 425-429 (lines=5) @@ | ||
422 | * sample: |
|
423 | * AutoReply message from [email protected] |
|
424 | */ |
|
425 | elseif (preg_match("/^AutoReply message from (\S+@\S+\w)/i", $body, $match)) { |
|
426 | $result['rule_cat'] = 'autoreply'; |
|
427 | $result['rule_no'] = '0167'; |
|
428 | $result['email'] = $match[1]; |
|
429 | } /* rule: block |
|
430 | * sample: |
|
431 | * Delivery to the following recipient failed permanently: |
|
432 | * [email protected] |
|
@@ 609-613 (lines=5) @@ | ||
606 | * sample: DSN Message only |
|
607 | * User quota exceeded: SMTP <[email protected]> |
|
608 | */ |
|
609 | if (preg_match("/quota exceed.*<(\S+@\S+\w)>/is", $dsn_msg, $match)) { |
|
610 | $result['rule_cat'] = 'full'; |
|
611 | $result['rule_no'] = '0161'; |
|
612 | $result['email'] = $match[1]; |
|
613 | } |
|
614 | } else { |
|
615 | /* action could be one of them as RFC:1894 |
|
616 | * "failed" / "delayed" / "delivered" / "relayed" / "expanded" |