Обсуждение:библиотека отправки писем из RSL по smtp

0 (0)
  • Развернуть Обсуждение:библиотека отправки писем из RSL по smtp ( Обсуждение примера  27.12.2007 10:53 )
    0(0)
    DLM для отправки почтовых сообщений по протоколу smtp.
    тестировал только на 5.0 73 сборка, не знаю как на других работать будет.
    Посмотреть пример
    >> Ответить
    • Развернуть На мой взгляд, правильней было бы сделать DLM для работы с сокетами... ( Иванов Александр  27.12.2007 12:11 )
      0(0)
      А реализацию протокола уже на RSL. Тогда можно было бы легко это дело расширять, к примеру добавить авторизацию...
      >> Ответить
    • Развернуть Не сложновато будет? (+) ( sokols  28.12.2007 09:43 )
      0(0)
      Вот примерчик безо всяких DLL-к практически стандартными средствами
      /***************************************************************************
        25.07.06 SS Отправка письма.
        Sender    : login без суффикса
        Recipient : Адреса перечислять через " ", "," или ";". Суффикс "@isbank.ru"
                    можно опускать
        Subject и Body: в DOS-866
        Attachment: Файл с путем в обычной (относительно СП) или UNC нотации. 
                    Относительный путь не жрет.
      ***************************************************************************/
      import rslx;
      
      macro SendLetter(Sender, Recipient, Subject, Body, Attachment)
      
      private const
        MAIL_HOST   = "192.168.0.200",
        DOMAIN      = "@isbank.ru";
      
      private file r() txt write;
      private var att, i=0, {UserNumber}, objMessage;
      
      //  open(r, GetSysDir + "temp." + {UserNumber});
        open(r, "..\\TXTFILE\\" + "temp." + {UserNumber});
        Sender = Sender + DOMAIN;
      
        SetDelim(r, ", ;");
        r.str = Recipient;
        Recipient = "";
        while(Trim(r(i)) != "")
          if(Index(r(i), "@") == 0)
            Recipient = Recipient + Trim(r(i)) + DOMAIN + ",";
          else
            Recipient = Recipient + Trim(r(i)) + ",";
          end;
          i = i + 1;
        end;
        Recipient = SubStr(Recipient, 1, StrLen(Recipient)-1);
      
        objMessage = ActiveX("CDO.Message");
        objMessage.Subject = Subject;
        objMessage.From = Sender;
        objMessage.To = Recipient;
        objMessage.HtmlBody = Body;
      
        if(ValType(Attachment) != V_UNDEF)
          objMessage.AddAttachment(Attachment);
        end;
      
        objMessage.configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")="192.168.0.200";
        objMessage.configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25;
        objMessage.configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing")=2;
        objMessage.configuration.fields.update;
        objMessage.Send;
      
      end;
      
      /* Example
        SendLetter("sokolov",                              // Addr_From
                   "sokolov, sokol",                       // Addr_To
                   "Тема письма",                          // Subject
                   "Тело письма",                          // Text
                   "D:\\RSBANK\\OBJ1\\postie.exe");        // Attached File
      */
      

      >> Ответить