Имя: Пароль:
1C
 
Получить адреса эл. почты из outlook
0 Широкий
 
13.03.07
16:45
Вообщем код..

   Соединение=Новый COMОбъект("Outlook.Application");
   ПространствоИмен=Соединение.GetNameSpace("MAPI");
   АдреснаяКнига=ПространствоИмен.AddressLists("Глобальный список адресов");
   КоличествоЗаписей=АдреснаяКнига.AddressEntries.Count();
   Для сч=1 По КоличествоЗаписей Цикл
       ТекЗапись=АдреснаяКнига.AddressEntries(сч);
       Прервать;
   КонецЦикла;

Застопорился на "ТекЗапись" ... не знаю как выйти на эл. адрес контакта
1 Salvador Limones
 
13.03.07
16:50
Тормозни отладчиком на ТекЗапись и посмотри.
2 MRAK
 
13.03.07
17:34
Email1Address
Email1AddressType
Email1DisplayName
Email1EntryID
Email2Address
Email2AddressType
Email2DisplayName
Email2EntryID
Email3Address
Email3AddressType
Email3DisplayName
Email3EntryID
3 MRAK
 
13.03.07
17:35
Вот кусок кода, как я получал сию хрень:
4 MRAK
 
13.03.07
17:35
Для сч = 1 По MyFolder.Items.Count Цикл
       ЭлементыФормы.индЗагрузки.Значение = сч;
       Контакт = "";
       MyItem = MyFolder.Items(сч);
       спрЭлементы = Справочники.ЭлементыOutlook;
       НайденнаяСсылка = спрЭлементы.НайтиПоРеквизиту("EntryID", MyItem.EntryID);
       Если НайденнаяСсылка = спрЭлементы.ПустаяСсылка() Тогда
           Сообщить("Создаем " + ЭлементыФормы.ПапкаOutlook.Значение.Наименование + " """ + MyItem.Subject + """");
           // Для всех объектов
           НовыйОбъект = спрЭлементы.СоздатьЭлемент();
           НовыйОбъект.BillingInformation = MyItem.BillingInformation;
           НовыйОбъект.Body = MyItem.Body;
           НовыйОбъект.Categories = MyItem.Categories;
           НовыйОбъект.Companies = MyItem.Companies;
           НовыйОбъект.CreationTime = Строка(MyItem.CreationTime);
           НовыйОбъект.EntryID = MyItem.EntryID;
           НовыйОбъект.Importance = Строка(MyItem.Importance);
           НовыйОбъект.LastModificationTime = Строка(MyItem.LastModificationTime);
           НовыйОбъект.MessageClass = MyItem.MessageClass;
           НовыйОбъект.Mileage = MyItem.Mileage;
           НовыйОбъект.NoAging = Строка(MyItem.NoAging);
           НовыйОбъект.OutlookVersion = MyItem.OutlookVersion;
           НовыйОбъект.Saved = Строка(MyItem.Saved);
           НовыйОбъект.Sensitivity = Строка(MyItem.Sensitivity);
           НовыйОбъект.Size = Строка(MyItem.Size);
           НовыйОбъект.Subject = MyItem.Subject;
           НовыйОбъект.UnRead = Строка(MyItem.UnRead);
           // Только для контактов
           Если ЭлементыФормы.ПапкаOutlook.Значение.Наименование = "Контакты" Тогда
               НовыйОбъект.Account = MyItem.Account;
               НовыйОбъект.Anniversary = Строка(MyItem.Anniversary);
               НовыйОбъект.AssistantName = MyItem.AssistantName;
               НовыйОбъект.AssistantTelephoneNumber = MyItem.AssistantTelephoneNumber;
               НовыйОбъект.Birthday = Строка(MyItem.Birthday);
               НовыйОбъект.Business2TelephoneNumber = MyItem.Business2TelephoneNumber;
               НовыйОбъект.BusinessAddress = MyItem.BusinessAddress;
               НовыйОбъект.BusinessAddressCity = MyItem.BusinessAddressCity;
               НовыйОбъект.BusinessAddressCountry = MyItem.BusinessAddressCountry;
               НовыйОбъект.BusinessAddressPostalCode = MyItem.BusinessAddressPostalCode;
               НовыйОбъект.BusinessAddressPostOfficeBox = MyItem.BusinessAddressPostOfficeBox;
               НовыйОбъект.BusinessAddressState = MyItem.BusinessAddressState;
               НовыйОбъект.BusinessAddressStreet = MyItem.BusinessAddressStreet;
               НовыйОбъект.BusinessFaxNumber = MyItem.BusinessFaxNumber;
               НовыйОбъект.BusinessHomePage = MyItem.BusinessHomePage;
               НовыйОбъект.BusinessTelephoneNumber = MyItem.BusinessTelephoneNumber;
               НовыйОбъект.CallbackTelephoneNumber = MyItem.CallbackTelephoneNumber;
               НовыйОбъект.CarTelephoneNumber = MyItem.CarTelephoneNumber;
               НовыйОбъект.Children = MyItem.Children;
               НовыйОбъект.CompanyAndFullName = MyItem.CompanyAndFullName;
               НовыйОбъект.CompanyMainTelephoneNumber = MyItem.CompanyMainTelephoneNumber;
               НовыйОбъект.CompanyName = MyItem.CompanyName;
               НовыйОбъект.ComputerNetworkName = MyItem.ComputerNetworkName;
               НовыйОбъект.CustomerID = MyItem.CustomerID;
               НовыйОбъект.Department = MyItem.Department;
               НовыйОбъект.Email1Address = MyItem.Email1Address;
               НовыйОбъект.Email1AddressType = MyItem.Email1AddressType;
               НовыйОбъект.Email1DisplayName = MyItem.Email1DisplayName;
               НовыйОбъект.Email1EntryID = MyItem.Email1EntryID;
               НовыйОбъект.Email2Address = MyItem.Email2Address;
               НовыйОбъект.Email2AddressType = MyItem.Email2AddressType;
               НовыйОбъект.Email2DisplayName = MyItem.Email2DisplayName;
               НовыйОбъект.Email2EntryID = MyItem.Email2EntryID;
               НовыйОбъект.Email3Address = MyItem.Email3Address;
               НовыйОбъект.Email3AddressType = MyItem.Email3AddressType;
               НовыйОбъект.Email3DisplayName = MyItem.Email3DisplayName;
               НовыйОбъект.Email3EntryID = MyItem.Email3EntryID;
               НовыйОбъект.FileAs = MyItem.FileAs;
               НовыйОбъект.FirstName = MyItem.FirstName;
               НовыйОбъект.FTPSite = MyItem.FTPSite;
               НовыйОбъект.FullName = MyItem.FullName;
               НовыйОбъект.FullNameAndCompany = MyItem.FullNameAndCompany;
               НовыйОбъект.Gender = Строка(MyItem.Gender);
               НовыйОбъект.GovernmentIDNumber = MyItem.GovernmentIDNumber;
               НовыйОбъект.Hobby = MyItem.Hobby;
               НовыйОбъект.Home2TelephoneNumber = MyItem.Home2TelephoneNumber;
               НовыйОбъект.HomeAddress = MyItem.HomeAddress;
               НовыйОбъект.HomeAddressCity = MyItem.HomeAddressCity;
               НовыйОбъект.HomeAddressCountry = MyItem.HomeAddressCountry;
               НовыйОбъект.HomeAddressPostalCode = MyItem.HomeAddressPostalCode;
               НовыйОбъект.HomeAddressPostOfficeBox = MyItem.HomeAddressPostOfficeBox;
               НовыйОбъект.HomeAddressState = MyItem.HomeAddressState;
               НовыйОбъект.HomeAddressStreet = MyItem.HomeAddressStreet;
               НовыйОбъект.HomeFaxNumber = MyItem.HomeFaxNumber;
               НовыйОбъект.HomeTelephoneNumber = MyItem.HomeTelephoneNumber;
               НовыйОбъект.Initials = MyItem.Initials;
               НовыйОбъект.ISDNNumber = MyItem.ISDNNumber;
               НовыйОбъект.JobTitle = MyItem.JobTitle;
               НовыйОбъект.Journal = Строка(MyItem.Journal);
               НовыйОбъект.Language = MyItem.Language;
               НовыйОбъект.LastName = MyItem.LastName;
               НовыйОбъект.LastNameAndFirstName = MyItem.LastNameAndFirstName;
               НовыйОбъект.MailingAddress = MyItem.MailingAddress;
               НовыйОбъект.MailingAddressCity = MyItem.MailingAddressCity;
               НовыйОбъект.MailingAddressCountry = MyItem.MailingAddressCountry;
               НовыйОбъект.MailingAddressPostalCode = MyItem.MailingAddressPostalCode;
               НовыйОбъект.MailingAddressPostOfficeBox = MyItem.MailingAddressPostOfficeBox;
               НовыйОбъект.MailingAddressState = MyItem.MailingAddressState;
               НовыйОбъект.MailingAddressStreet = MyItem.MailingAddressStreet;
               НовыйОбъект.ManagerName = MyItem.ManagerName;
               НовыйОбъект.MiddleName = MyItem.MiddleName;
               НовыйОбъект.MobileTelephoneNumber = MyItem.MobileTelephoneNumber;
               НовыйОбъект.NickName = MyItem.NickName;
               НовыйОбъект.OfficeLocation = MyItem.OfficeLocation;
               НовыйОбъект.OrganizationalIDNumber = MyItem.OrganizationalIDNumber;
               НовыйОбъект.OtherAddress = MyItem.OtherAddress;
               НовыйОбъект.OtherAddressCity = MyItem.OtherAddressCity;
               НовыйОбъект.OtherAddressCountry = MyItem.OtherAddressCountry;
               НовыйОбъект.OtherAddressPostalCode = MyItem.OtherAddressPostalCode;
               НовыйОбъект.OtherAddressPostOfficeBox = MyItem.OtherAddressPostOfficeBox;
               НовыйОбъект.OtherAddressState = MyItem.OtherAddressState;
               НовыйОбъект.OtherAddressStreet = MyItem.OtherAddressStreet;
               НовыйОбъект.OtherFaxNumber = MyItem.OtherFaxNumber;
               НовыйОбъект.OtherTelephoneNumber = MyItem.OtherTelephoneNumber;
               НовыйОбъект.PagerNumber = MyItem.PagerNumber;
               НовыйОбъект.PersonalHomePage = MyItem.PersonalHomePage;
               НовыйОбъект.PrimaryTelephoneNumber = MyItem.PrimaryTelephoneNumber;
               НовыйОбъект.Profession = MyItem.Profession;
               НовыйОбъект.RadioTelephoneNumber = MyItem.RadioTelephoneNumber;
               НовыйОбъект.ReferredBy = MyItem.ReferredBy;
               НовыйОбъект.SelectedMailingAddress = Строка(MyItem.SelectedMailingAddress);
               НовыйОбъект.Spouse = MyItem.Spouse;
               НовыйОбъект.Suffix = MyItem.Suffix;
               НовыйОбъект.TelexNumber = MyItem.TelexNumber;
               НовыйОбъект.Title = MyItem.Title;
               НовыйОбъект.TTYTDDTelephoneNumber = MyItem.TTYTDDTelephoneNumber;
               НовыйОбъект.User1 = MyItem.User1;
               НовыйОбъект.User2 = MyItem.User2;
               НовыйОбъект.User3 = MyItem.User3;
               НовыйОбъект.User4 = MyItem.User4;
               НовыйОбъект.UserCertificate = MyItem.UserCertificate;
               НовыйОбъект.WebPage = MyItem.WebPage;
           КонецЕсли;
           НовыйОбъект.Записать();
       Иначе
           Сообщить(ЭлементыФормы.ПапкаOutlook.Значение.Наименование + " """ + MyItem.Subject + """ уже существует");
       КонецЕсли;
       ОбработкаПрерыванияПользователя();
   КонецЦикла;
5 mikecool
 
13.03.07
17:37
(4) афигеть... а перечисление полей можно циклом по реквизитам заменить?
6 MRAK
 
13.03.07
17:53
можно. я специально такой код сделал, чтобы показать все эти реквизиты
7 MRAK
 
13.03.07
17:59
+(6) Тем более, без цикла по реквизитам бысрее работает. а я базу огромную конвертил
8 smaharbA
 
13.03.07
18:30

//*******************************************
Процедура Сформировать()
   Соединение = СоздатьОбъект("Outlook.Application");
   ПространствоИмен = Соединение.GetNamespace("MAPI");
   Адреса = ПространствоИмен.GetDefaultFolder(10).Items;
   Для к = 1 По Адреса.Count Цикл
       Контакт = Адреса.Item(к);
       СвойстваКонтакта = Контакт.ItemProperties;
       Стр = "";
       Для а = 0 По СвойстваКонтакта.Count-1 Цикл
           Стр = Стр + СвойстваКонтакта.Item(а).Name + "->" + СвойстваКонтакта.Item(а).Value + РазделительСтрок;
       КонецЦикла;
       Сообщить(Стр);
   КонецЦикла;
КонецПроцедуры

Так пойдет ? Или именно адресная книга волнует ?
9 Широкий
 
14.03.07
11:08
У меня немного другая ситуация
"ПространствоИмен.GetDefaultFolder(10)" - папка контактов ... но у меня она пустая  Адреса эл.почты проставляется из какого то списка "Глобальный список адресов" т.е. через "ПространствоИмен.AddressLists("Глобальный список адресов");"
Возможно это как то завязано на Microsoft Exchange Server...
В моем исходном коде у переменной "ТекЗапись" есть поле "Address" вида
"/o=Harmony/ou=First Administrative Group/cn=Recipients/cn=sommelier" - последнее  слово и есть адрес... Я это строку разбираю и получаю мыло..  

В двух словах разобрался... спасибо всем, кто откликнулся
10 Pooh
 
14.03.07
11:38
а для семерки такой же код будет ?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший