Массовая рассылка через excel

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

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

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

Итак, например, есть Excel таблица с данными клиентов (ФИО, компания, E-mail) и мы хотим отправить им персонализированное сообщение о предстоящих скидках.

Таблица Excel
Таблица Excel со списком клиентов

Колонка “Пол” потребуется для определения окончания “уважаемый” или “уважаемая”, ее я вычислил по формуле, если “Отчество” заканчивается на “ч” значит это мужчина, если нет — женщина:

=ЕСЛИ(ПРАВСИМВ(C2;1) = "ч"; "М";"Ж")

В новом документе Word наберём шаблон текста сообщения, которое будем отправлять. Вместо обращения, имени и названия компании оставим пока пустые места.

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

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

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

На перовом этапе выберем пункт Электронное сообщение (E-mail), так как хотим отправить наши сообщения по электронной почте.

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

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

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

Третий этап — выбор получателей. Так как список наших клиентов хранится в файле Excel, выбираем пункт Использование списка, жмем Обзор (Browse) и указываем наш файл.

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

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

Получатели слияния
Выбор получателей рассылки

Четвертый этап — создание сообщения. Тут можно вставить данные из нашего файла Excel в шаблон сообщения, который мы подготовили.

Создание сообщения
Создание сообщения

Вставим Фамилию, Имя, Отчество и название компании в наш шаблон, для этого: установим курсор в текст сообщения куда хотим вставить значение поля Excel, нажмем Другие элементы, в открывшемся окне выберем поле, которое хотим вставить, и так для всех полей.

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

Чтобы правильно указать обращение “уважаемый” для мужчин, и “уважаемая” для женщин создадим правило. Жмём кнопку Правила (Rules) на вкладке Рассылки (Mailings) и выберем пункт IF…THEN…ELSE.

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

В открывшемся окне укажем правило: если поле “Пол” равно “М” — вставить текст “уважаемый”, в противном случае — вставить текст “уважаемая”.

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

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

Готовый шаблон слияния
Готовый шаблон слияния

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

Просмотр сообщений
Предварительный просмотр сообщений

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

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

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

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

После нажатия на кнопку ОК, Word автоматически подключится к вашему почтовому клиенту Outlook, поместит все сообщения в папку «Исходящие», после чего письма отправятся получателям.

Если вы хотите проверить письма перед отправкой, есть небольшая хитрость, нужно предварительно перевести Outlook в автономный режим Файл — Автономный режим. Письма останутся в исходящих, пока вы не выйдете из автономного режима и при необходимости вы сможете проверить или внести в них изменения.

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

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

Почтовая рассылка

Постановка задачи

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

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

В конце все созданные сообщения надо:

  • либо отправить через Outlook каждому клиенту на его e-mail
  • либо распечатать для последующей отправки обычной почтой
  • либо закинуть в новый файл, где каждое письмо будет отдельным листом (разделом)

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

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

mailmerge1.gif

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

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

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

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

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

Создаем сообщение в Word и подключаем Excel

Открываем новый пустой документ в Microsoft Word и набираем туда текст нашего сообщения, оставляя в нем пустые места для будущей вставки имени клиента и его компании.  

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

mailmerge3.gif

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

Далее следует процесс из 6 этапов (переключение между ними — с помощью кнопок Вперед (Next) и Назад (Back) в правом нижнем углу в области задач).

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

На этом шаге пользователь должен выбрать тип тех документов, которые он хочет получить на выходе после слияния. Наш вариант — Письма (Letters), если мы хотим на выходе отправить созданные письма на принтер или Электронное сообщение (E-mail), если хотим разослать их по почте.

mailmerge4.gif

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

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

mailmerge5.gif

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

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

mailmerge6.gif

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

mailmerge7.gif

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

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

mailmerge10.gif

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

mailmerge12.gif

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

mail-merge-rules.png

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

mail-merge-if.png

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

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

mailmerge2.gif

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

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

mailmerge9.gif

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

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

mailmerge13.gif

Если вы на Шаге 1 выбирали опцию Электронные сообщения (E-mail), то на Шаге 6 вам предложат ввести тему для отправляемых сообщений и выбрать столбец таблицы, содержащий адреса электронной почты для рассылки. Затем все созданные сообщения будут помещены в папку Исходящие (Outbox) вашего почтового клиента Outlook.

Для проверки правильности созданных сообщений можно заранее временно отключить Outlook от сервера, чтобы письма сразу не ушли и вы могли их посмотреть и убедиться, что с ними все в порядке. Для этого в меню Microsoft Outlook можно выбрать команду Файл — Автономный режим или даже временно отключить сетевое подключение к вашему компьютеру. Письма временно «застрянут» в папке Исходящие (Outbox) и вы сможете их открыть и проверить перед отправкой.

Ссылки по теме

  • Отправка книги или листа Excel по электронной почте
  • Создание электронных писем с помощью функции ГИПЕРССЫЛКА (HYPERLINK)
  • Инструмент для массовой рассылки сообщений (в т.ч. с вложениями) по списку из надстройки PLEX

В этой инструкции описаны настройки рассылки писем, общие для всех способов отправки (Outlook, TheBAT!, сервис рассылки).

К общим настройкам рассылки относится:

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

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

исходная таблица Excel с адресами почты для рассылки писем

Теперь открываем настройки программы, нажав кнопку Настройки на панели инструментов, и начинаем настраивать рассылку.

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

включение опции рассылки почты в программе заполнения документов

2. Пролистываем форму настроек немного вниз, и задаём тему, текст и адрес email получателя писем: 

рассылка почты - настройки темы и текста писем

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

В поле «Получатель» необходимо сформировать корректный адрес электронной почты, на который будет отправлено письмо.

Адрес получателя можно ввести в полном и кратком формате:

  • {email адресата} — обычный адрес электронной почты (краткий формат)
    После подстановки значений из таблицы Excel, адрес будет иметь вид vasya@mail.ru
  • {Имя адресата} <{email адресата}> — полный формат адреса электронной почты (Имя Получателя <email>)
    После подстановки значений из таблицы Excel, адрес будет иметь вид  Василий Пупкин <vasya@mail.ru>

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

Текст и тема письма могут быть произвольными.

В них тоже можно использовать коды полей (заголовки столбцов в фигурных скобках), а также любые другие поддерживаемые программой поля (например, код {%longdate%}  для вставки текущей даты)

Вложения (прикрепление файлов к письму)

Если необходимо прикреплять файлы к создаваемым письмам, пролистываем настройки еще немного вниз, и видим галочки для включения 2 режимов добавления вложений:

рассылка писем - добавление вложений в рассылаемые электронные письма

Первая опция — «Прикреплять к письму сформированные файлы» — позволяет нам присоединять документы, заполненные (созданные) нашей программой.

К примеру, если в папке «Шаблоны» у нас находится несколько файлов — образцов документов, а прикрепить к письму необходимо только один файл, — то можно воспользоваться текстовым полем для указания маски файла.

(если в папке «Шаблоны» находятся файлы с именами Анкета.doc, Купон участника.doc и Расчёт скидки.xls, то при маске *купон* к письмам будут прикреплены только файлы, созданные на базе шаблона Купон участника.doc)

Вторая опция — «Прикреплять к письму все файлы из заданной папки» — даёт нам возможность добавлять во вложение к письму неизменяемые («статические») файлы.

Количество «статических» файлов неограничено — сколько их будет в папке, столько и будет прикреплено к каждому письму.

Внимание: Если вы случайно укажете в качестве этой папки каталог с огромным количеством файлов, то почтовая программа может зависнуть (при попытке прикрепить сотни мегабайтов во вложение к письму)

PS: В поиске файлов, просматривается только верхний уровень заданной папки, — файлы из подпапок не прикрепляются к письмам)

Когда мы всё настроили (и не забыли нажать кнопку «Сохранить изменения»), можно запускать формирование документов.

Результат создания писем — на скриншоте:

автоматизированная рассылка почты - созданные письма в программе TheBAT

word слияние документовПривет! Сегодня решил осветить один из тех инструментов, а именно массовую рассылку (слияние) документов. Этот инструмент относится к тем, что:

  • легки в использовании
  • малоизвестны
  • приносят охрененную пользу :)

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

Итак, начинаем.

Применение инструмента

Представим ситуацию. Вы начальник отдела кадров, в котором утвержденный проект трудового договора. Каждый сотрудник, включая гендира, подписывает ежегодно один и тот же документ, который каждый раз отличается только в деталях, индивидуально присущих каждому человеку — ФИО, должность, зарплата, домашний адрес и т.д.

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

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

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

Что необходимо

В первую очередь нам нужны:

  • Документ-шаблон в Word’е
  • Список адресатов с их характеристиками (адресами, полом, обращением…)

У меня для примера простенькое письмецо:

Массовая рассылка excel

Серым отмечены блоки, индивидуальные для каждого адресата. Как видите, нужно подготовить обращение (Уважаемый/Уважаемая), нужные поля в родительном падеже (Иванову). Соответственно, на каждый такой блок я готовлю табличку в Excel:

Слияние WOrd-Excel

Делаем слияние

Слияние — вот  как называется этот инструмент. Для этого открываем наш шаблон в Word и нажимаем на вкладке «Рассылки» — «Начать слияние» — «Пошаговый мастер слияния».

Массовая рассылка

Далее появится справа панель, где поэтапно надо выбирать нужный вариант.

  1. Выбор типа документа. Я выбрал «Письма»
  2. Открытие документа. Я уже открыл, поэтому «Текущий документ».
  3. Выбор получателей. У меня уже готовый список, поэтому «Использование списка» и Обзор. Там выбираю свой файл.
  4. Создание письма. Мне много блоков надо ввести, поэтому поочередно выбираю нужное место в письме и через «Другие элементы» вставляю нужный мне элемент.
  5. Просмотр писем. Здесь можно прокрутить ваши записи, т.е. посмотреть все документы, нажимая на соответствующие стрелочки.word excel слияние
  6. Завершение слияния. Тут есть два варианта — «Печать» — можете распечатать готовые документы, при этом выбрав только тех, кто нужен. И другой вариант «Изменить часть писем» — здесь каждый документ формируется друг за другом. Это нужно для того, чтобы внести какие-то редкие изменения, которые просто нецелесообразно втыкать в таблицу. При этом также можно выбрать какие письма вам выгрузятся в Word, а какие не нужны.

Сохраните документ. Потом при открытии вас будут спрашивать

массовая рассылка excel word

Отвечаете «Да» и можете просматривать шаблон с текущими адресами прямо на панели, слияние делать больше не придется.

Очевидный плюс этого инструмента — никакой рутины. Подготовка документа будет сводиться лишь к открытию, выбору адресатов и распечатке (отправке).

Обычно я делаю быструю пояснялку для Youtube, но этот инструмент уже освещен в моем бесплатном часовом видеокурсе «Топ-10 инструментов Excel». Все мои подписчики его получили, если же его у вас нет, можете его получить, введя в поле в правой части свои контакты и после подтверждающего письма (где надо кликнуть на ссылке) вам придет письмо со ссылкой на видеокурс. Там вы заодно познакомитесь еще с 9ю инструментами, которые приносят огромную пользу в работе всем пользователям Excel.

Эксель Практик
«Глаза боятся, а руки делают»

P.S. Понравилась статья? Подпишитесь на рассылку в правой части страницы (Бесплатный курс «Топ-10 инструментов Excel») и будьте в курсе новых событий.

Содержание

  1. Как отправить письмо из Excel макросом VBA? Программная рассылка писем из Excel через Outlook
  2. Макрос для отправки электронного письма
  3. Надстройка для рассылки электронной почты
  4. VBA макрос для рассылки писем из Excel через Outlook
  5. Автоматизация работы Microsoft Outlook с помощью VBA на примере создания массовой рассылки писем
  6. Как отправить письмо из Excel?
  7. Поиск по меткам

Как отправить письмо из Excel макросом VBA? Программная рассылка писем из Excel через Outlook

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

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

Макрос для отправки электронного письма

Этот же макрос будет работать и при отправке письма из Word, а вот аналогичный макрос для MS Outlook.

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

Надстройка для рассылки электронной почты

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

Источник

VBA макрос для рассылки писем из Excel через Outlook

Возникла задача организации рассылки писем по списку email пользователей в Excel. Причем в каждом письме нужно указывать некоторые данные, индивидуальные для каждого пользователя. Я попытался реализовать этот функционал с помощью vba макроса в Excel, который отправляет почту через настроенный на компьютере почтовый профиль Outlook. Ниже мое решение.

Допустим, у нас есть Excel файл, содержащий следующие столбцы:

Email пользователя | ФИО | Время последней смены пароля | Статус учетной записи

В рамках моей задачи нужно каждому пользователю из списка отправить письмо вида:

Создадим новый макрос: вкладка Вид -> Макросы. Укажите имя макроса send_email и нажмите кнопку Создать:

В открывшемся редакторе VBA вставьте следующий код (я снабдил его всеми необходимыми комментариями). Для автоматизации отправки писем я воспользуюсь функцией CreateObject(«Outlook.Application»), позволяющей создать и использовать в скрипте объект приложения Outlook.

Sub send_email()
Dim olApp As Object
Dim olMailItm As Object
Dim iCounter As Integer
Dim Dest As Variant
Dim SDest As String
‘ тема письма
strSubj = «Статус учетной записи в домене winitpro.ru»
On Error GoTo dbg
‘ создаем новый объект типа Outlook
Set olApp = CreateObject(«Outlook.Application»)
For iCounter = 1 To WorksheetFunction.CountA(Columns(1))
‘ создаем новый элемент (письмо) в Outlook
Set olMailItm = olApp.CreateItem(0)
strBody = «»
useremail = Cells(iCounter, 1).Value
FullUsername = Cells(iCounter, 2).Value
Status = Cells(iCounter, 4).Value
pwdchange = Cells(iCounter, 3).Value
‘формируем тело письма
strBody = «Уважаемый » & FullUsername & vbCrLf
strBody = strBody & «Ваша учетная запись в домене winitpro.ru » & Status & vbCrLf
strBody = strBody & «Время последней смены пароля: » & pwdchange & vbCrLf
olMailItm.To = useremail
olMailItm.Subject = strSubj
olMailItm.BodyFormat = 1
‘ 1 — текстовый формат письма, 2 — HTML формат
olMailItm.Body = strBody
olMailItm.Send
‘следующую строку можно использовать для отладки текста письма, закомментировав предыдущую
‘MsgBox strBody
Set olMailItm = Nothing
Next iCounter
Set olApp = Nothing
dbg:
‘отображение ошибок, если есть
If Err.Description <> «» Then MsgBox Err.Description
End Sub

Данный Excel файл нужно сохранить с расширением xlsm (формат книги Excel с поддержкой макросов). Для запуска рассылки выберите созданную процедуру (макрос) и нажмите кнопку выполнить.

Макрос последовательно переберет все строки на листе Excel, сформирует и отправит по одному письму на каждый Email из списка.

Источник

Автоматизация работы Microsoft Outlook с помощью VBA на примере создания массовой рассылки писем

В этой статье я бы хотел поделиться опытом автоматизации офисной, рутинной задачи по отправке сообщений группе клиентов.
Итак, собственно, в чем вопрос: необходимо отправить электронные письма с вложением нескольким десяткам клиентам. При этом в поле получателя должен быть только один адрес, т.е. клиенты друг о друге не должны знать. Кроме того, не допускается установка дополнительного программного обеспечения, типа MaxBulk Mailer и ему подобного. В нашем распоряжении есть только Microsoft Office, а в данном конкретном случае — Microsoft Office 2013.

Я описываю, на мой взгляд, самый вариант – без применения шаблонов, черновиков и форматирования. Для наших целей потребуется Outlook (переходим в редактор VBA и добавляем модуль, еще включаем «Microsoft Excel 15.0 Object Library» в Tools > References), текстовый файл со списком адресатов по принципу «одна строка-один адрес», текстовый файл с телом письма и файлы, которые будем отправлять в качестве вложения.
Общий алгоритм таков: указываем данные для полей и генерируем письма, перебирая в цикле получателей.
Сразу отмечу, что данный пример не является неким доведенным до совершенства кодом, работающим с максимальной эффективностью при минимальных размерах. Но он работает и справляется с заявленным функционалом. Собственно, мне было просто лень отправлять вручную несколько десятков писем и я написал эту программу, а потом решил ей поделиться. Если кому-то интересно, тот может улучшать код сколько душе угодно.
VBA, по умолчанию, не требует четкого объявления переменных и их типов. В принципе, можно вообще обойтись без этого. Поэтому некоторые переменные в «эпизодических ролях» не описаны в конструкции с Dim.
Итак, сначала запрашиваем тему письма с реализацией проверки на отмену действия.

Теперь очередь за файлами с адресами и текстом письма. Вот здесь возник нюанс. Как вызвать диалог выбора файла? О жестком прописывании пути я не хочу и думать. Так что приходится что-то придумывать. Многими используемый вариант с Application.GetOpenFilename не пройдет, так как в Outlook нет такого метода. Использовать API пробовал. Вариант с «Private Declare PtrSafe Function GetOpenFileName Lib „comdlg32.dll“…» не сработал (PtrSafe из-за того, что система Win7, х64). Ошибок не выдавал, но при вызове ничего не появлялось. Решения в Интернете не нашел. Если кто подскажет решение – буду благодарен. Таким образом, пришлось пойти в обход с применением объекта Excel.Application.

Каждый раз я создавал и удалял объект fd из-за того, что это сделать проще, чем заниматься его чисткой перед последующим вызовом.
Для получения данных из текстовых файлов пришлось использовать пару дополнительных функций. Вызываются они таким образом:

С целью отладки я вставил такой код
‘Контроль за данными

Как видно, он сейчас закомментирован, но позволяет понять где что лежит.
Теперь небольшая по размеру, но самая важная часть – генерация писем.

При желании, метод .Send можно заменить на .Save. Тогда созданные письма окажутся в папке «Черновики».

Источник

Как отправить письмо из Excel?

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

Отправить письмо из Excel можно несколькими способами, в том числе и через написание кода в VBA.

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

    Excel 2003 : Файл (File)Отправить (Send To)Сообщение (Mail Recipient)
    и выбрать способ отправки:
  • Сообщение (Mail Recipient) — создается сообщение в программе по умолчанию для отправки электронных писем
  • Сообщение (для ознакомления) (Mail Recipient for Review) — вполне интересный вариант. Перед отправкой для книги включается отслеживание изменений(Сервис (Tools)Исправления (Track changes) ). Можно воспользоваться этим методом, чтобы отправить получателю для внесения им изменений, а после отследить их(СервисИсправленияВыделить исправления (Highlight changes) )
  • Сообщение (как вложение) (Mail Recipient as attachment) — создается сообщение в программе по умолчанию для отправки электронных писем, в которое вложением вкладывается активная книга целиком
  • По маршруту (Routing Recipient) — практически тоже самое, что и Сообщение (для ознакомления) (Mail Recipient for Review) с той разницей, что письмо с вложением пересылается как эстафета от одного получателя к другому. После этого так же можно отследить изменения, внесенные каждым пользователем
  • Папка Exchange (Exchange folder) — активная книга автоматически сохраняется в заданную папку общего сервера Microsoft Exchange. Доступ к этой книге будет открыт всем участникам рабочей группы
  • Факс пользователю службы факсов интернета (Fax) — отправляет содержимое книги по факсу указанным получателям. Для использования данной возможности должна быть установлена служба факсов
  • Excel 2007 : Кнопка ОфисОтправить (Send)Сообщение (E-mail)
  • Excel 2010 : Файл (File)Сохранить и отправить (Save & Send)Отправить (Send Using E-mail)

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

    • Как вложение (Send as attachment) — будет автоматически запущена почтовая программа по умолчанию и создано новое письмо, в которое уже будет вложен файл книги, из которой была вызвана команда
    • Как ссылку (Send link) — доступно, только если файл находится на сетевом ресурсе. После нажатия будет создано новое письмо в почтовой программе по умолчанию, в тело которого будет вставлена ссылка на книгу
    • Как PDF (Send as PDF) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
    • Как XPS (Send as XPS) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
    • Отправить как факс через интернет (Send as internet fax) — если у вас на ПК установлена служба работы с факсами и есть возможность отправлять и получать факсы на ПК — то данная команда отправит данные активного листа файла как факс
  • Простая отправка книги через VBA без Outlook
    Описанные выше действия можно выполнить так же кодом(так же будет использоваться программа, установленная по умолчанию для отправки писем):

    Sub SendMailStandart() ActiveWorkbook.SendMail «mail1@excel-vba.ru», «Тема письма» End Sub

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

    Sub SendMailStandart_MassRecipients() ActiveWorkbook.SendMail Array(«mail1@excel-vba.ru», «mail2@excel-vba.ru»), «Тема письма» End Sub

    Внутри скобок Array можно в кавычках через запятую указать достаточное количество получателей.
    Данный метод универсален, но работает только с активным файлом. Нельзя выбрать файл с диска и отправить как вложение. Кроме того, нельзя отправить более одного файла разом и указать текст письма.
    Поэтому очень часто на форумах возникает вопрос как отправить письмо из Excel кодом с указанием темы, текста и вложения.
    Есть несколько вариантов:

    Отправить письмо через Outlook кодом VBA

    Option Explicit Sub Send_Mail() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘раскомментировать строку, если в Outlook несколько учетных записей и нужно подключиться к конкретной(только если Outlook закрыть) ‘ [параметры]: Session.Logon «имя профиля»,»пароль»,[показывать окно выбора профиля], [запускать в новой сессии] ‘objOutlookApp.Session.Logon «profile»,»1234″,False, True Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘если не получилось создать приложение или экземпляр сообщения — выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому(можно заменить значением из ячейки — sTo = Range(«A1»).Value) sSubject = «Автоотправка» ‘Тема письма(можно заменить значением из ячейки — sSubject = Range(«A2»).Value) sBody = «Привет от Excel-VBA» ‘Текст письма(можно заменить значением из ячейки — sBody = Range(«A3»).Value) sAttachment = «C:TempКнига1.xls» ‘Вложение(полный путь к файлу. Можно заменить значением из ячейки — sAttachment = Range(«A4»).Value) ‘создаем сообщение With objMail .To = sTo ‘адрес получателя .CC = «» ‘адрес для копии .BCC = «» ‘адрес для скрытой копии .Subject = sSubject ‘тема сообщения .Body = sBody ‘текст сообщения ‘.HTMLBody = sBody ‘если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) ‘добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> «» Then If Dir(sAttachment, 16) <> «» Then .Attachments.Add sAttachment ‘просто вложение ‘чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

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

    .Attachments.Add «C:TempКнига1.xlsx» .Attachments.Add «C:TempКнига2.xlsx» .Attachments.Add «C:DocumentsReport.rar»

    objOutlookApp.Session.Logon «user»,»1234″,False, True

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

    Важно помнить: пути для файлов в качестве вложений должны содержать полный путь до файла, включая его имя и расширение: C:DocumentsReport.rar . При указании только имени Report.rar или пути без расширения ( C:DocumentsReport ) ошибки не будет, но вложения не будут помещены в сообщения и адресату отправится письмо без вложений.

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

    Отправить письма через Outlook с картинкой в теле письма

    Sub Send_Mail_With_Picture() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String, sPicture As String Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘objOutlookApp.Session.Logon «user»,»1234″,False, True Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘если не получилось создать приложение или экземпляр сообщения — выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому(можно заменить значением из ячейки — sTo = Range(«A1»).Value) sSubject = «Автоотправка» ‘Тема письма(можно заменить значением из ячейки — sSubject = Range(«A2»).Value) sBody = «Привет от Excel-VBA» ‘Текст письма(можно заменить значением из ячейки — sBody = Range(«A3»).Value) sAttachment = «C:TempКнига1.xls» ‘Вложение(полный путь к файлу. Можно заменить значением из ячейки — sAttachment = Range(«A4»).Value) sPicture = «C:ДокументыИзображенияExcel_vba_ru.png» ‘если надо вставить в письмо картинку ‘создаем сообщение With objMail .To = sTo ‘адрес получателя .CC = «» ‘адрес для копии .BCC = «» ‘адрес для скрытой копии .Subject = sSubject ‘тема сообщения ‘ .Body = sBody ‘текст сообщения без форматирования .HTMLBody = sBody ‘если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) ‘чтобы картинка была видна внутри сообщения — надо её сначала добавить как вложение ‘если картинка по указанному пути существует(dir проверяет это) If Dir(sPicture, 16) <> «» Then If Dir(sPicture, 16) <> «» Then .Attachments.Add sPicture ‘теперь вставляем код картинки .HTMLBody = .HTMLBody & «

    Картинка в письме

    » & » » ‘ & » height=240 width=180>» ‘» height=240 width=180>» — если нужны размеры картинки End If End If ‘добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> «» Then If Dir(sAttachment, 16) <> «» Then .Attachments.Add sAttachment ‘просто вложение End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

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

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

    » » ‘height — высота ‘width — ширина

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

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

    Sub Send_Mail_Mass() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Dim lr As Long, lLastR As Long Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘произошла ошибка создания объекта — выход If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub ‘objOutlookApp.Session.Logon «user»,»1234″,False, True lLastR = Cells(Rows.Count, 1).End(xlUp).Row ‘цикл от второй строки(начало данных с адресами) до последней ячейки таблицы For lr = 2 To lLastR Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘создаем сообщение With objMail .to = Cells(lr, 1).Value ‘адрес получателя .Subject = Cells(lr, 2).Value ‘тема сообщения .Body = Cells(lr, 3).Value ‘текст сообщения ‘вложение(если ячейка не пустая и путь к файлу указан правильно) If Cells(lr, 4).Value <> «» Then If Dir(Cells(lr, 4).Value, 16) <> «» Then .Attachments.Add Cells(lr, 4).Value End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Next lr Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Скачать пример массовой рассылки:

    Массовая рассылка писем через Outlook.xls (60,0 KiB, 6 942 скачиваний)

    При использовании этих кодов есть один недостаток: очень часто при программной отправке писем Outlook выдает окно с запросом подтверждения отправки. Сообщение может быть трех видов:

    • Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается отправить сообщение от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается выполнить действие, которое может привести к отправке сообщения от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы

    Чтобы при программной отправке данных сообщений не появлялось, в версиях Outlook, начиная с 2007 можно отключить его настройками безопасности:

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

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

    Важно: сам код рассылки не имеет никаких ограничений по числу отправляемых сообщений. Но различные почтовые серверы могут устанавливать свои лимиты. Например, Gmail и Yandex могут заблокировать email, с которого ведется рассылка, если общее количество отправленных сообщений превышает 100 штук в день. Поэтому производить важные массовые рассылки рекомендуется с собственного SMTP-сервера.

    Отправка сообщения без использования Outlook — используем CDO

    Option Explicit Sub Send_Mail() Const CDO_Cnf = «http://schemas.microsoft.com/cdo/configuration/» Dim oCDOCnf As Object, oCDOMsg As Object Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String On Error Resume Next ‘sFrom – как правило совпадает с sUsername SMTPserver = «smtp.yandex.ru» ‘ SMTPServer: для Mail.ru «smtp.mail.ru»; для Яндекса «smtp.yandex.ru»; для Рамблера «mail.rambler.ru» sUsername = «YourMail@mail.ru» ‘ Учетная запись на сервере sPass = «1234» ‘ Пароль к почтовому аккаунту If Len(SMTPserver) = 0 Then MsgBox «Не указан SMTP сервер», vbInformation, «www.Excel-VBA.ru»: Exit Sub If Len(sUsername) = 0 Then MsgBox «Не указана учетная запись», vbInformation, «www.Excel-VBA.ru»: Exit Sub If Len(sPass) = 0 Then MsgBox «Не указан пароль», vbInformation, «www.Excel-VBA.ru»: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому sFrom = «YourMail@yandex.ru» ‘От кого sSubject = «Автоотправка» ‘Тема письма sBody = «Привет от Excel-VBA» ‘Текст письма sAttachment = «C:/Temp/Книга1.xls» ‘Вложение(полный путь к файлу) ‘Назначаем конфигурацию CDO Set oCDOCnf = CreateObject(«CDO.Configuration») With oCDOCnf.Fields .Item(CDO_Cnf & «sendusing») = 2 .Item(CDO_Cnf & «smtpauthenticate») = 1 .Item(CDO_Cnf & «smtpserver») = SMTPserver ‘если необходимо указать SSL ‘.Item(CDO_Cnf & «smtpserverport») = 465 ‘для Яндекса и Gmail 465 ‘.Item(CDO_Cnf & «smtpusessl») = True ‘===================================== .Item(CDO_Cnf & «sendusername») = sUsername .Item(CDO_Cnf & «sendpassword») = sPass .Update End With ‘Создаем сообщение Set oCDOMsg = CreateObject(«CDO.Message») With oCDOMsg Set .Configuration = oCDOCnf .BodyPart.Charset = «koi8-r» .From = sFrom .To = sTo .Subject = sSubject .TextBody = sBody ‘Проверка наличия файла по указанному пути If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> «» Then .AddAttachment sAttachment End If End If .Send End With Select Case Err.Number Case -2147220973: sMsg = «Нет доступа к Интернет» Case -2147220975: sMsg = «Отказ сервера SMTP» Case 0: sMsg = «Письмо отправлено» Case Else: sMsg = «Ошибка номер: » & Err.Number & vbNewline & «Описание ошибки: » & Err.Description End Select MsgBox sMsg, vbInformation, «www.Excel-VBA.ru» Set oCDOMsg = Nothing: Set oCDOCnf = Nothing End Sub

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

    • SMTPserver — Каждый из приведенных выше сервисов имеет свой сервер для отправки сообщений(его можно посмотреть на сайте сервиса). В комментариях к коду я написал три самых распространенных, но если Вы используете какой-то другой, то просто посмотрите на его сайте настройки для Outlook и отыщите тот параметр, который отвечает за SMTPserver .
    • sUsername — это Ваш логин для входа в почтовый сервис. Думаю тут все понятно. Единственный момент — обязательно указывать e-mail именно в полном виде — YourMail@mail.ru , даже если для входа на сервис через браузер Вы используете только первую часть записи(YourMail). Если необходимо подставить в качестве отправителя псевдоним(чтобы получатель видел не просто адрес, а ассоциированное имя учетной записи), то указывать надо именно в формате псевдонима:

    Excel-vba — и есть псевдоним. А сам адрес должен указываться между знаками <>

  • sPass — пароль доступа к Вашей учетной записи, который Вы используете для входа в почту.
  • Это основные моменты. Поля Кому(sTo) , От кого(sFrom) , Тема письма(sSubject) , Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.
    Так же стоит учесть пару важных моментов: если на почтовом сервере используется шифрование, то необходимо раскомментировать(убрать знак апострофа) эти строки:

    .Item(CDO_Cnf & «smtpserverport») = 465 .Item(CDO_Cnf & «smtpusessl»)

    Иначе вместо отправки письма получим ошибку «Отказ сервера SMTP». Серверы Яндекс и Gmail требуют шифрования, а значит для них указанные выше строки должны быть активированы(т.е. раскомментированы). Номер порта указывается в описании настроек сервера и для каждого сервера может быть своим, поэтому если с указанием приведенного в коде порта( «smtpserverport» ) письмо не отправляется — необходимо зайти в настройки почтового сервера и убедиться в правильности указания номера порта.

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

    Массовая рассылка писем через CDO — без Outlook.xls (64,0 KiB, 7 526 скачиваний)

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

    With oCDOMsg Set .Configuration = oCDOCnf .From = sFrom .BodyPart.Charset = «windows-1251» .To = sTo .Subject = sSubject Set objbp = oCDOMsg.AddRelatedBodyPart(«C:ДокументыИзображения11.jpg», «11.jpg», 1) objbp.Fields.Item(«urn:schemas:mailheader:Content-ID») = » » objbp.Fields.Update If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> «» Then .AddAttachment sAttachment End If End If ‘для вложения картинки письмо лучше формировать в формате HTML .HTMLBody = »
    » & sBody .Send End With

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

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

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

    Статья помогла? Поделись ссылкой с друзьями!

    Поиск по меткам

    Большое спасибо! Лучшего описания не видел. Использовал Ваш код CDO отсылки почты в MS Access — работает прекрасно.

    Здравствуйте, Дмитрий. Огромное спасибо за данный файл !
    Скачал Массовая рассылка писем через Outlook.xls
    Подскажите пожалуйста, как при отправке убрать окно предварительного просмотра сообщения в аутлук ?
    в коде нашёл строку с комментарием
    .Display = ‘, если необходимо просмотреть сообщение, а не отправлять без просмотра
    а что туда вписывать, не пойму
    Пробовал вообще её убирать или дописывать =false
    не помогает

    Андрей, вместо .Display надо просто записать .Send

    Огромное спасибо ! Всё работает

    для отправки сообщения использовал код «ОТПРАВИТЬ ПИСЬМО ЧЕРЕЗ OUTLOOK КОДОМ VBA»
    проблема в том, что в ячейку (откуда тянутся пути файлов) может быть вписано несколько файлов (до 20-30)

    значение ячейки имеет вот такой вид (указывается в одной строке):
    «\fuib.comkhoDOCUMENTYOOKUTUКулиничев! открытие счетовe-tokenписьмо на заказ.docx»; «\fuib.comkhoDOCUMENTYOOKUTUКулиничев! открытие счетовe-tokenакт.doc»; «\fuib.comkhoDOCUMENTYOOKUTUКулиничев! открытие счетовтарифыРаздел 1. Расчетно-кассовое обслуживание.doc»

    при это отправляется только первый файл

    помогите, пожалуйста, чтобы добавляло в сообщение Outlook все файлы, адреса, которых указаны в ячейке

    Добрый день, Дмитрий. А можно ли так сделать, чтоб из выбранного списка (где у Вас имя, почта) добавить еще один столбец с датой (будущей). Если текущая дата Дмитрий :

    Александр, сделать можно. Добавляйте и в цикле проверяйте:

    For lr = 2 To lLastR If Date «» Then If Dir(Cells(lr, 4).Value, 16) <> «» Then .Attachments.Add Cells(lr, 4).Value End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With End If Next lr

    Дмитрий, добрый день! Прошу подсказать, каким кодом необходимо воспользоваться, чтобы в тело письма вставить заполненную таблицу. Заранее спасибо за ответ!

    Николай, для этого достаточно было посмотреть ссылки внизу статьи 🙂 Среди них есть и такая: Вставить в письмо Outlook таблицу Excel с форматированием

    Дмитрий, добрый день!
    Скачал и протестировал Ваш вариант с CDO. Все прекрасно работает, когда кнопка запуска находится на странице с адресами, как в Вашем примере. Но мне нужно запускать этот процесс с кнопки на форме без открытия этой страницы. А вот это никак не получается реализовать. Буду благодарен, если подскадете способ, если такая возможность вообще есть.
    С уважением.

    RICK78, советую ознакомиться с этой статьей: Как обратиться к диапазону из VBA . Если вкратце:

    Лист1 — имя листа, из которого брать значения ячеек.

    Дмитрий, огромное спасибо за быстрый и понятный ответ. Все получилось!
    С уважением,

    Источник

    Хитрости »

    1 Май 2011              386289 просмотров


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

    • Отправка через меню Excel
    • Простая отправка книги через VBA без Outlook
    • Отправка писем через VBA при помощи Outlook(с вложениями)
    • Отправить письма через Outlook с картинкой в теле письма
    • Массовая рассылка писем по адресам при помощи Outlook
    • Отправка сообщения без использования Outlook — используем CDO

    Отправить письмо из Excel можно несколькими способами, в том числе и через написание кода в VBA.

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

    • Excel 2003: Файл(File)Отправить(Send To)Сообщение(Mail Recipient)
      и выбрать способ отправки:

      • Сообщение(Mail Recipient) — создается сообщение в программе по умолчанию для отправки электронных писем
      • Сообщение (для ознакомления) (Mail Recipient for Review) — вполне интересный вариант. Перед отправкой для книги включается отслеживание изменений(Сервис(Tools)Исправления(Track changes)). Можно воспользоваться этим методом, чтобы отправить получателю для внесения им изменений, а после отследить их(СервисИсправленияВыделить исправления(Highlight changes))
      • Сообщение (как вложение)(Mail Recipient as attachment) — создается сообщение в программе по умолчанию для отправки электронных писем, в которое вложением вкладывается активная книга целиком
      • По маршруту(Routing Recipient) — практически тоже самое, что и Сообщение (для ознакомления) (Mail Recipient for Review) с той разницей, что письмо с вложением пересылается как эстафета от одного получателя к другому. После этого так же можно отследить изменения, внесенные каждым пользователем
      • Папка Exchange(Exchange folder) — активная книга автоматически сохраняется в заданную папку общего сервера Microsoft Exchange. Доступ к этой книге будет открыт всем участникам рабочей группы
      • Факс пользователю службы факсов интернета(Fax) — отправляет содержимое книги по факсу указанным получателям. Для использования данной возможности должна быть установлена служба факсов
    • Excel 2007: Кнопка ОфисОтправить(Send)Сообщение(E-mail)
    • Excel 2010: Файл(File)Сохранить и отправить(Save & Send)Отправить(Send Using E-mail)
    • Далее выбирается способ отправки:

      • Как вложение(Send as attachment) — будет автоматически запущена почтовая программа по умолчанию и создано новое письмо, в которое уже будет вложен файл книги, из которой была вызвана команда
      • Как ссылку(Send link) — доступно, только если файл находится на сетевом ресурсе. После нажатия будет создано новое письмо в почтовой программе по умолчанию, в тело которого будет вставлена ссылка на книгу
      • Как PDF(Send as PDF) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
      • Как XPS(Send as XPS) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
      • Отправить как факс через интернет(Send as internet fax) — если у вас на ПК установлена служба работы с факсами и есть возможность отправлять и получать факсы на ПК — то данная команда отправит данные активного листа файла как факс

    Простая отправка книги через VBA без Outlook

    Описанные выше действия можно выполнить так же кодом(так же будет использоваться программа, установленная по умолчанию для отправки писем):

    Sub SendMailStandart()
        ActiveWorkbook.SendMail "mail1@excel-vba.ru", "Тема письма"
    End Sub

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

    Sub SendMailStandart_MassRecipients()
        ActiveWorkbook.SendMail Array("mail1@excel-vba.ru", "mail2@excel-vba.ru"), "Тема письма"
    End Sub

    Внутри скобок Array можно в кавычках через запятую указать достаточное количество получателей.
    Данный метод универсален, но работает только с активным файлом. Нельзя выбрать файл с диска и отправить как вложение. Кроме того, нельзя отправить более одного файла разом и указать текст письма.
    Поэтому очень часто на форумах возникает вопрос как отправить письмо из Excel кодом с указанием темы, текста и вложения.
    Есть несколько вариантов:


    Отправить письмо через Outlook кодом VBA

    Option Explicit
     
    Sub Send_Mail()
        Dim objOutlookApp As Object, objMail As Object
        Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
     
        Application.ScreenUpdating = False
        On Error Resume Next
        'пробуем подключиться к Outlook, если он уже открыт
        Set objOutlookApp = GetObject(, "Outlook.Application")
        Err.Clear 'Outlook закрыт, очищаем ошибку
        If objOutlookApp Is Nothing Then
            Set objOutlookApp = CreateObject("Outlook.Application")
        End If
        'раскомментировать строку, если в Outlook несколько учетных записей и нужно подключиться к конкретной(только если Outlook закрыть)
        '   [параметры]: Session.Logon "имя профиля","пароль",[показывать окно выбора профиля], [запускать в новой сессии]
        'objOutlookApp.Session.Logon "profile","1234",False, True
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'если не получилось создать приложение или экземпляр сообщения - выходим
        If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
     
        sTo = "AddressTo@mail.ru"    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
        sSubject = "Автоотправка"    'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
        sBody = "Привет от Excel-VBA"    'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
        sAttachment = "C:TempКнига1.xls"    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
     
        'создаем сообщение
        With objMail
            .To = sTo 'адрес получателя
            .CC = "" 'адрес для копии
            .BCC = "" 'адрес для скрытой копии
            .Subject = sSubject 'тема сообщения
            .Body = sBody 'текст сообщения
            '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
            'добавляем вложение, если файл по указанному пути существует(dir проверяет это)
            If sAttachment <> "" Then
                If Dir(sAttachment, 16) <> "" Then
                    .Attachments.Add sAttachment 'просто вложение
                    'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
                End If
            End If
            .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
     
        Set objOutlookApp = Nothing: Set objMail = Nothing
        Application.ScreenUpdating = True
    End Sub

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

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

    Строка:

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

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

    objOutlookApp.Session.Logon

    Важно помнить: пути для файлов в качестве вложений должны содержать полный путь до файла, включая его имя и расширение: C:DocumentsReport.rar. При указании только имени Report.rar или пути без расширения (C:DocumentsReport) ошибки не будет, но вложения не будут помещены в сообщения и адресату отправится письмо без вложений.

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


     
    Отправить письма через Outlook с картинкой в теле письма

    Sub Send_Mail_With_Picture()
        Dim objOutlookApp As Object, objMail As Object
        Dim sTo As String, sSubject As String, sBody As String, sAttachment As String, sPicture As String
     
        Application.ScreenUpdating = False
        On Error Resume Next
        'пробуем подключиться к Outlook, если он уже открыт
        Set objOutlookApp = GetObject(, "Outlook.Application")
        Err.Clear 'Outlook закрыт, очищаем ошибку
        If objOutlookApp Is Nothing Then
            Set objOutlookApp = CreateObject("Outlook.Application")
        End If
        'objOutlookApp.Session.Logon "user","1234",False, True
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'если не получилось создать приложение или экземпляр сообщения - выходим
        If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
     
        sTo = "AddressTo@mail.ru"    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
        sSubject = "Автоотправка"    'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
        sBody = "Привет от Excel-VBA"    'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
        sAttachment = "C:TempКнига1.xls"    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
        sPicture = "C:ДокументыИзображенияExcel_vba_ru.png" 'если надо вставить в письмо картинку
        'создаем сообщение
        With objMail
            .To = sTo 'адрес получателя
            .CC = "" 'адрес для копии
            .BCC = "" 'адрес для скрытой копии
            .Subject = sSubject 'тема сообщения
    '        .Body = sBody 'текст сообщения без форматирования
            .HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
            'чтобы картинка была видна внутри сообщения - надо её сначала добавить как вложение
            'если картинка по указанному пути существует(dir проверяет это)
            If Dir(sPicture, 16) <> "" Then
                If Dir(sPicture, 16) <> "" Then
                    .Attachments.Add sPicture
                    'теперь вставляем код картинки
                    .HTMLBody = .HTMLBody & "<p>Картинка в письме</p>" & "<img src=cid:" & Replace(Dir(sPicture, 16), " ", "%20") & ">" ' & " height=240 width=180>"
                '" height=240 width=180>" - если нужны размеры картинки
                End If
            End If
            'добавляем вложение, если файл по указанному пути существует(dir проверяет это)
            If sAttachment <> "" Then        
                If Dir(sAttachment, 16) <> "" Then
                    .Attachments.Add sAttachment 'просто вложение
                End If
            End If
            .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
     
        Set objOutlookApp = Nothing: Set objMail = Nothing
        Application.ScreenUpdating = True
    End Sub

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

    "<img src=cid:" & Replace(Dir(sPicture, 16), " ", "%20") & ">"

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

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

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

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


     
    Массовая рассылка писем по адресам

    Так же можно сделать нечто вроде рассылки, организовав цикл по ячейкам. Предположим, что в столбце А записаны адреса, в столбце В тема, в столбце С текст сообщения, в столбце D путь к вложениям:
    Таблица адресов
    Тогда можно применить следующий код:

    Sub Send_Mail_Mass()
        Dim objOutlookApp As Object, objMail As Object
        Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
        Dim lr As Long, lLastR As Long
     
        Application.ScreenUpdating = False
        On Error Resume Next
        'пробуем подключиться к Outlook, если он уже открыт
        Set objOutlookApp = GetObject(, "Outlook.Application")
        Err.Clear 'Outlook закрыт, очищаем ошибку
        If objOutlookApp Is Nothing Then
            Set objOutlookApp = CreateObject("Outlook.Application")
        End If
        'произошла ошибка создания объекта - выход
        If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
        'objOutlookApp.Session.Logon "user","1234",False, True
     
        lLastR = Cells(Rows.Count, 1).End(xlUp).Row
        'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
        For lr = 2 To lLastR
            Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
            'создаем сообщение
            With objMail
                .to = Cells(lr, 1).Value 'адрес получателя
                .Subject = Cells(lr, 2).Value 'тема сообщения
                .Body = Cells(lr, 3).Value 'текст сообщения
                'вложение(если ячейка не пустая и путь к файлу указан правильно)
                If Cells(lr, 4).Value <> "" Then   
                    If Dir(Cells(lr, 4).Value, 16) <> "" Then
                        .Attachments.Add Cells(lr, 4).Value
                    End If
                End If
                .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
            End With
        Next lr
     
        Set objOutlookApp = Nothing: Set objMail = Nothing
        Application.ScreenUpdating = True
    End Sub

    Скачать пример массовой рассылки:

      Массовая рассылка писем через Outlook.xls (60,0 KiB, 6 986 скачиваний)

    При использовании этих кодов есть один недостаток: очень часто при программной отправке писем Outlook выдает окно с запросом подтверждения отправки. Сообщение может быть трех видов:

    • Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается отправить сообщение от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается выполнить действие, которое может привести к отправке сообщения от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы

    Чтобы при программной отправке данных сообщений не появлялось, в версиях Outlook, начиная с 2007 можно отключить его настройками безопасности:

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

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

    Важно: сам код рассылки не имеет никаких ограничений по числу отправляемых сообщений. Но различные почтовые серверы могут устанавливать свои лимиты. Например, Gmail и Yandex могут заблокировать email, с которого ведется рассылка, если общее количество отправленных сообщений превышает 100 штук в день. Поэтому производить важные массовые рассылки рекомендуется с собственного SMTP-сервера.


     

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

    Отправка сообщения без использования Outlook — используем CDO

    Option Explicit
     
    Sub Send_Mail()
        Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
        Dim oCDOCnf As Object, oCDOMsg As Object
        Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
        Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
        On Error Resume Next
        'sFrom – как правило совпадает с sUsername
        SMTPserver = "smtp.yandex.ru"    ' SMTPServer: для Mail.ru "smtp.mail.ru"; для Яндекса "smtp.yandex.ru"; для Рамблера "mail.rambler.ru"
        sUsername = "YourMail@mail.ru"    ' Учетная запись на сервере
        sPass = "1234"    ' Пароль к почтовому аккаунту
     
        If Len(SMTPserver) = 0 Then MsgBox "Не указан SMTP сервер", vbInformation, "www.Excel-VBA.ru": Exit Sub
        If Len(sUsername) = 0 Then MsgBox "Не указана учетная запись", vbInformation, "www.Excel-VBA.ru": Exit Sub
        If Len(sPass) = 0 Then MsgBox "Не указан пароль", vbInformation, "www.Excel-VBA.ru": Exit Sub
     
        sTo = "AddressTo@mail.ru"    'Кому
        sFrom = "YourMail@yandex.ru"    'От кого
        sSubject = "Автоотправка"    'Тема письма
        sBody = "Привет от Excel-VBA"    'Текст письма
        sAttachment = "C:/Temp/Книга1.xls"    'Вложение(полный путь к файлу)
     
        'Назначаем конфигурацию CDO
        Set oCDOCnf = CreateObject("CDO.Configuration")
        With oCDOCnf.Fields
            .Item(CDO_Cnf & "sendusing") = 2
            .Item(CDO_Cnf & "smtpauthenticate") = 1
            .Item(CDO_Cnf & "smtpserver") = SMTPserver
            'если необходимо указать SSL
            '.Item(CDO_Cnf & "smtpserverport") = 465 'для Яндекса и Gmail 465
            '.Item(CDO_Cnf & "smtpusessl") = True
            '=====================================
            .Item(CDO_Cnf & "sendusername") = sUsername
            .Item(CDO_Cnf & "sendpassword") = sPass
            .Update
        End With
        'Создаем сообщение
        Set oCDOMsg = CreateObject("CDO.Message")
        With oCDOMsg
            Set .Configuration = oCDOCnf
            .BodyPart.Charset = "koi8-r"
            .From = sFrom
            .To = sTo
            .Subject = sSubject
            .TextBody = sBody
            'Проверка наличия файла по указанному пути
            If Len(sAttachment) > 0 Then
                If Dir(sAttachment, 16) <> "" Then
                    .AddAttachment sAttachment
                End If
            End If
            .Send
        End With
     
        Select Case Err.Number
        Case -2147220973: sMsg = "Нет доступа к Интернет"
        Case -2147220975: sMsg = "Отказ сервера SMTP"
        Case 0: sMsg = "Письмо отправлено"
        Case Else: sMsg = "Ошибка номер: " & Err.Number & vbNewline & "Описание ошибки: " & Err.Description
        End Select
        MsgBox sMsg, vbInformation, "www.Excel-VBA.ru"
        Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
    End Sub

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

    • SMTPserver — Каждый из приведенных выше сервисов имеет свой сервер для отправки сообщений(его можно посмотреть на сайте сервиса). В комментариях к коду я написал три самых распространенных, но если Вы используете какой-то другой, то просто посмотрите на его сайте настройки для Outlook и отыщите тот параметр, который отвечает за SMTPserver.
    • sUsername — это Ваш логин для входа в почтовый сервис. Думаю тут все понятно. Единственный момент — обязательно указывать e-mail именно в полном виде — YourMail@mail.ru, даже если для входа на сервис через браузер Вы используете только первую часть записи(YourMail). Если необходимо подставить в качестве отправителя псевдоним(чтобы получатель видел не просто адрес, а ассоциированное имя учетной записи), то указывать надо именно в формате псевдонима:
      sFrom = "Excel-vba <YourMail@yandex.ru>"

      Excel-vba — и есть псевдоним. А сам адрес должен указываться между знаками <>

    • sPass — пароль доступа к Вашей учетной записи, который Вы используете для входа в почту.

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

    .Item(CDO_Cnf & "smtpserverport") = 465
    .Item(CDO_Cnf & "smtpusessl")

    Иначе вместо отправки письма получим ошибку «Отказ сервера SMTP». Серверы Яндекс и Gmail требуют шифрования, а значит для них указанные выше строки должны быть активированы(т.е. раскомментированы). Номер порта указывается в описании настроек сервера и для каждого сервера может быть своим, поэтому если с указанием приведенного в коде порта(«smtpserverport») письмо не отправляется — необходимо зайти в настройки почтового сервера и убедиться в правильности указания номера порта.

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

    Скачать пример:

      Массовая рассылка писем через CDO — без Outlook.xls (64,0 KiB, 7 544 скачиваний)


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

    With oCDOMsg
        Set .Configuration = oCDOCnf
        .From = sFrom
        .BodyPart.Charset = "windows-1251"
        .To = sTo
        .Subject = sSubject
        Set objbp = oCDOMsg.AddRelatedBodyPart("C:ДокументыИзображения11.jpg", "11.jpg", 1)
        objbp.Fields.Item("urn:schemas:mailheader:Content-ID") = "<11.jpg>"
        objbp.Fields.Update
        If Len(sAttachment) > 0 Then
            If Dir(sAttachment, 16) <> "" Then
                .AddAttachment sAttachment
            End If
        End If
        'для вложения картинки письмо лучше формировать в формате HTML
        .HTMLBody = "<img src=""11.jpg""><br />" & sBody
        .Send
    End With

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

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

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

    Также см.:
    Отправка листа/книги по почте
    Вставить в письмо подпись из Outlook через VBA
    Вставить в письмо Outlook таблицу Excel с форматированием
    Сохранить вложения из Outlook в указанную папку
    Как отправить письмо от другой учетной записи Outlook


    Статья помогла? Поделись ссылкой с друзьями!

      Плейлист   Видеоуроки


    Поиск по меткам

    

    Access
    apple watch
    Multex
    Power Query и Power BI
    VBA управление кодами
    Бесплатные надстройки
    Дата и время
    Записки
    ИП
    Надстройки
    Печать
    Политика Конфиденциальности
    Почта
    Программы
    Работа с приложениями
    Разработка приложений
    Росстат
    Тренинги и вебинары
    Финансовые
    Форматирование
    Функции Excel
    акции MulTEx
    ссылки
    статистика

    Отправляйте email рассылку прямо из интерфейса Excel (слияние с почтой без Word)

    Сегодня массовые рассылки почти по умолчанию предполагают персонализацию. Это касается любых рассылок, от корпоративных новостей до массовых маркетинговых кампаний. И любого способа отправки, от стандартного слияния почты в MS Word до специализированных SendGrid или MailChimp. Зачастую единственный общий знаменатель — это список получателей в Excel. Так возможно ли отправлять массовые персонализированные рассылки без помощи Word или других программ?

    Инструмент XLTools «Email рассылки» позволяет создать слияние вашей почты со списком получателей в Excel и отправлять массовые персонализированные рассылки напрямую из интерфейса Excel:

    Перед началом работы добавьте «Email рассылки» в Excel

    «Email рассылки» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

    Начните работу с инструментами XLTools

    Когда надстройка «Email рассылки» наиболее полезна

    Предположим, ваша компания планирует провести мероприятие, и вам нужно отправить email приглашения 50-60 партнёрам. Чтобы сообщения не выглядели как спам, вам нужно, чтобы каждому партнёру пришло персонализированное письмо с обращением по имени. Кроме того, вы не хотите случайно раскрыть контакты всех партнёров в строке «КОМУ» — так что каждое письмо должно быть адресовано только одному партнёру. Надстройка XLTools «Email рассылки» поможет выполнить рассылку именно так, при этом сэкономив вам время.

    Обратите внимание, что надстройка XLTools «Email рассылки» не является сервисом email-рассылок — это надстройка Excel для повышения продуктивности работы. И хотя XLTools не устанавливает лимит отправки, ваш почтовый домен его наверняка устанавливает лимит, как и штрафы за его нарушение.

    Если вы планируете отправлять массовые маркетинговые рассылки – например, новостную рассылку подписчикам, специальные предложения клиентам, т.д. – рекомендуем использовать специализированные сервисы SendGrid, MailChimp или другие.

    Как работает слияние почты в Excel

    Надстройка XLTools «Email рассылки» НЕ является сервисом email-рассылок. Это надстройка Excel для повышения продуктивности работы, которая упрощает массовую отправку персонализированных рассылок, с быстрой настройкой параметров:

    Как связать «Email рассылки» в Excel с вашим почтовым ящиком

    Свяжите «Email рассылки» в Excel с вашим почтовым ящиком посредством SMTP (Simple Mail Transfer Protocol — простой протокол передачи электронной почты).

    Нажмите кнопку Настройки на вкладке XLToolsb Откройте вкладку Email рассылки (SMTP) .

    «Email отправителя» – адрес вашей электронной почты, с которой будет осуществлена рассылка.

    «Имя отправителя» – введите свое имя, название компании или любое другое, как оно будет отображаться в почтовом ящике получателей.

    Напр., «Семинары XYZ».

    Для проверки связи с этой электронной почтой нажмите кнопку Отправить тестовый Email… . Тестовое сообщение будет сразу же отправлено.

    Настройте SMTP и привяжите Email Рассылки к вашему почтовому ящику

    Как создать список получателей в Excel

    Таблица Excel — это удобный способ хранения контактов. Каждая строка содержит сведения об одном получателе. Каждый столбец представляет собой персонализированное поле, напр. Email, Имя, Отчество, т.д. Эта Excel таблица также служит источником данных для «Email рассылок». Данные этих персонализированных полей позднее заместят соответствующие метки в шаблоне email сообщения.

    Чтобы создать создание список получателей с нуля:

    Создать список рассылки в Excel: таблица получателей Email рассылки

    Чтобы использовать свой существующий список контактов:

    Отформатируйте список как таблицу:

    Выделите диапазон На вкладке «Главная» нажмите Форматировать как таблицу Выберете любой подходящий стиль таблицы.

    Редактирование списка рассылки в Excel: добавить персонализированные поля для Email рассылки

    Как вложить файлы в сообщения email рассылки

    Вы можете вложить 1 или 2 файла каждому получателю вашей рассылки. Вы можете вложить файл любого формата: PDF, DOCX, PPTX, XLSX, JPEG, т.д. Учтите ограничения вашего почтового домена на размер вложений. Обычно, размер сообщения с вложениями не может превышать 10-20 MB.

    Добавьте столбец для указания файловых вложений:

    Добавьте один столбец, напр. «Вложение 1».

    Укажите путь к файлу на вашем компьютере, напр., C:DocumentsПрограмма-Семинара.pdf.

    Скопируйте путь к файлу во все ячейки столбца вложений.

    Укажите путь к файлам для каждого получателя индивидуально.

    Оставьте соответствующие ячейки пустыми.

    Указанные файлы будут прикреплены к письмам в вашей рассылки. Далее перейдите к созданию шаблона email сообщения.

    Как создать шаблон email сообщения и отправить персонализированную рассылку

    Email шаблон — это некая заготовка, обезличенное email сообщение. Использование в шаблоне общих меток даёт возможность автоматически персонализировать каждое письмо: надстройка «Email рассылки» возьмёт данные из вашего списка контактов в Excel и заменит эти общие метки конкретными данными для каждого получателя. К примеру, она заменит общую метку [Имя] на имя получателя «Александр».

    Подтвердите столбец, который содержит email адреса получателей:

    Напр., выберите поле Email .

    Подтвердите столбцы, которые содержат пути к файлам вложений:

    Напр., выберите поля Вложение 1 или Вложение 2 .

    Напишите «Тему сообщения» так, как она должна отображаться в почтовом ящике получателя.

    Напр., напечатайте «Подтверждение участия в семинаре».

    Введите текст сообщения в редакторе:

    Выбирайте метки из списка возможных и вставляйте их в квадратных скобках:

    Напр., [Имя], [РегНомер].

    Создание шаблона email сообщения для массовой рассылки с XLTools Email Рассылки

    Рекомендуем сначала протестировать рассылку. Напр., создайте тестовый список получателей, указав в нём только свои email адреса — и отправьте email себе. Проверьте, чтобы метки корректно замещались персонализированными данными, чтобы в тексте и теме письма не было ошибок и опечаток. Убедитесь, что ваше сообщение выглядит профессионально.

    Как только вы нажмёте Отправить , XLTools «Email рассылки» сразу же начнёт отправку массовой персонализированной рассылки:

    Нажмите Отправить и разошлите массовую персонализированную email рассылку напрямую из интерфейса Excel

    Как выглядит сообщение, отправленное «Email рассылкой», в почтовом ящике получателя

    Вид Email сообщения, отправленного с XLTools Email Рассылки, в ящике получиталя

    Настройки для XLTools Email Рассылки и email сообщение в почте получателя

    Какой лимит отправки сообщений в XLTools «Email рассылки»

    Надстройка XLTools «Email рассылки» не является сервисом email-рассылок и не ограничивает число отправляемых email сообщений. Массовая рассылка отправляется с вашего email аккаунта.

    Массовая рассылка (слияние) с помощью Excel и Word

    word слияние документов

    Привет! Сегодня решил осветить один из тех инструментов, а именно массовую рассылку (слияние) документов. Этот инструмент относится к тем, что:

    • легки в использовании
    • малоизвестны
    • приносят охрененную пользу

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

    Применение инструмента

    Представим ситуацию. Вы начальник отдела кадров, в котором утвержденный проект трудового договора. Каждый сотрудник, включая гендира, подписывает ежегодно один и тот же документ, который каждый раз отличается только в деталях, индивидуально присущих каждому человеку — ФИО, должность, зарплата, домашний адрес и т.д.

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

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

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

    Что необходимо

    В первую очередь нам нужны:

    • Документ-шаблон в Word’е
    • Список адресатов с их характеристиками (адресами, полом, обращением. )

    У меня для примера простенькое письмецо:

    Массовая рассылка excel

    Серым отмечены блоки, индивидуальные для каждого адресата. Как видите, нужно подготовить обращение (Уважаемый/Уважаемая), нужные поля в родительном падеже (Иванову). Соответственно, на каждый такой блок я готовлю табличку в Excel:

    Слияние WOrd-Excel

    Слияние — вот как называется этот инструмент. Для этого открываем наш шаблон в Word и нажимаем на вкладке «Рассылки» — «Начать слияние» — «Пошаговый мастер слияния».

    Массовая рассылка

    Далее появится справа панель, где поэтапно надо выбирать нужный вариант.

    1. Выбор типа документа. Я выбрал «Письма»
    2. Открытие документа. Я уже открыл, поэтому «Текущий документ».
    3. Выбор получателей. У меня уже готовый список, поэтому «Использование списка» и Обзор. Там выбираю свой файл.
    4. Создание письма. Мне много блоков надо ввести, поэтому поочередно выбираю нужное место в письме и через «Другие элементы» вставляю нужный мне элемент.
    5. Просмотр писем. Здесь можно прокрутить ваши записи, т.е. посмотреть все документы, нажимая на соответствующие стрелочки.word excel слияние
    6. Завершение слияния. Тут есть два варианта — «Печать» — можете распечатать готовые документы, при этом выбрав только тех, кто нужен. И другой вариант «Изменить часть писем» — здесь каждый документ формируется друг за другом. Это нужно для того, чтобы внести какие-то редкие изменения, которые просто нецелесообразно втыкать в таблицу. При этом также можно выбрать какие письма вам выгрузятся в Word, а какие не нужны.

    Сохраните документ. Потом при открытии вас будут спрашивать

    массовая рассылка excel word

    Отвечаете «Да» и можете просматривать шаблон с текущими адресами прямо на панели, слияние делать больше не придется.

    Очевидный плюс этого инструмента — никакой рутины. Подготовка документа будет сводиться лишь к открытию, выбору адресатов и распечатке (отправке).

    Обычно я делаю быструю пояснялку для Youtube, но этот инструмент уже освещен в моем бесплатном часовом видеокурсе «Топ-10 инструментов Excel «. Все мои подписчики его получили, если же его у вас нет, можете его получить, введя в поле в правой части свои контакты и после подтверждающего письма (где надо кликнуть на ссылке) вам придет письмо со ссылкой на видеокурс. Там вы заодно познакомитесь еще с 9ю инструментами, которые приносят огромную пользу в работе всем пользователям Excel.

    P.S. Понравилась статья? Подпишитесь на рассылку в правой части страницы (Бесплатный курс «Топ-10 инструментов Excel») и будьте в курсе новых событий.

    Массовая рассылка (слияние) с помощью Excel и Word : 12 комментариев

    А как приложить файл к каждому письму?

    Честно, не уверен, что это возможно.

    «А как приложить файл к каждому письму?»
    Через слияние — это невозможно. Можно только без использования Word. Есть рассыльщики писем в Excel, которые нужным образом настраиваются. Через них можно и файлы вкладывать, и содержание письма персональное через формулы устанавливать, и отправлять одним кликом письма для 1000 получателей. В поисковике набери «Макрос отправки письма из Excel через Outlook» и найдешь.

    Отличная статья, спасибо! Всё делала по Вашей инструкции — получилось! Один вопрос: как настроить отображение дат в формате ДД.ММ.ГГГГ? (По умолчанию они выходят в виде ММ/ДД/ГГГГ)

    » как настроить отображение дат в формате ДД.ММ.ГГГГ?»
    В исходнике Excel дату необходимо хранить в виде текста. Например создайте дополнительный столбец, с формулой =Текст(A2;»дд.мм.гггг») и в Word ссылайтесь на этот столбец.

    У меня в оутлуке несколько почт, как выбрать нужную почту отправления?

    Боюсь, что пойдет та, что по умолчанию.

    Замечательная статья, только имена указаны не в родительном, а в дательном падеже)

    Хочу много знать

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

    Настройка рассылки писем

    В этой инструкции описаны настройки рассылки писем, общие для всех способов отправки (Outlook, TheBAT!, сервис рассылки).

    К общим настройкам рассылки относится:

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

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

    исходная таблица Excel с адресами почты для рассылки писем

    Теперь открываем настройки программы, нажав кнопку Настройки на панели инструментов, и начинаем настраивать рассылку.

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

    включение опции рассылки почты в программе заполнения документов

    2. Пролистываем форму настроек немного вниз, и задаём тему, текст и адрес email получателя писем:

    рассылка почты - настройки темы и текста писем

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

    В поле «Получатель» необходимо сформировать корректный адрес электронной почты, на который будет отправлено письмо.

    Адрес получателя можно ввести в полном и кратком формате:

    • — обычный адрес электронной почты (краткий формат)
      После подстановки значений из таблицы Excel, адрес будет иметь вид vasya@mail.ru
    • <> — полный формат адреса электронной почты (Имя Получателя <email>)
      После подстановки значений из таблицы Excel, адрес будет иметь вид Василий Пупкин <vasya@mail.ru>

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

    Текст и тема письма могут быть произвольными.

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

    Вложения (прикрепление файлов к письму)

    Если необходимо прикреплять файлы к создаваемым письмам, пролистываем настройки еще немного вниз, и видим галочки для включения 2 режимов добавления вложений:

    рассылка писем - добавление вложений в рассылаемые электронные письма

    Первая опция — «Прикреплять к письму сформированные файлы» — позволяет нам присоединять документы, заполненные (созданные) нашей программой.

    К примеру, если в папке «Шаблоны» у нас находится несколько файлов — образцов документов, а прикрепить к письму необходимо только один файл, — то можно воспользоваться текстовым полем для указания маски файла.

    (если в папке «Шаблоны» находятся файлы с именами Анкета.doc, Купон участника.doc и Расчёт скидки.xls, то при маске *купон* к письмам будут прикреплены только файлы, созданные на базе шаблона Купон участника.doc)

    Вторая опция — «Прикреплять к письму все файлы из заданной папки» — даёт нам возможность добавлять во вложение к письму неизменяемые («статические») файлы.

    Количество «статических» файлов неограничено — сколько их будет в папке, столько и будет прикреплено к каждому письму.

    Внимание: Если вы случайно укажете в качестве этой папки каталог с огромным количеством файлов, то почтовая программа может зависнуть (при попытке прикрепить сотни мегабайтов во вложение к письму)

    PS: В поиске файлов, просматривается только верхний уровень заданной папки, — файлы из подпапок не прикрепляются к письмам)

    Когда мы всё настроили (и не забыли нажать кнопку «Сохранить изменения»), можно запускать формирование документов.

    Результат создания писем — на скриншоте:

    автоматизированная рассылка почты - созданные письма в программе TheBAT

    Комментарии

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

    Напишите в скайп или на почту, попробую помочь

    Не выходит. Письмо отправятся, но без вложений.
    Таблица:
    1 ячейка называться ФИО (тут указаны ФИО, кому нужно сделать отправку), 2 — email адресата

    Название вложений:
    Дмитриева Ольга Витальевна — Блок 1.pdf
    Дмитриева Ольга Витальевна — Блок 2.pdf
    Сорвина Елена Сергеевна — Отдел 3.pdf
    и т.д.

    В настройке поставила галочку «Прикреплять к письму все файлы из заданной папки»,
    Маска имени прикрепляемых файлов — пробовала указывать
    *
    **
    *__*.*

    нужно еще что-то в самой таблице указывать?

    Альбина, там же есть опция для указания маски прикрепляемых файлов
    В этой маске можно использовать коды полей

    Добрый день! Как сделать рассылку нескольким людям с одним вложением я поняла, очень удобно. Теперь встала такая проблема, как сделать рассылку с индивидуальными вложениями? К примеру у меня в списке есть Петров и ему нужно отправить файлы .pdf только по его отделу, далее Сидорова — ей нужно отправить файлы также только по ее отделу и т.д. Сами файлы готовы и они созданы не из шаблонов. В списке более ста адресов, только вручную менять путь к файлу для вложения?

    Здравствуйте.
    Да, можно. в инструкции же это описано:

    Вторая опция — «Прикреплять к письму все файлы из заданной папки» — даёт нам возможность добавлять во вложение к письму неизменяемые («статические») файлы

    Добрый день! Пользуемся вашим макросом уже несколько месяцев, но сейчас встал такой вопрос — можно ли осуществить отправку писем с вложенными файлами по маске? Т.е. не файлы, которые программа сгенерила и не полный набор статичных файлов, а определенные файлы из папки по определенной настраиваемой маске? Условно, в одной папке лежат файлы Иванов.pdf, Петров.pdf, Сидоров.pdf. В xls шаблоне три строки с разными адресами эл.почты для Иванова, Петрова и Сидорова. Соответственно, при отправке чтобы Иванову прикрепился файл Иванов.pdf, Сидорову — Сидоров.pdf и т.д. Файлы — не сгенерированные макросом, а другие, внешние
    Ну и базово очень не хватает макросу опции «запоминать настройки для каждого файла шаблона»

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

    Ксения, возможно, вы 2 галочки в настройках поставили, чтобы прикреплялись и созданные файлы, и файлы из заданной папки.

    Добрый день! Подскажите: пожалуйста, почему к письму могут прикрепляться 2 идентичных файла? Шаблон один, равно как и создаваемый файл. Спасибо!

    Добрый день!
    В программе the bat текст и сформированные файлы прикрепляются, но поле «кому» не заполняется. В чем может быть ошибка. the bat последняя версия, напишите на каких версиях работает корректно.

    Да, мне нужно сделать заказ. Как оплатить и сколько будет стоить.?

    Антон, в программе сейчас нет такой опции. Но если нужно, можно реализовать (платно)

    Доброй ночи!
    Подскажите, пожалуйста, а реализована в Вашей программе возможность добавлять в отправку письма (Аутлук) отложенный старт (дату, время отправки ). Причем чтобы для 50шт отправка на следующий понедельник в 9:00, для других 50шт — отправка в понедельник в 12:00, для последующих 50шт — вторник 9:00 и т.д.
    В Аутлук отложенная отправка реализована, но в ручную 5сотен писем долго делать.

    Не, с ОутГлюком это не прокатывает 😉 Я уже и нажимал везде, и тырнет читал.
    Ну и ладно, переживём.

    Михаил, в любой почтовой программе есть кнопка типа Отправить и получить почту.
    И все письма сразу пойдут на отправку.
    Почитайте справку по Аутлуку.

    Ещё вопрос. Напрямую с Вашей программой не связано, но может Вы в курсе.
    Письма прекрасно формируются в папке Исходящие. Галочка немедленной отправки у меня снята.
    А вот как потом отправить все эти письма разом? У меня получается только по-одному — открывать и нажимать «Отправить». Outlook 2013.

    Методом научного тыка получилось.
    Я использовал раздел «Прикреплять к письму сформированные файлы», а надо было «Прикреплять к письму все файлы из заданной папки»
    Смущают слов «все файлы» — возможно в поясняющую строку «(* — все файлы, *.xls* — все созданные файлы Exel, и т.д.)» надо добавить указание на маски полей. Как-то так 😉
    Ну или в справке такой алгоритм расписать.

    Здравствуйте, Михаил.
    Да, можно так.
    Видимо, вы что-то не то написали в столбце File, потому и не работает. Или неверно задали маску имени файла, забыв добавить * до или после

    Подскажите, Игорь, можно-ли файлы-вложения выбирать по маске их таблицы Excel’я?
    У меня файлы сформированы в Word’е, мне так было проще (привычнее) на данный момент.
    Я сделал в таблице поле «File» и указал маску — не работает.
    И теперь придётся вручную вставлять в письма 🙂

    С уважением, Михаил

    С Юнисендером работает только вариант с одним email на письмо

    Здравствуйте, а подскажите как отправлять через Unisender там где несколько e-mailов в одной строке. Пример (name@name.ru, name@name.ru)
    Нужно отправлять типовые документы организациям (меняется по тексту только Ф.И.О и название организации), через The Bat работает все идеально, а вот с Unisenderom никак не разберусь. Где 1 емеил видит, а где несколько уже не отправляет

    Может, в новых версиях программы TheBAT что-то поменялось (хоть и маловероятно)
    У меня всё работает с разными версиями TheBAT

    Добрый день!
    В программе the bat сформированные файлы не прикрепляются.

    С любой версией Outlook, установленной на комп (в составе MS Office), моя программа работает

    Подскажите, пожалуйста, а с outlook 365 ваша программа не работает?

    Ирина, значит, что-то поменялось в компе.
    Например, theBat обновили (может, с новой версией не работает)
    Если всё работает, не надо обновлять программы, — и всё будет работать вечно.

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

    Юлия, напишите мне в Скайп, попробую помочь

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

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

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

    Для этого у меня в каждой строчке таблицы эксель есть строка с названиями проектов и там на пересечении клиента и проекта отмечены конкретные ответственные — т.е. тот кто должен быть в копии (при этом за одного и того же клиента в разных проектах могут отвечать разные менеджеры или какой-то проект у клиента может не идти). Соответственно, есть пустые поля и есть поля с адресами. Если в строке есть пустые поля, то программа просто не создает письма.

    Как такую задачу можно было бы решить при помощи Вашего приложения. Может быть функций выбора непустых строк при формировании рассылки или еще есть какие-то варианты?

    Марьяна, если вопрос касается моей программы, то никакие шаблоны со вложениями не нужны (иначе делается, — просто прикрепляются статические фпйлы из заданной папки)

    И вложения в формате пдф. Имеет ли это значение? Спасибо еще раз))

    Здраствуйте. Есть ли возможность в поште Outlook создавать шаблоны с вложениями? И есла да, то как?) Спасибо.

    Доброе утро, Игорь. А Вы случайно не знаете как в Аутлуке это делается? Весь день ползаю по форумам. Нигде нет инфы. 🙁 Похоже придется ручками через яндекс все делать 🙁

    Ирина, да, можно настроить
    Только это настраивается не в моей программе (а в Outlook, или в аккаунте Яндекс.Почты)

    Увы, но такие письма как правило не глядя удаляются. Есть возможность настроить так что было видно реального отправителя?

    Добрый вечер, Игорь
    Подскажите можно ли решить такой вопрос: при рассылке писем через outlook письмо Адресату приходит от Yandex Mail без указания отправителя.

    Наталья, просто очистите папку Шаблоны от файлов.
    Тогда только письма сформируются, а документы — нет (т.к. нет шаблонов)

    Здравствуйте. Подскажите, как сформировать письмо, но при этом не формировать документ?

    Здравствуйте, Александр
    Возможно, неверно задан столбец с адресами почты
    (если в указанном столбце значение не является корректным email, то письмо не будет сформировано)

    Здравствуйте, данным макросом пользуюсь давно. Потребовалась необходимость отправки писем через почтовый клиент Microsoft outlook. Макрос настроил как указано в инструкции, но не получается формирование писем в Microsoft outlook. Макрос отрабатывает все данные и пишет «письмо отправлено — успешно», но в почтовом клиенте Microsoft outlook нет данных писем. Так же пробовал через почтовый клиент The Bat — проблема аналогична. Microsoft outlook prof + 2010 версия 14.0.4760.1000 (32 разрядная); TheBAT версия 8.6. Антивирус использую встроенный в Windows 10. Вопрос: где и что можно посмотреть/исправить чтоб макрос отправлял письма?
    Заранее благодарю за помощь и за макрос.
    С Уважением, Александр.

    Здравствуйте, Олег
    Вложения программа может формировать по шаблонам Word и Excel (базовый функционал программы)
    Интеграция с SendBox пока не реализована. Можно попробовать сделать, но будет недешево (от 10-15 т.р.)

    В программе реализована интеграция с сервисом Unisender — это почти то же самое, что и SendBox от Mail.ru

    Здравствуйте! Скажите, каким образом можно сделать индивидуальные вложения для каждого получателя при массовой рассылке? Планируем рассылать квитанции. И возможна ли интеграция с SendBox от Mail.ru?

    Владимир, напишите мне в Скайп, разберёмся

    попробовал, все равно не крепит, у меня они формируются в ПДФ формате, шаблоны и готовые документы в разных папках

    Здравствуйте, Владимир
    Оставьте просто звездочку одну в этом поле

    Добрый день, Игорь. У меня созданные документы хранятся в отдельной папке на рабочем столе. В программе во вкладке «письма» отметил галочкой прикреплять к письму сформированные файлы и указал маску как в инструкции звездочка пробел ФИО в фигурных скобках звездочка точка звездочка? так же отметил галочкой «прикреплять все письма из заданной папки». Но при рассылке сформированные письма не прикрепляются.

    Это всё можно сделать
    HTML должен начинаться с тегов html и body — тогда программа поймёт, что надо формировать письмо в HTML формате
    Картинки вставляются тегом img (сама картинка должна быть размещена где-то на сайте, чтобы была ссылка на картинку для вставки в HTML код)

    Like this post? Please share to your friends:
  • Мастер календарей для word
  • Массовая рассылка писем excel
  • Массовое удаление строк в excel
  • Мастер календарей word 2010
  • Массовая печать документов word