Thank you for the brilliant work!
I have found one problem when using a SMTP authentication.
Sometimes an email can't be sent with a diagnostic message "SMTP MAIL ERROR (From Address): Authentication required".
In this case the 'email_login' and 'email_password' properties have to be set. However, this did not solve the problem because of a new error message: "SMTP AUTH ERROR: garbled Base64 data".
I've found that problem is in the sub EN_auth_login of your package in line:
"$login_inf[$i] = MIME::Base64::encode_base64(EN_removeCR(EN_GetProperty($properties[$i])));"
This is quotation of Base64.pm:
“The following functions are provided:
=item encode_base64($str, $eol);
Encode data by calling the encode_base64() function. The first
argument is the string to encode. The second argument is the
line-ending sequence to use. It is optional and defaults to "\n".”
So, the above line shold be changed to "$login_inf[$i] = MIME::Base64::encode_base64(EN_removeCR(EN_GetProperty($properties[$i])), "");"