Возможность использование нескольких учетных записей для отправки e-mail или проведения рассылки

Всем привет!

Сегодня хочу поделить настройки Terrasoft для использования нескольких учетных записей в Outlook.
Для чего это нужно?

Например, Вы работаете с личной почтой, но рассылку от компании Вам необходимо выполнить от корпоративной учетной записи.

Таким образом, перед рассылкой, стоит лишь изменить учетную запись по умолчанию и рассылка пойдет как надо.

Но бывает, что данные действия всё равно не приводят к желаемому результату, тогда открываем TS Admin и находим сервис scr_OutlookUtils.

В нем находим функцию CreateNewOutlookMessageByCopy и меняем ее на следующую:

function CreateNewOutlookMessageByCopy(FileName) {
         var Message;
         if (FileName) {
                   if ((GetOutlookVersion() == '11.0') || (GetOutlookVersion() == '12.0')) {
                            Message = Outlook.Application.CreateItemFromTemplate(FileName);
                            RemoveOutlookMessageProperties(Message);
                   } else {
                            TemplateMessage = Outlook.Application.CreateItemFromTemplate(FileName);
                            RemoveOutlookMessageProperties(TemplateMessage);
                            Message = Outlook.Application.CreateItem(0);
                            if (TemplateMessage.SendUsingAccount != null) {
                                      Message.SendUsingAccount = TemplateMessage.SendUsingAccount;
                            }
                           
                            RemoveOutlookMessageProperties(Message);
                            Message.InternetCodepage = TemplateMessage.InternetCodepage;
                            Message.Subject = TemplateMessage.Subject;
                            Message.BodyFormat = TemplateMessage.BodyFormat;
                       var NewMailItemBodyFormat = GetMailItemBodyFormat(Message);
                       var MessageText;
         
                            if ((NewMailItemBodyFormat  == olFormatHTML) ||
                                      (NewMailItemBodyFormat  == olFormatRichText)) {
                                      MessageText = GetMailItemBody(TemplateMessage);
                                      if (GetMailItemBodyFormat(TemplateMessage) == olFormatPlain) {
                                        MessageText = PreparePlainTextForHTML(MessageText, true);
                                      }
                            } else {
                                      MessageText = TemplateMessage.Body;
                            }
         
                            CopyAttachments(TemplateMessage, Message, false, Log);
                            SetMailItemBody(Message, MessageText);
                           
                            var Recipient;
                            var SourceRecipient;
                            for (var i = 1; i = TemplateMessage.Recipients.Count; i++) {
                                      SourceRecipient = TemplateMessage.Recipients.Item(i);
                                      Recipient = null;
                                      if ((!IsEmptyValue(SourceRecipient.EntryID)) &&
                                               (SourceRecipient.AddressEntry.Type != 'EX')) {
                         Recipient = Message.Recipients.Add(SourceRecipient.Address +
                                                        ' ' + SourceRecipient.Name + '>');
                                      } else {
                         Recipient = Message.Recipients.Add(SourceRecipient.Name);
                         if ((!Recipient.Resolve()) && (!IsEmptyValue(SourceRecipient.EntryID))) {
                            Recipient.AddressEntry = SourceRecipient.AddressEntry;
                         }
                                      }
                                      Recipient.Type = TemplateMessage.Recipients.Item(i).Type;
                            }
         
                            TemplateMessage.Delete();
                   }
         } else {
                   GetOutlookCodePageOut();
                   Message = Outlook.Application.CreateItem(0);
                   if (Outlook.CodePageOut) {
                            Message.InternetCodepage = Outlook.CodePageOut;
                   } else {
                            Message.InternetCodepage = 20866;
                   }
         }
         return Message;
}

Сохраняем сервис, перезапускаем Terrasoft и проверяем отправку писем.

Приятной работы!

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Нравится

2 комментария

Арсений,
возможно ли использование нескольких учетных записей для отправки e-mail из BPMOnline CRM?
Как они настраиваются?

Анна, приветствую!

На текущий момент, такой возможности нет, поскольку отправка писем настраивается в системных настройках через один сервере, но данная реализация уже запланирована на будущие версии.

Возможно, в версии продукта 5.5 данная возможность уже будет.

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Показать все комментарии