No need to do more troubleshooting, need to update the config. Found that exim
default config denies these so nothing to do with smptlib indeed:
What this statement is doing is to accept unconditionally all recipients in
messages that are submitted by SMTP from local processes using the standard
input and output (that is, not using TCP/IP). A number of MUAs operate in this
manner.
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
These statements are concerned with local parts that contain any of the
characters "@", "%", "!", "/", "|", or dots in unusual places. Although these
characters are entirely legal in local parts (in the case of "@" and leading
dots, only if correctly quoted), they do not commonly occur in Internet mail
addresses.
http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_default_configuration_file.html
--
https://mail.python.org/mailman/listinfo/python-list