Как выгрузить контакты из яндекс почты в excel
Перейти к содержимому

Как выгрузить контакты из яндекс почты в excel

  • автор:

Импорт контактов

Вы можете перенести ваши контакты из почтовой программы в адресную книгу на Mail.ru, если у вас есть список контактов в формате CSV или vCard. Получить список контактов можно двумя способами: выгрузить из почтовой программы или сервиса или создать CSV-файл вручную.

Выгрузить контакты из почтовой программы или сервиса

Почта Mail.ru Перейдите в адресную книгу → нажмите → «Экспорт контактов». Подробнее Gmail Перейдите Google Контакты → «Экспортировать» Яндекс.Почта Перейдите в настройки → «Контакты» → «Сохранить контакты в файл». Microsoft Outlook Перейдите «Файл» → «Экспорт/Импорт» → «Экспорт в файл» → «Значения, разделенные запятыми» The Bat! Перейдите «Инструменты» → «Адресная Книга» → «Файл» → «Экспорт в» → «Разделены запятыми (текст)» Mozilla Thunderbird Перейдите «Инструменты» → «Адресная книга» → «Инструменты» → «Экспорт» → «С запятой в качестве разделителя»

Создать CSV-файл вручную

  • Обращение
  • Имя
  • Отчество
  • Фамилия
  • Организация
  • Улица (дом. адрес)
  • Основной телефон
  • Web-страница
  • Адрес эл. почты
  • Адрес 2 эл. почты
  • Адрес 3 эл. почты
  • День рождения
  • Заметки

Обязательно только поле «Адрес эл. почты», остальные вы можете оставить пустыми. Ваша таблица должна выглядеть примерно так:

Импортировать контакты в адресную Mail.ru

Когда у вас будет CSV-файл с контактами, импортируйте его в адресную книгу Mail.ru.

  1. Откройте адресную книгу — нажмите под списком папок.
  2. Нажмите рядом с кнопкой «Добавить контакт».
  3. Выберите «Импорт контактов».
  4. Нажмите «Загрузить файл» и выберите файл на компьютере.
  5. Задайте имя для группы, в которую добавятся контакты.

Как создать подходящий для импорта CSV-файл?

а. CSV-файл обязательно должен быть в кодировке UTF-8, иначе он не будет импортирован.

б. В качестве разделителя между значениями обязательно должна быть запятая «,»:

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

в. При импорте поддерживаются данные как для стандартных полей (полное имя, компания, должность, email-адрес, телефон, заметки), так и для кастомных, но их предварительно нужно создать в разделе «Поля данных» аккаунта администратора. Подробнее о создании дополнительных полей читайте в статье.

г. Если вы импортируете данные пользователей из соцсетей или мессенджеров, название канала и id пользователя нужно указывать в одной колонке — через вертикальную черту (канал|id). Формат чувствителен к регистру — в названии канала не должно быть заглавных букв. Если данные указаны верно, поля соотносятся автоматически. Пример файла для импорта пользователей из соцсетей и мессенджеров можете найти здесь.

Самый простой способ создания подходящего CSV-файла

Когда вы экспортируете данные из сторонних сервисов, например, CRM-системы или админки сайта, то можете получить файл, который не подойдёт для импорта в Омнидеск, так как в нём используется иная кодировка или другой разделитель. Поэтому перед импортом файла его необходимого изменить.

Проще всего изменить файл с помощью Google Таблиц. Создайте файл с данными в Google Таблицах или импортируйте имеющийся CSV или XLS-файл:

После выбора файла для импорта у вас появится окно для выбора разделителя в вашем файле.

Чаще всего подходит вариант «Определять автоматически», но если в файле используются разные символы, например, разделителем является точка с запятой, но в некоторых ячейках записаны несколько вариантов через запятую, то лучше указать разделитель вручную (в поле «Тип разделителя» выберите нужный вариант), чтобы файл импортировался корректно.

Далее скачайте файл в формате CSV:

Полученный файл импортируйте в Омнидеск (Аккаунт администратора — раздел «Настройки» — подраздел «Импорт данных»).

Подготовка данных из почтовых сервисов и клиентов

Все почтовые сервисы и клиенты позволяют экспортировать контакты, чтобы перенести их в другие приложения. Далее мы продемонстрируем, как это сделать в Gmail и Яндекс. Почте.

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

Кроме того, почтовые клиенты разделяют фамилию, имя и отчество пользователей по разным столбцам, а для импорта в Омнидеск ФИО должно быть в одном поле.

Для объединения ячеек используйте функцию «Сцепить», а для удаления лишних пробелов — «Сжать пробелы»:

Примеры экспорта контактов
1. Gmail

Откройте «Google Контакты», кликните по разделу «Ещё» — в раскрывшемся списке выберите «Экспортировать»:

В открывшемся модальном окне выберите пункт «Outlook CSV».

2. Яндекс Почта

Находясь в почтовом ящике, перейдите в раздел «Контакты»:

Далее выберите раздел «Ещё» — «Сохранить контакты в файл»:

В открывшемся модальном окне выберите «Сохранить».

Яндекс позволяет сохранять контакты только в формате vCard (.vcf). Омнидеск не поддерживает импорт .vcf-файлов, поэтому нужно конвертировать vcf в csv, например, тут.

В качестве разделителя при конвертации выбирайте запятую.

Загрузка данных CRM (e-mail адресов) в Яндекс.Аудитории

Контекстная, таргетированная реклама и веб-аналитика

В предыдущей статье я показывал способ, как с помощью макроса можно быстро загрузить данные CRM (телефоны) в Яндекс.Аудитории за 1,5 минуты. В этом материале разберем создание сегмента e-mail адресов.

Здесь все также проще – вы загружаете в макрос данные из .txt файла, а далее он все сделает за вас.

Загрузка данных CRM (e-mail) в Яндекс.Аудитории

  1. удаляет дубли;
  2. удаляет все лишние символы, включая текст и специальные символы (%, $, -, !, ?, #, >, и т.д.);
  3. если в одной строчке написано несколько e-mail адресов, то он автоматически отделяет их и переносит в один столбец;
  4. адреса, которые отличаются от стандарта (в которых нет @ и .), помечаются красным цветом, чтобы их можно было легко удалить;
  5. позволяет выделить адреса, которые содержат определенную конструкцию (подсвечивается желтым цветом). Например, если кто-то оставлял тестовые заявки с адресом @test.ru.
  6. удаляет данные загруженного файла (кнопка Очистить).

Макрос не умеет проверять валидацию e-mail адресов. Для этого воспользуйтесь одним из сервисов валидации. Собственные списки можно загружать не только в Яндекс.Аудитории, но и в Google Ads (не всем, читайте этот материал) и в инструменты таргетированной рекламы (Facebook, myTarget, ВКонтакте).

Макрос не нужно настраивать. Все, что необходимо сделать:

  1. разрешить редактирование;
  2. перед началом работы включить содержимое макроса.

Пример загрузки базы e-mail адресов в 2500 контактов в Яндекс.Аудитории:

Скачать: FormatEmails

Парсинг контактов адресной книги Яндекс.почты в CSV на Python

Как-то в процессе работы возник вопрос как на корпоративном домене в Яндексе выгрузить все контакты организации из адресной книги Яндекс.почты в файл .csv или .xls, чтобы было красиво и потом удобно работать с этими данными в MS Excel.

Оказывается, что стандартными средствами Яндекс.почты можно выгрузить только в Vcard формат, что мне совсем не подходит. Нужно потом его как-то конвертировать сторонними средствами. Такие попадались на просторах интернета, что совсем неудобно.

На помощь пришел Python.

C помощью библиотеки BeautifulSoup очень удобно и быстро парсить html и вынимать всю нужную нам информацию.

Для парсинга нам понадобится Python 3, библиотека BeautifulSoup и браузер с инспектором кода.

Для начала импортируем необходимые для работы библиотеки.

from bs4 import BeautifulSoup as BS import re import csv

В результате анализа кода страницы выявлено, что данные которые нам нужны спрятаны в тегах span с классами:

mail-AbookEntry-Contact — содержит имя контакта

mail-AbookEntry-Emails — содержит список Email-ов

Сохраняем нашу веб страницу на диск в папку со скриптом, я назвал ее просто “contacts.html”. Если в адресной книге много контактов, то перед сохранением не забываем нажать “Показать все контакты” в конце страницы.

Открываем сохраненную страницу и получаем весь код внутри тегов span, сохраняя их в три списка:

with open('contacts.html', 'r', encoding='utf-8') as f: html_str = f.read() res = BS(html_str, features="lxml") #список с именами l_contacts = res.findAll('span', class_='mail-AbookEntry-Contact') #список с Emailами l_emails = res.findAll('span', class_='mail-AbookEntry-Emails') #список с телефонами l_phones = res.findAll('span', class_='mail-AbookEntry-Phones') #Объединяем в один большой список с которым и будем дальше работать l_res = list(zip(l_contacts, l_emails, l_phones))

Каждый элемент списка l_res это список с кусочками кода с нашей страницы, соответствующий строке с контактом.

3 группы, которые содержит элемент-список результирующего списка l_res

Пробегаем циклом по нашему списку l_res:

 for i in l_res: l_row_contact=[] #список, в который будут записываться данные о контакте (имя, емейлы, телефон) для записи в файл .csv

Так как i элемент это тоже список, содержащий группы, показанные выше на рисунке, то проходим по всем элементам этого списка.

 for j in i:

Может быть такое, что у контакта несколько Email-ов. В коде они хранятся в списке ul с классом _nb-popup-menu, а каждый email обернут в теги li и a.

#Если существует список дополнительных емейлов у контакта, то извлекаем емейлы и сохраняем в список l_a if j.find('ul', class_='_nb-popup-menu') is not None:

Для начала находим и получаем содержимое тегов li:

 l_li = j.findAll('li', class_='_nb-popup-line') l_a=[]

Пробегаем по каждому полученному li и извлекаем текст Email, обернутый в тег a с классом _nb-popup-link

 for k in l_li: if k.find('a', class_='_nb-popup-link') is not None: l_a.append(k.find('a', class_='_nb-popup-link').text) 

Добавляем к результирующему списку с данными о контакте строку с разделителями \r\n, чтобы в ячейке был перенос, если несколько email-ов.

 l_row_contact.append('\r\n'.join(l_a)) #если доп списка нет, то просто извлекаем все данные по контакту elif j.find('span', class_='mail-ui-Overflower') is not None: l_row_contact.append(j.find('span', class_='mail-ui-Overflower').text)

В результате одного прохода мы получаем список со строками следующего формата:

[ ‘Имя контакта’, ‘Email_1\r\nEmail_2…Email_k’, ‘Телефон’ ]

#записываем строку с данными контакта в файл csv with open('contacts.csv','a') as f: file_writer = csv.writer(f, delimiter = ";", lineterminator="\r") file_writer.writerow(['Имя', 'Emails', 'Телефон']) file_writer.writerow(l_row_contact)

Я использую разделитель ‘;’ только, чтобы при открытии было красиво в Excel.

И так проходим по всему списку, дописывая в файл CSV строки с данными о контактах.

Если использовать разделитель ‘,’ и убрать дополнительные Email-ы в получившемся файле, то можно импортировать всё в Outlook.

Код проекта вы можете посмотреть и скачать на GitHub.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *