Saltar al contenido

Autorizando SMTP

Bien…

A veces me he visto en la necesidad de comprobar la capacidad de autorizacion por SMTP de algun servidor de correos.

Haciendolo usando claves en texto plano es un poco inseguro. Es mejor usar codificacion, y una forma sencilla de hacerlo usualmente es con base64. (No es mucho mas seguro, eso si)

La forma de calcular la cadena de autenticacion que se debe enviar al servidor, es concatenando ambos valores (usuario y clave) usando el caracter 0 como separador. Ojo, que no es el numero 0, es el caracter definido por el codigo ASCII 0. ( \0 para los mas nerd )

Mas facil (y flojo), usando este script en PHP :

<?
  # Usar asi : php auth.php usuario clave
  $user  = $argv[1];
  $pass  = $argv[2];
  $unenc = implode("\000",array($user,$pass));
  echo "AUTH LOGIN " . base64_encode("$unenc") . "\n";
  echo "AUTH PLAIN " . base64_encode("\000$unenc") . "\n";
?>

Usando el script , obtendremos las siguientes lineas listas para usar :

# php auth.php user1@domain.com password1
AUTH LOGIN dXNlcjFAZG9tYWluLmNvbQBwYXNzd29yZDE=
AUTH PLAIN AHVzZXIxQGRvbWFpbi5jb20AcGFzc3dvcmQx

Por supuesto, esto es para trabajos por linea de comandos.

Publicado enCodigoPHP
Ivn Systems/Software ©2020