我想知道发送电子邮件的过程如何在Dynamics Ax客户端和为服务器设置为默认电子邮件客户端的电子邮件客户端之间起作用。
首先,Dynamics Ax可以使用备用电子邮件客户端(不是outlook)来发送电子邮件,其次是Dynamics Ax将整个配置发送到客户端,或者客户端必须自己配置。
现在,我在尝试使用Windows Live Mail发送电子邮件时遇到未知错误。
答案 0 :(得分:1)
Dynamics AX将MAPI用于客户端邮件。
您可以使用SysINetMail::sendEMail
方法使用此方法发送简单邮件。
如果您批量发送邮件,则另一个选项是使用SysEmailTable::sendMail
使用SMTP邮件
这需要使用邮件模板。
答案 1 :(得分:0)
使用SysOutgoingEmailTable和SysOutgoingEmailData,您可以向任何域的收件人发送电子邮件并附加文件。
您有以下字段:
outgoingEmailTable.EmailItemId
outgoingEmailTable.IsSystemEmail
outgoingEmailTable.Sender
outgoingEmailTable.SenderName
outgoingEmailTable.Recipient
outgoingEmailTable.Subject
outgoingEmailTable.Priority
outgoingEmailTable.WithRetries
outgoingEmailTable.RetryNum
outgoingEmailTable.UserId
outgoingEmailTable.Status
outgoingEmailTable.Message
outgoingEmailTable.TemplateId
outgoingEmailTable.LatestStatusChangeDateTime
outgoingEmailData.EmailItemId
outgoingEmailData.FileName
outgoingEmailData.EmailDataType
outgoingEmailData.FileExtension
在这些表格中插入相应的电子邮件详细信息,您就可以了。如果它给出权限错误,请添加权限设置 CodeAccessPermission :: assertMultiple。
答案 2 :(得分:0)
我知道这是一个老问题,但如果其他人需要它... 我在 Dynamics AX 2009 上使用它,它就像一个魅力:)
server static boolean sendEmail(EmplId _fromEmplId, EmplId _toEmplId, str _subject, str message, EmailPriority _priority = EmailPriority::Normal)
{
boolean ok = true;
SysEmailBatch emailBatch;
EmplTable fromEmplTable;
EmplTable toEmplTable;
Email fromEmail;
Email toEmail;
;
changecompany( -- TO YOUR MASTER COMPANY --)
{
fromEmplTable = EmplTable::find(_fromEmplId);
toEmplTable = EmplTable::find(_toEmplId);
fromEmail = fromEmplTable.email();
toEmail = toEmplTable.email();
if (! fromEmail)
{
ok = checkFailed(strfmt("no email set up for %1", _fromEmplId));
}
if (! toEmail)
{
ok = checkFailed(strfmt("no email set up for %1", _toEmplId));
}
if (ok)
{
emailBatch = SysEmailBatch::construct();
emailBatch.parmSendername(fromEmplTable.name());
emailBatch.parmSenderAddr(fromEmplTable.email());
emailBatch.parmEmailAddr(toEmplTable.email());
emailBatch.parmPriority(_priority);
emailBatch.parmSubject(_subject);
emailBatch.parmMessageBody(_message);
emailBatch.run();
}
}
return ok;
}