Как из экселя автоматически формировать письма

Обновлено: 07.07.2024

Зачастую базы данных e-mail адресов электронной почты либо ведутся в приложении Excel, либо экспортируются в Excel-файл из других источников, поэтому для многих пользователей актуальным становится вопрос рассылки писем на основе данных, содержащихся в Excel-файлах.

Отправка писем макросом

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

Надстройка для почтовой рассылки из Excel

Готовая надстройка для Excel по рассылке электронных писем, созданная на основе макроса, сочетает в себе широкие возможности VBA и простоту в использовании. Ниже представлено диалоговое окно надстройки.

kak otpravit pisma iz excel

При помощи полей, расположенных в левой части диалогового окна можно выбрать способ рассылки и задать диапазоны ячеек, данные из которых будут использоваться при формировании электронных писем. Опции правой части диалогового окна позволяют использовать дополнительные параметры, например, подставлять имена получателей в темы и/или тексты писем, отправлять html-файл в теле письма либо использовать стандартную подпись Outlook, которая также представляет собой html-файл. Кроме того разными почтовыми сервисами используются различные ограничения на отправку писем по размеру, по количеству, по скорости отправки и так далее (рекомендуется ознакомиться с ними заранее), и для того чтобы не выходить за рамки этих ограничений, в надстройке предусмотрена опция «Использовать задержку между письмами», которая позволяет настроить паузу между отправкой писем.

Возможности надстройки

С этой надстройкой Вы сможете:

1. Отправлять на разные адреса электронной почты письма одинакового содержания и с одной темой;

* в ячейке для адреса получателя может быть указано несколько адресов электронной почты без пробелов, через знак-разделитель ";" (при этом получатель письма будет видеть все эти адреса).

2. отправлять на разные адреса электронной почты индивидуальные письма со своим содержанием и разными темами;

3. формировать электронные письма из Excel-таблиц путем выделения диапазонов, содержащих необходимую информацию;

4. создавать персональные электронные письма, используя имена получателей в темах и/или в тексте писем (при выборе опций, использующих имена адресатов, поле для выбора диапазона с именами становится активным);

5. устанавливать паузу между отправкой писем;

6. вставлять html-файл в тело письма либо добавлять к тексту письма стандартную подпись, созданную в Outlook;

7. добавлять изображения (картинки) к письму, созданному на основе html-файла;

8. добавлять во вложения к письмам одинаковый набор файлов;

9. добавлять к каждому письму отдельное вложение;

10. отправлять письма из разных аккаунтов, используемых в Microsoft Outlook;

11. форматировать отправляемый текст при помощи html-тэгов прямо в ячейках;

12. одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel.

rassylka pisem iz Excel cherez Outlook

Внимание! При автоматизированной рассылке писем необходимо помнить о том, что:

2. в некоторых почтовых сервисах, как платных так и бесплатных, действуют различные ограничения на отправку писем, например по количеству отправляемых писем в час или в сутки, по максимальному размеру отправляемых писем, по количеству писем, отправленных на несуществующие адреса и так далее. При несоблюдении таких ограничений Ваш почтовый ящик может быть заблокирован;

3. при использовании паузы между отправкой писем в этой надстройке, Excel будет заблокирован до полного окончания отправки писем.

Видео по работе с надстройкой

rassylka pisem s raznyh uchetnyh zapisej

В приложении Outlook может быть настроено несколько учетных записей, при этом отправка писем ведется с того адреса, который используется по умолчанию. Если необходимо сделать так, чтобы рассылка велась с другого адреса, можно написать этот адрес в ячейках столбца на листе Excel и в поле "Учетные записи" диалогового окна надстройки выделить эти ячейки. Более того, можно отправлять письма с разных аккаунтов (все они должны быть настроены в Outlook). Для этого на рабочем листе Excel создается список учетных записей, с которых будет вестись рассылка и диапазон ячеек этого списка указывается в поле "Учетные записи".

Как добавить вложения к письмам?

В надстройке реализовано два разных способа добавления вложений к отправляемым письмам. Установка флажка в поле "Добавить файлы во вложение" позволяет прицепить несколько файлов, при этом выбранный набор файлов будет прикреплен к каждому письму почтовой рассылки. Можно прикрепить индивидуальное вложение к каждому письму, в таком случае используется поле "Вложения", а на рабочем листе для каждого адресата прописывается полный путь к файлу. Этим способом можно вложить только по одному файлу в каждое письмо. Также можно комбинировать описанные выше способы отправки вложений, то есть уникальный файл вложить при помощи поля "Вложения", а одинаковые для всех файлы вложить при помощи установки флажка в поле "Добавить файлы во вложение". Может возникнуть необходимость отправки нескольких персональных файлов каждому адресату. В таком случае необходимо для каждого письма создавать индивидуальные архивы и отправлять их через поле "Вложения". Создание архивов можно выполнять программно, в автоматическом режиме.

Как вставить картинку в письмо?

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

1. Для отправки картинок обычными вложенными файлами достаточно просто установить флажок в поле "Добавить файлы во вложение" и при помощи кнопки обзора выбрать необходимые файлы, не зависимо от того используется html-файл или нет;

Создать html-файл можно при помощи текстового редактора Word, для этого при сохранении файла необходимо выбрать тип файла "Веб-страница (*.htm; *.html)". После сохранения файла, его необходимо открыть при помощи блокнота или текстового редактора NotePad++, вставить в нужное место документа ссылку на картинку, после чего сохранить внесенные изменения.

Механизм, используемый для автоматической рассылки писем, позволяет отправлять только неотформатированный текст, то есть, если в ячейках Excel для рассылки приготовлен текст, имеющий переносы строк, измененные цвета и размеры шрифтов, отступы и так далее, то при автоматическом формировании писем все эти настройки формата текста игнорируются. Тем не менее, осуществить отправку отформатированного текста все-таки можно, для этого в тексте писем достаточно использовать html-тэги, например, для переноса строки - тэг br, заключенный в угловые скобки <>, а для того чтобы сделать текст жирным - тэги b и /b, также в угловых скобках каждый. Разобраться достаточно просто.

Как совместить текст из ячеек с текстом html-файла?

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

html tegi v tekste pisem

Для решения этой задачи удобнее предварительно объединить имена адресатов с текстом письма при помощи текстовой функции "СЦЕПИТЬ", сохранить результат преобразования в виде значений и уже после этого добавлять необходимые html-тэги. В примере на изображении показано как при помощи тэгов осуществить выравнивание текста по центру, задать курсив, название, размер и цвет шрифта. Образцы файлов прилагаются. После того как все необходимые тэги сформированы в одной ячейке, их можно быстро подставить в начале и в конце значений остальных ячеек столбца. Поможет в этом надстройка для подстановки символов и значений.

Бывает нужно разослать большое количество писем списку контактов из таблицы в Excel.

Это может быть список потенциальных клиентов с мероприятия, выгрузка контактов из программы (1С, Битрикс24, amoCRM), просто список родственников, которые с нетерпением ждут от вас поздравления с праздником или уникального предложения.

Расскажу, как сделать это просто, быстро и бесплатно. Для решения задачи понадобится Excel, Word и Outlook из пакета Microsoft Office.

Запустим Мастер Слияния: вкладка Рассылки (Mailings), Начать слияние (Start Mail Merge), далее Пошаговый мастер слияния (Step-by-Step Merge Wizard).

Пошаговый мастер слияния

Запуск пошагового мастера слияния

Откроется мастер, состоящий из 6 этапов.

Выбор типа документа

Выбор типа документа

На втором этапе нужно указать, какой документ будет использоваться в качестве шаблона, выберем Текущий документ (Current document).

Выбор документа

Выбор документа

Выбор получателей

Выбор получателей

Откроется окно Получатели слияния, в нем можно выбрать или отменить клиентов для которых делаем рассылку.

Вставка поля слияния

Вставка поля

Создание правила

Создание правила

Настройка правила

Настройка правила

В итоге, после вставки полей должен получиться шаблон похожий на мой (вставленные поля выделил красным цветом).

На пятом этапе можно предварительно просмотреть результаты слияния. Для перехода между письмами служат кнопки со стрелками.

На завершающем 6 этапе нужно выбрать единственный пункт Электронная почта.

Завершение слияния

Завершение слияния

Затем в открывшемся окне указать тему отправляемых писем и выбрать в поле Кому столбец нашей таблицы Excel, в котором содержаться адреса получателей

Запуск рассылки

Запуск рассылки

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Имеем таблицу в Microsoft Excel, в которой хранится информация о ключевых клиентах нашей компании (адреса эл.почты, имена, названия компаний и т.д.), которых мы хотим поздравить с очередным праздником.

В терминах Microsoft Office такая процедура называется Слиянием (Mail Merge) . Поехали.

Подготовка списка клиентов в Excel

Таблица со списком клиентов для рассылки должна удовлетворять нескольким простым условиям:

  • Шапка таблицы должна быть простой - одна строка с уникальными названиями столбцов (без повторений и пустых ячеек).
  • В таблице не должно быть объединенных ячеек.
  • В таблице не должно быть пустых строк или столбцов (отдельные пустые ячейки допускаются).

Если планируется отправка по электронной почте, то, само-собой, в таблице должен быть столбец с адресами получателей.

Поскольку Excel и Word не смогу сами определить пол клиента по имени, то имеет смысл сделать отдельный столбец с обращением (господин, госпожа и т.п.) или с родовым окончанием (-ый или -ая) для обращения "Уважаемый(ая). " Как вариант, возможно полуавтоматическое определение пола в зависимости от окончания отчества ("а" или "ч"), реализованное функцией ПРАВСИМВ (RIGHT) .

В новых версиях Microsoft Excel 2007/2010 для таких таблиц очень удобно использовать инструмент Форматировать как таблицу (Format as Table) с вкладки Главная (Home) . Подробнее про такие "умные таблицы" можно почитать тут.

Потом запускаем пошаговый Мастер Слияния на вкладке Рассылки (Mailings) кнопкой Начать слияние ( Start Mail Merge ) – Пошаговый мастер слияния (Step-by-Step Merge Wizard) :

В Word 2003 и старше эта команда была доступна в меню Сервис - Письма и рассылки - Мастер слияния (Tools - Letters and Mailings - Mail Merge) .

Этап 1. Выбор типа документа.

Этап 2. Выбор документа

Этап 3. Выбор получателей

На этом шаге мы подключаем список клиентов в Excel к документу Word. Выбираем Использование списка и жмем на Обзор (Browse) , после чего в диалоговом окне открытия файла указываем где лежит наш файл со списком клиентов.

После выбора источника данных, Word позволяет провести фильтрацию, сортировку и ручной отбор записей при помощи окна Получатели слияния:

Этап 4. Создание письма

На этом этапе пользователь должен указать – куда именно в документ должны попасть данные из подключенного списка. Для этого необходимо установить курсор в точку вставки в письме и использовать ссылку Другие элементы - она выводит полный набор всех полей списка, из которого мы и выбираем нужное поле для вставки:

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

Если в исходной таблице не было специального столбца для окончания "ый"/"ая" к слову "уважаем" (как в нашем примере), но был обычный столбец "Пол" с классическими "муж" и "жен", то можно воспользоваться кнопкой Правила (Rules) на вкладке Рассылки (Mailings) :

mail-merge-rules.jpg

Эта кнопка открывает список правил (функций и полей), доступных для вставки в документ при создании рассылки. Для подстановки нужного окончания к слову "уважаемый/ая" выберем третий пункт IF. THEN. ELSE. В открывшемся затем окне зададим правило подстановки правильного окончания в зависимости от пола:

mail-merge-if.jpg

Этап 5. Просмотр писем

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

Этап 6. Завершение слияния

На завершающем этапе возможны несколько вариантов:

Нажатие ссылки Печать (Print) приведет к немедленной отправке всех результатов слияния на принтер без вывода на экран.

Если необходимо сохранить созданные в результате слияния документы для дальнейшего использования или требуется внести ручную правку в некоторые из документов, то лучше использовать ссылку Изменить часть писем (Edit individual letters) , которая выведет результаты слияния в отдельный файл:

Прежде чем начать читать статью прошу принять к сведению объявление: используйте СВОИ АДРЕСА ЭЛ.ПОЧТЫ при тестировании кодов . Не надо отсылать письма на указанные в статье e-mail адреса- это все приходит мне на почту. Помимо этого Вы сами не сможете понять работает или нет, т.к. письма придут мне, а не Вам.
Спасибо за понимание
P.S. А если написанное выше Вы все же проигнорировали и отправили письмо на мои адреса электронной почты - это означает, что Вы соглашаетесь с тем, что вся информация внутри письма, включая вложения, может быть использована мной без ограничений в личных целях.


Отправка через меню Excel
Отправку без кода осуществить достаточно просто:

Далее выбирается способ отправки:

Также можно указать несколько получателей:

Этот код отправляет одно письмо и одно вложение за раз. Но если несколько раз вызвать метод .Attachments.Add, то можно добавить еще файлы:

.Attachments.Add "C:\Temp\Книга1.xlsx" .Attachments.Add "C:\Temp\Книга2.xlsx" .Attachments.Add "C:\Documents\Report.rar"

objOutlookApp.Session.Logon "user","1234",False, True

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

Этот код отправляет одно письмо и вставляет одну картинку. За это отвечает строка

Если картинку надо вложить с заранее указанными размерами, то строка будет выглядеть так:

"<img src=cid:" & Replace(Dir(sPicture, 16), " ", "%20") & " height=240 width=180>" 'height - высота 'width - ширина

Если надо добавить несколько картинок, то метод .Attachments.Add sPicture надо будет вызвать столько раз, сколько картинок(для каждого свой путь к картинке).

Важно помнить: пути для картинок должны содержать полный путь до файла, включая его имя и расширение: C:\Документы\Изображения\Excel_vba_ru.jpg . При указании только имени Excel_vba_ru.jpg или пути без расширения ( C:\Документы\Изображения\Excel_vba_ru ) ошибки не будет, но картинка не будет вставлена, а вместо неё скорее всего будет текст "Ошибка загрузки картинки!" или пустой квадрат вместо реальной картинки.

  • Outlook 2007 : Меню-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
  • Outlook 2010 и выше : Файл-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)

ВАЖНО: Если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями, возможность изменения данных настроек безопасности программного доступа будет недоступна.



Но так же при отправке файлов и писем часто необходимо не привязываться к конкретной почтовой программе. Ведь далеко не все ставят Outlook. Многие используют иные почтовые программы, например TheBat.

Данный код отправляет письмо, используя объект CDO(Collaboration Data Objects - присутствует во всех версиях Windows) и от имени Вашей учетной записи(либо Яндекс, либо Мэйл, либо Рамблер либо др.).

Это основные моменты. Поля Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.

Чтобы использовать данный код вы можете либо просто скопировать его прямо со страницы, либо скачать файл. В файле программа немного упрощена к использованию - в ячейки листа вам необходимо будет внести поля: Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) и выбрать SMTPserver. SMTPserver выбирается из выпадающего списка. Сам список является динамическим и расположен на листе "Settinngs". Там же расположены поля Учетной записи и Пароль, которые автоматически подставляются в необходимые поля на листе "Отправка". Т.к. список динамический Вы можете просто добавлять к уже имеющимся новые сервисы и потом просто выбирать их из списка. Так же в файле есть еще одна возможность - выбрать файл. Для этого надо просто нажать на кнопку и выбрать файл.

Самый главный момент:
AddRelatedBodyPart

    C:\Документы\Изображения\11.jpg - указывается полный путь к файлу картинки на компьютере, включая расширение файла.
    11.jpg - указывается имя картинки с расширением. Это имя будет использовано внутри письма и именно его необходимо будет указать дальше в " urn:schemas:mailheader:Content-ID ". И указывать обязательно в треугольных скобках: " "
    внутри же самого письма в том месте, где должна отображаться картинки надо записать:

в приведенном выше коде картинка вставляется в самом начале письма и после неё так же добавляется перенос на новую строку при помощи тэга

Читайте также: