.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

Para garantizar la transmisión precisa y rápida del sistema ERP flujo de información, la necesidad de diseñar un mecanismo para el cuadro de mensaje para el sistema. Cuando las operaciones comerciales se producen en el sistema, es necesario que se le recuerde la siguiente parte del operador para asegurar que la información fluye ERP entrega rápida y precisa. Por ejemplo, después de MO (órdenes de trabajo, órdenes de trabajo individuales) publicaciones, tenemos que informar a la preparación de materiales para la producción del taller de picking del almacén. caja de interfaz Mensaje sustancialmente como sigue:

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

El cuadro de mensaje contiene la notificación de servicio (mensajes) y la aprobación de flujo de trabajo (Workflow). Después de servicio de notificación, como los oficiales de compras comprar órdenes de PO, necesidad de informar al personal de almacén recibo listo. aprobación de flujo de trabajo es el control de documentos basados ​​proceso de aprobación.

En el proceso de realización del cuadro de mensaje, nos encontramos con un cliente tiene que enviar un mensaje al sistema de correo electrónico, al mismo tiempo, por lo que escribir este artículo para proceso de implementación de acciones.

El propósito del cliente es muy simple, se envía un mensaje, y también enviar una copia del mensaje a la cuenta de correo apropiado:

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

Aplicación de la sección

1 configurar el servidor de correo electrónico

Hay varias opciones

1 servidor de correo y Outlook con Exchange Server es un servidor de correo excelente, sólo un poco más complicado de configurar.

2 mágica WinMail, WinWebMail versión gratuita se puede liberar 50-100 cuentas, se supera este límite requiere comprar una licencia.

3 hMailServer de código abierto, libre, ilimitado. interfaces COM están disponibles para proporcionar el desarrollo de secundaria.

Hmailserver eligió como servidor de correo del sistema ERP. Saltar el proceso de configuración aquí.

Después de la instalación de hMailServer, crear el dominio EnterpriseSolution.com, y activarlo.

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

2 sincronización de cuentas de correo

Abrir el procedimiento de sincronización, como se muestra a continuación, la contraseña del administrador, la conexión con el servidor de correo. Esto es lo que llamo la interfaz COM para completar el programa.

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

En este programa, el ERP se puede sincronizar con la cuenta de correo electrónico del usuario en la tabla de hMailServer.

Haga clic en el botón de sincronización, abra la cuenta ERP seleccionar el formulario, a continuación, hacer clic en Aceptar, ERP en la cuenta se sincroniza con el sistema de correo de hMailServer.

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

Ver hMailServer cuenta:

.NET sistema ERP para resolver en gran escala e-mail integrado cuenta del sistema

 

sección de desarrollo

La siguiente explicar en detalle cómo se implementa el procedimiento de sincronización anterior, es un simple C # para llamar a C ++ COM interfaz del programa. documento oficial COM de hMailServer da a la dirección de ayuda aquí: https://www.hmailserver.com/documentation/v5.6/?page=com_objects

1 de lectura cuenta del sistema electrónico

En primer lugar crear una conexión con el servidor hMailSever

private Domain HMailServerConnection()

{

string hMailDomain = txtDomain.Text;

string HMailUsername = "Administrator";

string HMailPassword = txtPassword.Text;

var objGlobal = new ApplicationClass();

objGlobal.Authenticate(HMailUsername, HMailPassword);

return objGlobal.Domains.get_ItemByName(hMailDomain);

}

La mayoría de las veces estamos todos los que interactúan con el objeto de interfaz de dominio.

A continuación, lea la cuenta bind datos de la tabla a la rejilla de control de interfaz.
 

DataTable table = new DataTable("Table");

table.Columns.Add("Address", typeof (string));

table.Columns.Add("Password", typeof (string));

table.Columns.Add("PersonFirstName", typeof (string));

table.Columns.Add("PersonLastName", typeof (string));

_domain = HMailServerConnection();

Accounts accounts = _domain.Accounts;

for (int i = 0; i < accounts.Count; i++)

{

Account account = accounts[i];

DataRow dataRow = table.NewRow();

dataRow["Address"] = account.Address;

dataRow["Password"] = account.Password;

dataRow["PersonFirstName"] = account.PersonFirstName;

dataRow["PersonLastName"] = account.PersonLastName;

table.Rows.Add(dataRow);

}

gridAccount.AutoGenerateColumns = false;

gridAccount.DataSource = table;

2 Agregar cuenta de correo

Consulte las siguientes llamadas codificadas
 

Domain domain = HMailServerConnection();

Accounts accounts = domain.Accounts;

Account mailbox = accounts.Add();

mailbox.Address = email;

mailbox.Password = password;

mailbox.Save();

3 Borrar cuenta de correo

El siguiente fragmento de código

Accounts accounts = _domain.Accounts;

int count = accounts.Count;

while (count > 0)

{

_domain.Accounts.Delete(0);

count--;

}

_domain.Accounts.Refresh();

hMailSever proporciona interfaz COM es arquitectura x86, así que sólo puedo configurar este proyecto para la plataforma x86 de compilación.

Más de cuatro idiomas

El proyecto también incluye varios idiomas, he utilizado los controles de un método común de interfaz de traducción, consulte el siguiente código.

public static void TranslateForm(Form form)

{

string labelText = string.Empty;

DataRow dataRow = null;

string translation = string.Empty;

switch (Application.CurrentCulture.LCID)

{

case 2052:

translation = "CHS";

break;

case 1028:

case 3076:

case 5124:

translation = "CHT";

break;

}

foreach (var label in GetAllControlsRecusrvive<Label>(form))

{

labelText = label.Text.Trim().TrimEnd(':');

dataRow = Shared.TranslationTable.Rows.Find(labelText);

if (dataRow != null)

label.Text = Convert.ToString(dataRow[translation]);

}

Sólo hay que llamar a la anterior en el evento de carga del formulario para cada uno del método de interfaz para completar las capacidades multi-idioma.

protected override void OnLoad(EventArgs e)

{

base.OnLoad(e);

Shared.TranslateForm(this);

}

elemento traducción de la interfaz del archivo de recursos XML incrustado proyecto.

Proyecto archivos de código fuente: http://files.cnblogs.com/files/JamesLi2015/Synchronization.zip

 

Publicados 204 artículos originales · ganado elogios 32 · Vistas a 80000 +

Supongo que te gusta

Origin blog.csdn.net/wx_15323880413/article/details/105155866
Recomendado
Clasificación