mail mail

Рассылка почты

Макросы и программы для отправки почты из Excel, и автоматизированной рассылки писем списку адресатов

«Прайс лист» - программа объединения и обработки прайс листов

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

 

ВНИМАНИЕ: Программа находится в стадии разработки, инструкция по работе с программой ещё не опубликована.

Функционал реализован лишь частично (к примеру, вычисляемые поля, - одна из основных «фишек» этой программы, ещё не функционируют)

Формирование и рассылка случайного списка торговых точек

Программа предназначена для еженедельного формирования плана проверок торговых точек.

 

Функции программы:

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

 

Сохранение настроек почтового аккаунта в реестре

Форма редактирования настроек почты в Excel

Макрос предназначен для сохранения в реестре (и изменения через форму) настроек почтового аккаунта.

Эти настройки используются макросом рассылки почты Send_Mail
(для отправки почты из Excel без применения специализированных почтовых программ)

При запуске формы, она считывает из реестра Windows ранее сохранённые настройки.

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

После редактирования логина, пароля или адреса SMTP-сервера,
нажмите кнопку «Сохранить и проверить», чтобы сохранить в реестре изменённые данные.

После сохранения настроек, макрос попытается отправить тестовое письмо, используя сохранённые настройки.
(для этого, помимо формы, в книге Excel в стандартном модуде должен присутствовать макрос Send_Mail)

Если введённые настройки корректны, на компьютере есть доступ к интернету, и в системе установлена библиотека CDO for Windows,
будет выведено сообщение об успешной отправке тестового письма.

Данную форму можно использовать и для сохранения в реестре любых других настроек макроса.

Программа загрузки базы данных с сайта АвтоТрансИнфо

Программа предназначена для загрузки базы данных сайта autotransinfo.ru (АТИ) в книгу Excel.

 

Результатом работы программы является книга Excel, состоящая из 2 листов: «Организации» и «Контактные лица».

На листе «Организации» собрана вся информация об организациях, зарегистрированных на сайте autotransinfo.ru,
а на листе «Контактные лица» - подробные сведения о сотрудниках каждой из организаций, и их контактные данные
(имя, номер телефона и факса, ник в Скайпе, адрес электронной почты, номер ICQ)

 

Загрузка данных с сайта осуществляется в 3 этапа:

Поиск адресов электронной почты (email) на листе Excel

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

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

Макрос вычленяет из текста ячеек адреса электронной почты, и выводит все найденные адреса email в таблицу на втором листе ("результат")

Конечно, не помешало бы ещё проверить все найденные адреса почты на корректность (на соответствие стандартам RFC 5322 и RFC 5321),
но в данном макросе это не реализовано (но обычно это и не требуется)

Для поиска адресов email используются регулярные выражения (RegExp)

Отправка писем из Excel при помощи почтовой программы TheBAT!

Отправка почты из Excel при помощи TheBAT!

Макроc предназначен для автоматизированной рассылки почты из Excel.

Для рассылки используется почтовая программа TheBAT!

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

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

В прикреплённом примере макрос формирует тему письма из значения ячейки второго столбца

Скрытая отправка списка изменений в файле на почту

Отправленное макросом письмо с копией изменённого файла в архиве

Программа предназначена для отправки копии обрабатываемого файла (в виде архива) на заданный адрес электронной почты.

Особенности программы:

  • используется отправка письма средствами Windows (без использования почтовых программ)
    (в качестве адреса отправителя можно использовать любой адрес почты)
  • перед отправкой файл архивируется (создаётся архив ZIP средствами Windows, без применения программ-архиваторов)
  • в тексте письма указывается, какие именно данные были изменены (макрос отслеживает изменения определённых ячеек листов Excel)
  • в письме указывается IP-адрес и прочие характеристики компьютера, с которого был отправлен файл
  • все действия происходят незаметно для пользователя (никаких уведомлений не выводится)
  • отправка письма с файлом производится каждый раз при закрытии файла

 

Проверка синтаксиса адреса электронной почты на VBA

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

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

Sub ПримерПроверкиАдресаПочты()
    Debug.Print CheckEmail("order@ExcelVBA.ru")    ' возвращает TRUE (корректный адрес почты)
   Debug.Print CheckEmail("123-order@ExcelVBA.ru")    ' возвращает TRUE (корректный адрес почты)
   Debug.Print CheckEmail("create.order@Excel.VBA.ru")    ' возвращает TRUE (корректный адрес почты)
   Debug.Print CheckEmail("mail@Excel-macro.ru")    ' возвращает TRUE (корректный адрес почты)

    Debug.Print CheckEmail("order@ExcelVBA")    ' возвращает FALSE (ошибка в адресе почты)
   Debug.Print CheckEmail("order.ExcelVBA.ru")    ' возвращает FALSE (ошибка в адресе почты)
   Debug.Print CheckEmail("order.ExcelVBA@ru")    ' возвращает FALSE (ошибка в адресе почты)
End Sub

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

Код функции CheckEmail:

Программа формирования и рассылки отчётов с детализацией звонков

Настройка шаблона писем для рассылки детализации звонков

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

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

К каждому отправляемому письму прикрепляется как заархивированный созданный отчёт, так и дополнительный PDF-файл:

пример рассылаемых абонентам писем

Отправка почты макросом VBA без использования почтовых программ

ВНИМАНИЕ! Данный код гарантированно работает ТОЛЬКО в ОС WindowsXP.
В остальных версиях Windows код не проверял.
В Windows7 данный макрос работать не будет ввиду отсутствия библиотеки CDO for Windows 2000.
(потребуется ручная установка недостающей библиотеки)

Пример отправки почты макросом Excel:

Sub Main()    ' Пример использования функции Send_Mail
   txt = "Это письмо сформировано макросом" & vbNewLine & _
          "без использования внешних программ и подключения дополнительных библиотек"
    If Send_Mail("ivan_ivanov@mail.ru", "vasya_pupkin@mail.ru", "проверка отправки почты", txt) Then
        MsgBox "Письмо успешно отправлено", vbInformation
    Else
        MsgBox "Не удалось отправить письмо", vbExclamation
    End If
End Sub

Ознакомьтесь также со способом отправки почты из Excel
с использованием почтовой программы TheBAT!

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

Sub SaveAccountData()    ' запускать один раз - для записи в реестр Windows параметров почтового аккаунта
   SaveSetting Application.Name, "mail", "smtpserver", "smtp.mail.ru"    ' Ваш SMTPServer
   SaveSetting Application.Name, "mail", "sendusername", "vasya_pupkin@mail.ru"    ' Ваша учетная запись
   SaveSetting Application.Name, "mail", "sendpassword", "pup123456"    ' Ваш  пароль
End Sub

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

RSS-материал