AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2011, 16:24   #16  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от timaluhs Посмотреть сообщение
У меня тут проблема. Надо посылать почту с прикреплённым файлом. Нашла дот.нет код. с клиентской машины посылает как часы. Теперь задачка усложнилась. Не все пользуются клиентом, по большей части народ пользуется ТС. Там нет никакого почтового агента, соответственно письмо не посылается. Написан класс, который будет запускаться из batch на сервере и посылать письмо каждые 5-10 минут. Всё путём но почему-то на первой строчке выдаёт ошибку
Request for the permission of type 'InteropPermission' failed. Object 'CLRObject' could not be created...
Привожу пример рабочего кода, который может отправлять сообщения, в т.ч. на серверной стороне. Может кто то захочет "поиграть" с NET

(Хотя я все же рекомендую пользоваться "стандартным" для Ax способом - класс SysEmailBatch)

Проверен на ax 2009
X++:
static server boolean mlm_SendMailAttachment(str Body, str Subject, str FileName, str to, str sender)
{
    System.Net.Mail.MailAddress             mailAddressFrom;
    System.Net.Mail.MailAddress             mailAddressTo;
    System.Net.Mail.MailMessage             mailMessage;
    System.Net.Mail.Attachment              attachment;
    System.Net.Mail.AttachmentCollection    attachementCollection;
    System.Net.Mail.SmtpClient              smtpClient;
    str                                     SMTPServer;
    ;

    new InteropPermission(InteropKind::ClrInterop).assert();

    try
    {
        mailAddressFrom = new System.Net.Mail.MailAddress(sender);
        mailAddressTo =  new System.Net.Mail.MailAddress(to);

        SMTPServer = SysEmailParameters::find(false).SMTPRelayServerName;

        mailMessage = new System.Net.Mail.MailMessage(mailAddressFrom, mailAddressTo);

        mailmessage.set_Subject(Subject);
        mailmessage.set_Body(Body);
        mailmessage.set_IsBodyHtml(true);

        attachementCollection = mailMessage.get_Attachments();

        attachment = new System.Net.Mail.Attachment(FileName);
        attachementCollection.Add(attachment);

        smtpClient = new System.Net.Mail.SmtpClient(SMTPServer);
        smtpClient.Send(mailmessage);

        mailmessage.Dispose();
        attachment.Dispose();

        return true;
    }
    catch(Exception::CLRError)
    {
       error(AifUtil::getClrErrorMessage());

       return false;
    }
}
Теги
email batch, atachment

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Batch processing Blog bot DAX Blogs 0 29.01.2009 17:05
axaptabuilder: How to setup Axapta batch server running as user defined windows service Blog bot DAX Blogs 0 12.04.2007 16:10
Как указать отправителя при передаче письма через Mapi wit DAX: Программирование 1 14.01.2005 17:08
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:39.