Sisima...nknown(3pm)

πŸ’– NAME πŸ’–

ok so Sisimai::Reason::UserUnknown β€” it checks whether a bounce reason is "userunknown" or not, bestie. that's the whole job. that's the assignment. πŸ’…


✨ SYNOPSIS ✨

use Sisimai::Reason::UserUnknown;
print Sisimai::Reason::UserUnknown->match('550 5.1.1 Unknown User');   # 1

like, you load the thing, you ask it about a bounce message, it says 1. iconic behaviour honestly.


πŸ¦‹ DESCRIPTION πŸ¦‹

so Sisimai::Reason::UserUnknown checks if the bounce reason is "userunknown" or not. and listen β€” this class is not for you to call directly, no no. it's only ever called by the Sisimai::Reason class. it's giving inner circle only, iykyk. πŸ’œ

what even is this error though? okay so it's the error where the local part β€” you know, the left hand side of the @ sign β€” of the recipient's email address does not exist. like the mailbox is just... not there. gone. ghosted you fr fr. 😭

and why does that happen? in many cases the user switched internet service providers, or they quit their company, or somebody just straight up misspelled the local part. all three, all valid, all painful.

so Sisimai will set "userunknown" as the reason of the email bounce if:

  • the value of the Status: field in the bounce email is 5.1.1, or
  • the connection was refused at the SMTP RCPT command, or
  • the contents of the Diagnostic-Code: field represents that it is an unknown user.

three vibe checks, any one of them passes β†’ userunknown. periodt.

here's what that actually looks like in the wild, so you recognise it when it jumps out at you:

<kijitora@example.co.jp>: host mx01.example.co.jp[192.0.2.8] said:
  550 5.1.1 Address rejected kijitora@example.co.jp (in reply to
  RCPT TO command)

see that 550 5.1.1? yeah. that's the moment. 😭


πŸ‘‘ CLASS METHODS πŸ‘‘

πŸ’« text()

the text() method returns the fixed string "userunknown". that's it. that's all it does. no cap.

print Sisimai::Reason::UserUnknown->text;  # userunknown

🌸 match(string)

the match() method returns 1 if the argument matched with patterns defined in this class. so you hand it a string, it tells you if it's giving userunknown energy.

print Sisimai::Reason::UserUnknown->match('550 5.1.1 Unknown User');   # 1

🧚 true(Sisimai::Fact)

the true() method returns 1 if the bounce reason is "userunknown". the argument must be a Sisimai::Fact object, okay? no random values, we're not doing that here. and heads up: this method is called only from the Sisimai::Reason class. like we said. inner circle. πŸ’…


🌈 AUTHOR 🌈

azumakuniyuki 🫢 the legend themselves.


Copyright (C) 2014-2026 azumakuniyuki, All rights reserved.


⭐ LICENSE ⭐

This software is distributed under The BSD 2-Clause License.


and that's the whole page bestie!! this little gem lives in the User Contributed Perl Documentation section, manual page Sisima...nknown(3pm) (yes the title is a whole mystery, we love that for it πŸ’€), built against perl v5.40.1 and dated 2026-07-05. mwah. go forth and debug your bounces. πŸ’–βœ¨

πŸ“¦ where this page comes from