AX 2012: 使用Office 365 SMTP Server发送邮件
AX 2012中有两种发送邮件的方式
1,COM组件发送邮件,在AX 2012中通过SysMailer进行了封装
2,利用System.Net.Mail中的SmtpClient类发送邮件,在AX 2012中通过SysMailerNet进行了封装
标准系统这两种方式都不支持Office 365 SMTP来进行邮件发送,如果需要支持,我们需要修改标准代码,改起来也很简单
通过COM组件发送邮件,我们需要在SysMailer中的smtpRelayServer方法中增加如下代码,让其支持SSL安全协议
fields.add('http://schemas.microsoft.com/cdo/configuration/smtpusessl',1);
另外,在测试过程中发现,只有端口25才能正常发送邮件。
通过System.Net.Mail发送邮件,我们需要在SysMailerNet中的方法添加标红的部分,其中端口需要指定587,需要enable ssl,需要将default credentials 设置为false,需要重新指定验证的用户和密码
public void sendMail() { SysEmaiLParameters emailParameters; str password; ; emailParameters = SysEmaiLParameters::find(false); password = SysEmailParameters::password(); // Send mail smtpClient.set_Port(587); smtpClient.set_EnableSsl(true); smtpClient.set_UseDefaultCredentials(false); smtpClient.set_Credentials(new System.Net.NetworkCredential(emailParameters.SMTPUserName , password)); smtpClient.Send(mailMessage); }