我被要求帮助对Microsoft Dynamics NAV 5.0做一些急需的更新(是旧的),他们希望我更新他们的一些电子邮件模板以获取销售订单等。他们希望我做的一件事情do是将“发件人”字段更新为群组电子邮箱而不是当前用户,我认为这并不太困难,但弄清楚NAV如何创建电子邮件并不简单。
这篇文章有一些信息,但没有让我一路走到那里: http://www.dynamics101.com/2014/02/sending-customized-emails-dynamics-nav/
我找到了Sales Header表,它有很多字段......其中没有一个包含“From”。我找到了一个名为“Assigned User”的字段,它指向用户设置。任何帮助将不胜感激。
答案 0 :(得分:0)
您是指在销售订单批准/拒绝事件或客户卡中的小“新邮件”按钮时发送的邮件吗?在这些情况下使用的库是不同的,它们依赖于不同的自动化对象来创建电子邮件。 无论如何,在这两种情况下都没有设置来更改“发件人”字段 - 您必须稍微自定义它。
首先,您需要在安装表中添加一个新字段来存储电子邮件地址。表'用户设置'可能是最好的地方,但它当然取决于任务。假设是Uset Setup,你调用新字段'FromAddress'
当您单击客户卡中的电子邮件按钮时,将运行“创建邮件”向导(表单5148“创建邮件”)。它在codeunit 397中调用函数'NewMessage'。因此,codeunit 397'Mail'就是你要找的东西。要更改“发件人”地址,您需要在OSendMail对象中设置属性“SentOnBehalfOfName”。
UserSetup.GET(USERID);
OSendMail.SentOnBehalfOfName(UserSetup.FromAddress);
如果您要更改的邮件是文档批准通知,则会在codeunit 400'SMTP Mail'中创建电子邮件,但所有字段都在代码单元440'Approvals Mgt Notification'中设置,功能SetTemplate和GetEmailAddress。 GetEmailAddress设置发件人地址。您需要替换这行代码:
SenderAddress := UserSetup."E-Mail";
使用新的
SenderAddress := UserSetup.FromAddress;
但要小心 - 此更改将影响所有模板和所有用户。如果您需要更改某些模板而保持其他模板不变,则在负责特定模板的函数中重新定义此变量的值会更安全。但同样,这一切都在codeunit 440中。