Trabajar con protección de contraseña de PST

Trabajar con protección de contraseña de PST

Microsoft Outlook permite a los usuarios proteger los archivos PST con una contraseña para restringir su acceso. Aspose.Email puede detectar la protección por contraseña en un archivo PST. La protección por contraseña en realidad solo se implementa en Outlook; los datos no están encriptados en absoluto. Y eso hace posible usar la API para extraer correos electrónicos sin conocer la contraseña.

Leer archivos PST protegidos con contraseña

Puedes leer archivos protegidos con contraseña como si fueran archivos PST sin protección.

using var pst = PersonalStorage.FromFile(fileName);
foreach (var folder in pst.RootFolder.GetSubFolders())
{
    foreach (var msg in folder.EnumerateMessages())
    {

    }
}

Comprobar si PST está protegido con contraseña

La API proporciona el PersonalStorage.Store.IsPasswordProtected propiedad. El PersonalStorage.Store.IsPasswordProtected propiedad que devuelve true si el archivo PST está protegido con contraseña y false si no lo está.

El siguiente fragmento de código demuestra el uso de PersonalStorage.Store.IsPasswordProtected propiedad.

using var pst = PersonalStorage.FromFile("passwordprotectedPST.pst");
Console.WriteLine($"The storage is password protected - {pst.Store.IsPasswordProtected}");

Validar contraseña

El PersonalStorage.Store.IsPasswordValid() método que recibe la cadena de contraseña como parámetro y devuelve true si la contraseña es correcta y false si es incorrecta.

El siguiente fragmento de código demuestra el uso de PersonalStorage.Store.IsPasswordValid() método.

using var pst = PersonalStorage.FromFile("passwordprotectedPST.pst");
Console.WriteLine($"Password is valid - {pst.Store.IsPasswordValid("Password1")}");

Agregar/Cambiar/Eliminar contraseñas

El PersonalStorage.Store.ChangePassword método que se usa para agregar, cambiar o eliminar una contraseña.

Para hacerlo, siga estos pasos:

  • Cargar PST desde un archivo o un flujo.
  • Llame al PersonalStorage.Store.ChangePassword método. Para agregar o cambiar la contraseña, pase una cadena de contraseña como parámetro, y para eliminar la contraseña, pase un valor nulo.
using var pst = PersonalStorage.Create("SetPasswordOnPST_out.pst", FileFormatVersion.Unicode);
// Add or change the password
const string password = "Password1";
pst.Store.ChangePassword(password);
// Remove the password
pst.Store.ChangePassword(null);