Month: octubre 2011

Email

HOWTO: Enviar emails desde X++

Email Enviar correos desde Microsoft Dynamics AX mediante código X++ es muy sencillo, pero requiere de demasiado código si se quiere aplicar de manera reutilizable. Para enviar un email utilizando la clase SysMailer estándar haremos algo parecido a esto:    
SysMailer   sysMailer;
 
SysEmailParameters  sysEmailParameters      = SysEmailParameters::find();
InteropPermission   interopPermissionClr    = new InteropPermission(InteropKind::ClrInterop);
InteropPermission   interopPermissionCOM    = new InteropPermission(InteropKind::ComInterop);
Set                 permissionset           = new set(Types::Class);
 
#define.DefaultFromAddress("from@jaestevan.com")
;
 
try
{
	// Permisos
	permissionset.add(interopPermissionClr);
	permissionset.add(interopPermissionCOM);
	CodeAccessPermission::assertMultiple(permissionset);
 
	//Inicialización de los parámetros de correo electrónico.
	sysMailer = new SysMailer();
 
	if (sysEmailParameters.smtpRelayServerName)
	{
		sysMailer.SMTPRelayServer(sysEmailParameters.smtpRelayServerName,
								  sysEmailParameters.smtpPortNumber,
								  sysEmailParameters.smtpUserName,
								  sysEmailParameters::password(),
								  sysEmailParameters.ntlm);
	}
	else
	{
		sysMailer.SMTPRelayServer(sysEmailParameters.smtpServerIPAddress,
								  sysEmailParameters.smtpPortNumber,
								  sysEmailParameters.smtpUserName,
								  SysEmailParameters::password(),
								  sysEmailParameters.ntlm);
	}
 
	// Dirección de origen
	sysMailer.fromAddress(#DefaultFromAddress);
}
catch
{
	throw error("No se puede inicializar el envío de emails");
}
 
// OK! SysMailer inicializado con parámetros y dirección de origen
 
// Añadir destinatario
sysMailer.tos().appendAddress("test@jaestevan.com");
 
// Se pueden añadir destinatarios en copia (CC)
sysMailer.ccs().appendAddress("cc@jaestevan.com");
 
// Subject del mensaje
sysMailer.subject("Mensaje de prueba");
 
// Cuerpo del mensaje
sysMailer.htmlBody("<a href='https://www.jaestevan.com'>BODY de ejemplo en HTML!</a>");
 
// Hasta se pueden añadir ficheros adjuntos!
sysMailer.attachments().add("ficherodeejemplo.txt");
 
// Let's dance!
sysMailer.sendMail();
 
// Renuncia de los permisos
CodeAccessPermission::revertAssert();
(más…)