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);
}
复制代码

 

posted @   adingkui  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示