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

Стандартные возможности Excel ограничиваются отправкой активной рабочей книги по электронной почте (Кнопка Office/Отправить/Электронная почта), в то время как возможности Visual Basic for Application предоставляют пользователям Excel и Outlook практически неограниченные возможности. Существует множество различных способов отправки электронной почты прямо из приложения Excel, как при помощи почтовых клиентов, таких как Outlook или The Bat, так и без их использования. В этой статье речь пойдет об отправке почты из Excel при помощи почтовой программы Outlook. 

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

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

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

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

kak otpravit pisma iz excel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13. вставлять в тело каждого письма диапазон ячеек рабочего листа Excel;

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

rassylka pisem iz Excel cherez Outlook

CompleteSolutionнадстройка для рассылки писем из Excel через Microsoft Outlook

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

1. При отправке сообщений при помощи макросов и надстроек может появляться окно подтверждения отправки для каждого письма (о том как избавиться от этого окна можно прочитать отдельно);

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

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

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

Как отправить письма с разных адресов?

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

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

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

kak dobavit neskolko individualnyh vlozhenij v pismo

Также можно комбинировать описанные выше способы отправки вложений, то есть уникальные файлы вложить при помощи поля "Вложения", а одинаковые для всех файлы вложить при помощи установки флажка в поле "Добавить файлы во вложение".

Вместо нескольких персональных вложений можно создавать индивидуальные архивы и отправлять их через поле "Вложения". Создание архивов можно выполнять программно, в автоматическом режиме.

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

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

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

2. Чтобы вставить картинку в тело письма, необходимо использовать html-файл. Картинку предварительно нужно выложить в сеть интернет, чтобы она была доступна получателям писем, поместив ее на сервер любого файлобменника, например на www.imageup.ru (либо другой сервис, предоставляющий прямые ссылки). В свою очередь в html-файле достаточно в нужном месте вставить ссылку на эту картинку, а также указать размеры картинки, при этом если ссылка указана правильно, получатель письма должен увидеть изображение в теле письма. Ссылка должна иметь вид:

<img src='http://macros-vba.ru/files/Logo.png' height=39 width=165>  если изображение размещено на сайте, или

<img src='http://www.imageup.ru/img67/2780968/123123.jpg' height=39 width=165> если изображение размещено на сервере файлобменника (адрес картинки сгенерирован файлобменником).

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

Как отправить письмом отформатированный текст?

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

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

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

html tegi v tekste pisem

 

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

Как вставить диапазон ячеек рабочего листа Excel в тело письма? 

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

kak vstavit diapazon yacheek v telo pisma

Каким образом можно письма сформировать, но не отправлять?

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