web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Dynamics AX Latino / Enviar correo (e-mail) en D...

Enviar correo (e-mail) en Dynamics Ax Usando .Net Framework

Community Member Profile Picture Community Member

En este post le quiero explicar otra opción para realizar el envió de correo en Dynamics Ax, diferente al uso de la clase SysMailer, esta opción usa el framework de .Net y me vi en la obligación de utilizarla debido a que usando la clase SysMailer se presentaron muchos problemas en el ambiente de producción, en pruebas funcionaba perfecto pero ya en producción por alguna razón Dynamics Ax no enviaba los correos, apenas invocaba los parámetros para conectarme me presentaba errores de invocación en el método CLR.

Entre las opciones que se muestran en este job, esta la linea de:

1
mailMessage.set_Priority(System.Net.Mail.MailPriority::High);

 Con esta sencilla instrucción podemos darle la prioridad de importante al correo enviado, pueden quitar la linea de 5, 32, 33 si no desean enviar una copia, adicional en el job que se muestra al final del articulo tiene la opción de un archivo adjunto que también es opcional quitando las lineas 8, 17, 18, 37, 38, 39.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
static void EnvioCorreoNet(Args _args)
{
    str                                   sender = 'remitente@dynamicsaxlatino.com';
    str                                   recipient = 'destino@dynamicsaxlatino.com';
    str                                   cc1 = 'concopia@dynamicsaxlatino.com';
    str                                   subject = 'Asunto del Correo';
    str                                   body = 'Cuerpo del email';
    str                                   fileName1 = @'C:\adjunto.txt';
    Set                                   permissionSet;
    System.Exception                      e;
    str                                   mailServer;
    System.Net.Mail.SmtpClient            mailClient;
    System.Net.Mail.MailMessage           mailMessage;
    System.Net.Mail.MailAddress           mailFrom;
    System.Net.Mail.MailAddress           mailTo;
    System.Net.Mail.MailAddressCollection mailCCCollection;
    System.Net.Mail.AttachmentCollection  mailAttachementCollection;
    System.Net.Mail.Attachment            mailAttachment;
    ;
 
    try
    {
        permissionSet = new Set(Types::Class);
        permissionSet.add(new InteropPermission(InteropKind::ClrInterop));
        permissionSet.add(new FileIOPermission(filename1, 'rw'));
        CodeAccessPermission::assertMultiple(permissionSet);
        mailServer = SysEmaiLParameters::find(false).SMTPRelayServerName;
        mailClient = new System.Net.Mail.SmtpClient(mailServer);
        mailFrom = new System.Net.Mail.MailAddress(sender);
        mailTo  = new System.Net.Mail.MailAddress(recipient);
        mailMessage = new System.Net.Mail.MailMessage(mailFrom, mailTo);
        mailCCCollection = mailMessage.get_CC();
        mailCCCollection.Add(cc1);
        mailMessage.set_Priority(System.Net.Mail.MailPriority::High);
        mailMessage.set_Subject(subject);
        mailMessage.set_Body(body);
        mailAttachementCollection = mailMessage.get_Attachments();
        mailAttachment = new System.Net.Mail.Attachment(fileName1);
        mailAttachementCollection.Add(mailAttachment);
        mailClient.Send(mailMessage);
        mailMessage.Dispose();
        CodeAccessPermission::revertAssert();
        info("Correo Enviado.");
    }
    catch (Exception::CLRError)
    {
        e = ClrInterop::getLastException();
 
        while (e)
        {
            info(e.get_Message());
 
            e = e.get_InnerException();
        }
        CodeAccessPermission::revertAssert();
   }
}

Espero les sirva como otra opción para enviar correos desde Microsoft Dynamics AX usando el framework del .net, no olvides usar los comentarios.


This was originally posted here.

Comments

*This post is locked for comments