症状
尝试使用 Microsoft Dynamics AX 4.0 中的 Send 方法以编程方式向本地 SMTP 服务器发送电子邮件时,不会发送电子邮件。 此外,你还会收到以下错误消息:
类"CDO"的 COM 对象中的方法"send"。消息返回的错误代码0x80040213 (<未知>) ,这意味着:传输无法连接到服务器。
原因
如果满足以下条件,则可能会发生此问题:
-
本地 SMTP 服务器位于运行 Microsoft Windows Server 2003 的计算机上。
-
SMTP 虚拟 (IP) 的 Internet 协议地址设置为本地计算机的 IP 地址。
解决方法
若要解决此问题,请将 SMTP 虚拟服务器的 IP 地址更改为使用"所有 未 分配"选项,然后运行代码以编程方式发送电子邮件。
若要更改 SMTP 虚拟服务器的 IP 地址,请执行以下步骤:
-
单击"开始",指向"所有程序",指向"管理工具",然后单击"IIS Internet Information Services (") 管理器"。
-
展开 Microsoft Dynamics AX 4.0 服务器。
-
右键单击"默认 SMTP 虚拟服务器",然后单击"属性"。
-
在" 常规" 选项卡上 , ("IP 地址"框中) "所有未分配 "地址 。
-
单击 "确定 "关闭" 默认 SMTP 虚拟服务器属性" 对话框。
更多信息
Microsoft 仅提供演示编程示例,没有明示或默示的担保。 这包括但不限于对特定用途的可商家性或适用性的默示保证。 本文假定你熟悉正在演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能。 但是,它们不会修改这些示例以提供额外的功能或构造过程来满足你的特定要求。
以下代码是一个示例,演示了如何使用 Microsoft Dynamics AX 4.0 中的 Send 方法以编程方式发送电子邮件。
static void SysMailer(Args _args)
{
SysMailer mailer;
;
mailer = new SysMailer();
mailer.body("This is the body of the mail");
mailer.subject("The message subject");
mailer.fromAddress("alias@domain");
mailer.tos().appendAddress("alias@domain");
mailer.SMTPRelayServer("domain_name_of_SMTP_Server");
mailer.sendMail();
pause;
}
如果使用"警报"功能通过弹出消息或电子邮件接收通知,可能需要验证 Internet Information Services (IIS) 管理器中的设置是否正确。 为此,请按照下列步骤操作:
-
在 IIS 管理器中,展开 Microsoft Dynamics AX 4.0 服务器。
-
右键单击"默认 SMTP 虚拟服务器"。 然后单击"属性"。
-
单击" 访问" 选项卡。
-
单击"连接"。
-
验证是否选择了"除以下列表外的所有项"选项。 或者,如果选择了"仅下面的列表"选项,请验证该列表是否为空。
-
在"连接"窗口中,单击 "确定 "接受更改。
-
单击"中继"。 然后,重复步骤 5 到步骤 6。
-
验证是否选择了 "除以下列表外的所有 项"选项。 或者,如果选择了"仅下面的列表"选项,请验证该列表是否为空。