将附件文件添加到AX 2009中批处理作业生成的电子邮件时出错

时间:2017-12-14 08:46:39

标签: axapta x++ dynamics-ax-2009

通过批处理作业“无法创建CLR对象”发送电子邮件时出错。如果没有附件,代码工作正常,对附件所在的文件和目录的权限是正常的。

这是我的代码:

permissionSet = new Set(Types::Class);
permissionSet.add(new InteropPermission(InteropKind::ClrInterop));
permissionSet.add(new FileIOPermission(_filename, 'rw'));
CodeAccessPermission::assertMultiple(permissionSet);

smtpClient = new System.Net.Mail.SmtpClient();
smtpClient.set_Port(25);
smtpClient.set_DeliveryMethod(System.Net.Mail.SmtpDeliveryMethod::Network);
smtpClient.set_UseDefaultCredentials(true);
smtpClient.set_Host('smtp-out.adista.fr');

mail = new System.Net.Mail.MailMessage(sendFrom,sendTo);
mail.set_Subject(subject);
mail.set_IsBodyHtml(true);
mail.set_Body(emailBody);

mailAttachementCollection = mail.get_Attachments();
mailAttachment            = new System.Net.Mail.Attachment(filename);
mailAttachementCollection.Add(mailAttachment);

smtpClient.Send(mail);
CodeAccessPermission::revertAssert();

我调试了,错误出现在“mail attachment = new System.Net.Mail.Attachment(filename);”线。是否存在路径编码错误?我使用UNC路径,如'\ network \ directory \ file.csv'和@path,硬编码路径和文件名具有相同的错误。 我尝试使用sysmailer类,添加附件时也出错了。 有任何想法吗? 谢谢你的帮助

的问候,

1 个答案:

答案 0 :(得分:1)

AOS服务帐户必须具有Windows文件权限才能读取该文件。

访问问题是批处理文件问题的最常见原因,或者可能仅次于非UNC文件名。