Grupo de conexiones refactorizado

Con el lanzamiento de Aspose.Email 19.3, se refactorizó el grupo de conexiones. Nuevo EmailClient se ha introducido la clase que eventualmente reemplazará a la CredentialsByHostClient clase. El EmailClient la clase proporciona una ConnectionAsgmtMode propiedad que define el modo de asignación de conexiones en un entorno multiproceso. EmailClient.ConnectionAsgmtMode se establece mediante el ConnectionAsgmtType enumerable.

Tipos de conexiones

Hay tres tipos de conexión siguientes:

  • La conexión principal: es la conexión creada y eliminada junto con el cliente de correo. No se puede crear ni eliminar manualmente.
  • Conexión predeterminada: el usuario puede crear conexiones predeterminadas para subprocesos con CreateConnection método. Si existe la conexión predeterminada, todos los métodos del cliente de correo electrónico ejecutados en un hilo utilizarán implícitamente esta conexión. Solo puede existir una conexión predeterminada por hilo. Se puede crear de forma manual o automática. Depende de EmailClient.ConnectionAsgmtMode propiedad. Estas conexiones se pueden crear manualmente con EmailClient.CreateConnection(createAsDefaultConnection = true) método. Si no se usa la conexión predeterminada (depende del modo de asignación de la conexión), la conexión principal se usa implícitamente en lugar de ella.
  • Conexiones independientes: son conexiones que no están vinculadas a subprocesos. Se pueden crear manualmente y deben usarse explícitamente como parámetro del método. Estas conexiones se pueden crear manualmente con EmailClient.CreateConnection() método o EmailClient.CreateConnection(createAsDefaultConnection = false) method.

Tipos de asignación de conexiones

Para configurar el EmailClient.ConnectionAsgmtMode property, ConnectionAsgmtType se usa enumerable. Los tipos de asignación proporcionados por ConnectionAsgmtType se enumeran a continuación.

  • ConnectionAsgmtType.UseMainOrDefault: Este modo se utiliza de forma predeterminada en los clientes de correo electrónico. El cliente de correo electrónico utiliza la conexión principal para todas las operaciones desde varios hilos si no se ha creado una conexión predeterminada o si no se ha pasado ninguna conexión como parámetro de método de forma explícita. La conexión principal es una conexión que se crea al mismo tiempo que un cliente de correo electrónico. El usuario puede crear conexiones predeterminadas para hilos con CreateConnection método. Si se crea una conexión predeterminada para un hilo, se usa implícitamente para todos los métodos del cliente de correo electrónico que se invoquen en este hilo. Si no se crea una conexión predeterminada para un hilo, la conexión principal se usa para todos los métodos del cliente de correo electrónico que se invoquen en este hilo. El usuario también puede crear conexiones no vinculadas a hilos (no conexiones predeterminadas) con el CreateConnection método. Si el usuario quiere usar otras conexiones (no la principal ni la predeterminada), debe pasar esta conexión explícitamente como parámetro del método que quiera usar. Además, el usuario puede crear cualquier número de conexiones. La conexión predeterminada solo puede ser una por subproceso. Tenga en cuenta que las conexiones predeterminadas funcionan correctamente si el usuario utiliza objetos Thread para la programación multitarea. Si el usuario usa ConnectionPool o usa objetos Task para la programación multitarea, este modo puede provocar un comportamiento incorrecto de la aplicación. Para evitar este problema, el usuario debe eliminar manualmente la conexión predeterminada (si la usa) al final de la ejecución del código.
  • ConnectionAsgmtType.UseMain: El cliente de correo electrónico usa la conexión principal para todas las operaciones de varios hilos. La conexión principal es una conexión que se crea al mismo tiempo que el cliente de correo electrónico. El usuario no puede crear conexiones predeterminadas. El usuario puede crear conexiones no vinculadas a subprocesos (no conexiones predeterminadas) con CreateConnection método. Si el usuario quiere usar otras conexiones (no la principal ni la predeterminada), debe pasar esta conexión explícitamente como parámetro del método que quiera usar. 
  • ConnectionAsgmtType.UseDefault: El cliente de correo electrónico usa implícitamente solo conexiones predeterminadas para todas las operaciones de varios subprocesos. La conexión principal no se usa en este modo. Si no se ha creado una conexión predeterminada para algún hilo (primera invocación del método del cliente de correo electrónico), el cliente de correo electrónico crea la conexión predeterminada de forma implícita para el hilo antes de ejecutar la primera operación. El usuario no puede crear conexiones predeterminadas para los hilos con CreateConnectionmétodo porque se crean automáticamente. Cuando se crea una conexión predeterminada para un hilo, se usa implícitamente para todos los métodos del cliente de correo electrónico que se invocan en este hilo. El usuario también puede crear conexiones que no estén vinculadas a hilos (no conexiones predeterminadas) con el CreateConnectionmétodo. Si el usuario quiere usar otras conexiones (no la principal ni la predeterminada), debe pasar esta conexión explícitamente como parámetro del método que quiera usar. Además, el usuario puede crear cualquier número de conexiones. Solo se puede usar una conexión predeterminada por subproceso. Tenga en cuenta que las conexiones predeterminadas funcionan correctamente si el usuario utiliza objetos Thread para la programación multitarea. Si el usuario usa ConnectionPool o usa objetos Task para la programación multitarea, este modo puede provocar un comportamiento incorrecto de la aplicación. Para evitar este problema, el usuario debe eliminar manualmente la conexión predeterminada al final de la ejecución del código.