sub Mail::Sender::Auth::LOGIN { my $self = shift(); my $s = $self->{'socket'}; $_ = send_cmd $s, 'AUTH LOGIN'; if (!/^[123]/) { return $self->Error(INVALIDAUTH('LOGIN', $_)); } if ($self->{auth_encoded}) { # I assume the username and password had been base64 encoded already! $_ = send_cmd $s, $self->{'authid'}; if (!/^[123]/) { return $self->Error(LOGINERROR($_)); } $_ = send_cmd $s, $self->{'authpwd'}; if (!/^[123]/) { return $self->Error(LOGINERROR($_)); } } else { $_ = send_cmd $s, &encode_base64($self->{'authid'}, ''); if (!/^[123]/) { return $self->Error(LOGINERROR($_)); } $_ = send_cmd $s, &encode_base64($self->{'authpwd'}, ''); if (!/^[123]/) { return $self->Error(LOGINERROR($_)); } } return; } sub Mail::Sender::Auth::PLAIN { my $self = shift(); my $s = $self->{'socket'}; $_ = send_cmd $s, "AUTH PLAIN"; if (!/^[123]/) { return $self->Error(INVALIDAUTH('PLAIN', $_)); } $_ = send_cmd $s, encode_base64("\000" . $self->{'authid'} . "\000" . $self->{'authpwd'}, ''); if (!/^[123]/) { return $self->Error(LOGINERROR($_)); } return; }