Здравствуйте.
Перевожу систему с 3.0 на 2009
Столкнулся с несколькими местами, где в 3-ке идёт отправка сообщений, примерно так:
X++:
void sendMail(str subject, str text, str to, Set att)
{
SysOutlookMailItem mailItem;
SysOutlookApplication outlook;
COM com;
SetIterator si = new SetIterator(att);
;
outlook = new SysOutlookApplication();
#SysOutlookCOMDEF
while(si.more())
{
com = outlook.CreateItem(0);
mailItem = new SysOutlookMailItem(com);
mailItem.Subject(subject);
mailItem.Attachments().Add(COMVariant::createFromStr(si.value()));
mailItem.SafeSend(to);
si.next();
}
}
В 2009 аналогичного класса не нашёл, там, где он использовался, идёт инициализация соответсвующих COM-объектов:
X++:
com outlook;
com mailItem;
COM com;
outlook = new com("Outlook.Application");
sysOutlookNameSpace = outlook.getNamespace("MAPI");
sysOutlookNameSpace.logon();
sysOutlookMAPIFolder = sysOutlookNameSpace.getDefaultFolder(#OlDefaultFolders_olFolderCalendar);
com = sysOutlookMAPIFolder.items();
mailItem = com.add();
mailItem.Subject("Тема");
mailItem.Body("Текст");
mailitem.To("Адресат");
mailItem.Send();
Так же есть класс smmOutlookEmail, который, вроде бы, тоже вполне справляется с отправкой писем. Собственно, вопрос в чём: нет ли каких-то подводных камней тут? Что умеет делать SysOutlookApplication, чего не умеет smmOutlookEmail?