Ya encontré el error, mis disculpas, pero se me ocurrió justo después de escribir el post y no encontré un botón para borrar.
Igual, por si a alguien más tiene la misma duda le dejo la respuesta.
el ESMTP utiliza el byte null (0) como separador entre el nombre de usuario y la contraseña y yo estaba usando el byte espacio (20). o sea, yo hacía:
GenerarBase64(Nombre_usuario password)
y debía ser
GenerarBase64(Nombre_usuario\0password)
Igual, por si a alguien más tiene la misma duda le dejo la respuesta.
el ESMTP utiliza el byte null (0) como separador entre el nombre de usuario y la contraseña y yo estaba usando el byte espacio (20). o sea, yo hacía:
GenerarBase64(Nombre_usuario password)
y debía ser
GenerarBase64(Nombre_usuario\0password)