IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Практические стороны вежливости

Как разослать сотни резюме и не сойти с ума. Демонстрация применения MAPI controls в простейшей автоматической программе рассылки сведений о себе в кадровые агентства.

Юрий Кулешов

Мотивы

Не так давно мне потребовалось разослать резюме в различные кадровые агентства. И всё бы ничего, если бы только этих агентств не было так много. Интересующих меня заведений подобного рода в одной только Москве свыше двух сотен. Как известно из опыта, агентства очень плохо переносят множественную рассылку резюме и, получая сообщения, в которых в поле «To» невооружённым глазом просматриваются ещё с пару десятков их конкурентов, просто оставляют «посылку» без внимания. Поэтому групповая отправка невозможна. Однажды, поговорив с одним из агентов, я услышал фразу «Нужна же элементарная вежливость…». Это и есть причина того, почему не стоит рассылать бомбы на сто адресов одним сообщением. Они обижаются! Ладно, будем делать предложение каждому по отдельности.

Всякому ясно, что непосредственная рассылка их Outlook если и возможна, то потребует нечеловеческого напряжения внимания и всего прочего в том духе: нельзя отправлять два резюме по одному адресу, нельзя никого пропускать, ни в коем случае нельзя оставлять поле «Subj» пустым и т.п. Было решено «час потерять и за пять минут долететь». То есть написать простенькую программку, которая брала бы текстовый файл и отправляла его каждому из адресатов. Поскольку терять даже час не хотелось, то было решено воспользоваться следующей комбинацией: Visual Basic + MAPI Control. Применение этой пары позволяет делать с почтой ( в том числе и с отправкой) почти всё, что необходимо. «Почти» — потому что нельзя, например, каким-нибудь простым способом изменить адрес отправителя: всё только в рамках учётных записей, существующих в Outlook. Но это не так важно для той цели, ради которой я связался с отправкой. Возможны различные сценарии, о которых чуть подробней можно прочитать в «заключении».

Процесс

Итак, Visual Basic запущен. Добавляем на форму компонент Microsoft MAPI Control.

Добавление библиотеки компонентов и изменения в «Палитре»
Рис 1. Добавление библиотеки компонентов и изменения в «Палитре»

Всё. Большая часть работы сделана. Осталось только разместить нужные компоненты на форме и организовать процесс чтения с диска резюме и его отправки в агентства. О том, как поместить на форму компонент многие, уверен, догадываются. Поэтому, пока что обойдёмся без иллюстраций.

Размышляя над тем, какая информация необходима для отправки, я пришёл к выводу, что минимально необходимы:

  • список адресатов
  • заголовок сообщений
  • имя файла, из которого надо читать текст.

Позже мне пришло в голову устраивать рассылку от имени другого человека (мало ли для чего, вдруг жена-подруга-друг попросят), и я добавил ещё одно поле: «From». Ввиду ряда ограничений MAPI Control 6.0 это поле пока что не задействовано, но если уж потребуется когда-нибудь рассылать резюме для кого-то, то я уж расстараюсь, но это всё отступления. Итак, форма создана. На рис 2. показан её общий вид:

Общий вид главной формы
Рис 2. Общий вид главной формы для рассылки резюме по многим адресам

Неприметный жёлтый конвертик справа внизу — кнопка «отправить», а отступ слева — место для логотипа. Это я к тому, что дарю идею нового суперпродукта.:)

Раньше уже было сказано, что терять время на написание чего-то подобного очень жалко, поэтому я обошёлся без излишеств, создав один-единственный обработчик. А именно обработчик события Click того самого «жёлтого конвертика».

Внутри обработчика находится код для:

  • получения адресов назначения
  • чтения файла с резюме
  • работы с MAPI, для непосредственной отправки резюме

Код для получения списка адресов «думает», что каждый адрес отделён от другого символом «;», а кроме того, самый последний адрес списка также имеет «;» после себя. Это некоторое упрощение ничем не может помешать в столь простой задаче, поэтому и код был очень прост:

Листинг 1. Код разбора адресов получателей

Дальше требовалось прочитать резюме. Хорошая, коммерческая программа обязана поддерживать огромное количество форматов документов, но для такого случая как мой, было достаточно и текстового файла. Поэтому в коде просто открывается текстовый файл и все данные из него помещаются в строковую переменную:

Листинг 2. Чтение текстового файла с резюме

Из пояснений необходимо лишь сказать, что «Text4» — имя TextBox, стоящего справа от слова «File».

Ну и, наконец, собственно отправка…

Листинг 3. Отправка сообщения всем адресатам из списка по очереди

Здесь MAPISession1 и MAPIMessages1 — имена элементов управления, находящихся на форме. В run-time их, естественно, не видно, а то, как они выглядят на форме, показано на рис 3.

пиктограммы элементов управления
Рис 3. В левой части окна — пиктограммы элементов управления «Сессия» и «Сообщения»

Что получилось

После того, как весь код обработчика написан, можно смело копировать в поле «To» адреса получателей, указывать Subj, говорить, из какого файла добывать резюме и жать на конверт. MAPI отправит сообщения в очередь исходящих программы почты по умолчанию. Вот, как это выглядит:

Вид папки «Исходящие» Outlook Express
Рис 4. Вид папки «Исходящие» Outlook Express

 

И теперь достаточно лишь нажать F5, чтобы каждый из рекрутеров получил свою порцию внимания. С MAPI вежливым быть очень просто.

Заключение

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

И ещё: Вас не насторожило, с чего бы это я стал рассылать резюме о поиске работы в области фармацевтики? Всё просто: моя девушка ищет работу. Если у кого-то из вас есть подходящая вакансия, то… да, мой адрес для переписки остался прежним: yk@rbcmail.ru.

Источник - SoftТерра, http://www.softerra.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com