Может ли эксель отправлять уведомления на почту
и осуществить массовую рассылку сразу множеству разных получателей, с возможностью указать для каждого получателя отдельную тему письма, текст и вложить в каждое письмо указанные файлы. Так же можно указать адреса для отправки копий и скрытых копий, вставить в письмо диапазон ячеек с форматированием и указанную подпись. Рассылка может производиться как при помощи MS Outlook, так и без него.
-
в поле записывается вручную или выбирается из списка действительный адрес электронной почты получателя. Если еще не добавлено ни одного адреса, список будет пуст. Для добавления адреса в список необходимо записать его в поле и нажать кнопку
- добавляет текущий адрес(записанный в поле выпадающего списка) в собственную адресную книгу надстройки. В дальнейшем будет возможно не вводить этот адрес вручную, а просто выбрать его из выпадающего списка. Можно заранее создать множество адресов путем поочередной записи в поле и добавления.
- удаляет из адресной книги MulTEx текущий адрес(записанный в поле выпадающего списка). После удаления данный адрес более не будет доступен для выбора из списка. Удаление адреса из списка влияет исключительно на собственную адресную книгу MulTEx, никакие адреса Outlook или адреса иных почтовых программ не затрагиваются.
Очистить адресную книгу MulTEx - удаление всех адресов из Адресной книги MulTEx. Удаление влияет исключительно на собственную адресную книгу MulTEx, никакие адреса Outlook или адреса иных почтовых программ не затрагиваются.
Адресная книга хранится в специальном файле " MailSet.xml ". Вы можете самостоятельно делать резервные копии данного файла при помощи команды Резервное копирование и восстановление. При переустановке MulTEx этот файл не удаляется и не заменяется.
Тема письма: - указывается тема письма. Желательно указывать не более 255 символов, т.к. более длинный текст будет обрезан до 255 символов, т.к. большинство почтовых программ не работают с темой, длина текста которой превышает 255 символов.
Со всех вкладок массовой рассылки(Массовая рассылка, Настройка массовой рассылки, Дополнительно) доступна возможность создания тестового письма и его отправки на указанный адрес:
/uploadfiles/images/multex/forms/MulTEx_Forms_SendMailMass_testmail.jpg
Адрес может быть выбран из списка (используется адресная книга MulTEx) или занесен вручную
Адреса получателей - указывается диапазон ячеек на листе(только один столбец!) с адресами электронной почты получателей.
Скрытая копия на адреса - указывается диапазон ячеек на листе(только один столбец!) с адресами электронной почты, которые должны быть поставлены в скрытую копию письма.
Скрытая копия - если адрес получателя записан в скрытой копии, то никто из других получателей не будет видеть, что он поставлен в копию.
Пример таблицы для массовой рассылки:
Порт - порт сервера SMTP. У большинства почтовых серверов это значение 25 или 465. Узнать точное значение можно только на самом сервере. Большинство из них размещают всю подробную информацию в открытом доступе.
Использовать SSL/TLS - Secure Sockets Layer/Transport Layer Security. Многие почтовые серверы используют шифрование методом SSL или TLS, что необходимо учитывать при настройке отправки. Если указанный почтовый сервер использует SSL/TLS и галка не будет поставлена - с большой долей вероятности письма просто не будет отправлены сервером. Точные значения можно узнать на сайте поставщика услуг(Яндекс, Mail, Gmail, Rambler и т.д.) в описаниях настроек для Outlook и найти тот параметр, который отвечает за SSL/TLS.
В таблице ниже приведены настройки для наиболее популярных почтовых сервисов:
Добавить шаблон - с помощью данной команды можно запомнить введенные настройки сервера, пользователя, пароля и порта в новый шаблон для удобство выбора настроек отправки, чтобы не вбивать эти настройки в последующем.
Изменить шаблон - с помощью данной команды можно изменить настройки шаблона. Выберите необходимый шаблон, внесите изменения в необходимые поля и нажмите кнопку (Изменить шаблон).
Удалить шаблон - удаляет выбранный шаблон настроек. Выполнение данной команды необратимо, поэтому рекомендуется аккуратно применять её либо сделать резервную копию настроек перед удалением.
Удалить все шаблоны - удаляет все шаблоны настроек. Выполнение данной команды необратимо, поэтому рекомендуется аккуратно применять её либо сделать резервную копию настроек перед удалением.
Все шаблоны хранятся в специальном файле "MailSet.xml", содержащим адресную книгу и настройки CDO. Вы можете самостоятельно делать резервные копии данного файла при помощи команды Резервное копирование и восстановление. При переустановке MulTEx этот файл не удаляется и не заменяется.
после вставки в письмо будет выглядеть так:
Например, необходимо разослать письма с таблицей коэффициентов сотрудников отдела для начисления ЗП. Таблица может выглядеть примерно так:
Сама таблица расположена на Лист1 в ячейках A1:D9 . На примере таблицы рассылки из рис.3 , в ячейке текста письма записано следующее:
Добрый день.
Ниже приведена таблица коэффициентов для начисления ЗП сотрудникам отдела продаж:
Файл с детальными расчетами во вложении.
Если в настройках массовой рассылки выбран Простой текст (.txt), то значения ячеек указанной таблицы будут просто объединены, с соблюдением переносов на строки и в результате письмо будет выглядеть так:
Если в настройках массовой рассылки выбран Форматированный текст (.htm), то значения ячеек указанной таблицы будут вставлены в письмо как есть: с границами ячеек и всем форматированием. Т.е. таблица будет вставлена точно так же, как она выглядит на листе:
Произвольная подпись - если нет подписей Outlook или необходимо использовать подпись, отличную от имеющихся - можно создать подпись "на раз". После выбора пункта Произвольная подпись поле выбора подписей станет активным для ввода любого текста.
Как и сам текст письма, подпись может быть простой и форматированной. Пункты работают как для подписей Outllok, так и для произвольной подписи. В случае с подписями Outlook при переключении с Простого текста на Форматированный и обратно будут отображаться подписи только этого типа(.htm или .txt).
- Простой текст подписи (.txt) - для подписей Outlook будут отображены все подписи формата .txt, а при создании произвольной подписи текст подписи никак не преобразуется и любые теги будут вставлены как есть.
- Форматированный текст подписи (.htm) - для подписей Outlook будут отображены все подписи формата .htm, а при создании произвольной подписи в тексте будут учитываться теги HTML-разметки и такой текст будет преобразован в форматированный текст. Например, текст подписи вида:
после вставки в письмо будет выглядеть так:
Видеоинструкции по использованию надстройки MulTEx
Подскажите, можно ли сделать несколько вложенных файлов? Например, прописав пути через ";"
В некоторых случаях вам может потребоваться инициировать уведомление по электронной почте для указанного получателя, если в отправленной вами книге есть обновленные данные. Эта статья покажет вам, как этого добиться.
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
1. В книге откройте указанный рабочий лист, и вы отправите уведомление по электронной почте на основе обновленных данных внутри.
2. Щелкните вкладку листа правой кнопкой мыши и выберите Просмотреть код из контекстного меню. Смотрите скриншот:
2. в Microsoft Visual Basic для приложений window, скопируйте и вставьте следующий код в окно кода. Смотрите скриншот:
Код VBA: отправка напоминания или уведомления по электронной почте при обновлении книги
Внимание: Замените адрес электронной почты адресом электронной почты получателя в строке .To = "Адрес электронной почты" . И измените поля Cc, Subject, а также body в коде VBA, как вам нужно.
3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
4. После редактирования ячейки на листе Kutools for Excel Появится диалоговое окно, как показано на скриншоте ниже. Если вы хотите прикрепить обновленную книгу к электронному письму, нажмите кнопку Да кнопка. Если нет, щелкните Нет кнопку.
Внимание: Код VBA работает только при использовании Outlook в качестве почтовой программы.
Я изменил предложенный код, чтобы попытаться заставить его работать для моего приложения.
Изменено xRg = Range("C2:C40") и если xRg.Value = -1.
Проблема, с которой я сталкиваюсь, заключается в том, что в любое время происходит изменение любой ячейки, и пока одна из ячеек в моем диапазоне = -1, она будет вызывать Mail_small_Text_Outlook.
Я пытаюсь позвонить только в том случае, если какая-либо ячейка в моем диапазоне косвенно изменена на -1.
Мне также было интересно, возможно ли, и как это будет соответствовать двум критериям.
Например, проверьте диапазон A и диапазон B, и если они соответствуют критериям вызова функции.
Заранее спасибо за помощь. Я новичок во всем этом, но прочитав эту ветку, я понял, что там около 90%.
Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRgPre как диапазон
On Error Resume Next
Если Target.Cells.Count > 1, то выйдите из подпрограммы
Установите xRg = Диапазон ("C2: C40")
Установите xRgPre = xRg.Precedents
Если xRg.Value = -1 Тогда
Если Целевой.Адрес = xRg.Адрес Тогда
Вызов Mail_small_Text_Outlook
ElseIf (Not xRgPre Is Nothing) And (Intersect(Target, xRgPre).Address = Target.Address) Then
Вызов Mail_small_Text_Outlook
End If
End If
End Sub
Я использовал этот код с тем единственным изменением, что я применил его ко всему столбцу [Set xRg = Range("D4:D13")]. Теперь событие срабатывает всякий раз, когда выполняется расчет, независимо от того, находится ли клапан в столбце D ниже целевого значения. Любая идея, почему это так?
Dim Xrg As Range
Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRgPre как диапазон
On Error Resume Next
Если Target.Cells.Count > 1, то выйдите из подпрограммы
Установить Xrg = диапазон ("D4: D13")
Установите xRgPre = Xrg.Precedents
Если Xrg.Value < 1200 Тогда
Если Целевой.Адрес = Xrg.Адрес Тогда
Вызов Mail_small_Text_Outlook
ElseIf (Not xRgPre Is Nothing) And (Intersect(Target, xRgPre).Address = Target.Address) Then
Вызов Mail_small_Text_Outlook
End If
End If
End Sub
Подпрограмма Mail_small_Text_Outlook()
Dim xOutApp как объект
Dim xOutMail как объект
Dim xMailBody как строка
Установите xOutApp = CreateObject("Outlook.Application")
Установите xOutMail = xOutApp.CreateItem(0)
xMailBody = "Привет" & vbNewLine & _
"Тест vba" _
& vbNewLine & _
«Линия 2».
On Error Resume Next
С xOutMail
.К = ""
.CC = ""
.BCC = ""
.Subject = "Автоматический тест электронной почты"
.Body = xMailBody
.Отображать
Конец с
По ошибке GoTo 0
Установите xOutMail = Ничего
Установите xOutApp = Ничего
У меня проблемы, потому что получателя электронной почты нужно добавлять снова и снова один за другим. Пожалуйста, укажите, можно ли добавить список получателей электронной почты в эту функцию, чтобы функция выбирала адрес электронной почты из списка предоставленных адресов электронной почты или загружала список, и функция отправляла электронное письмо, уже составленное нужному получателю.
Дорогой Генри,
Следующий код VBA может помочь вам решить проблему. Поместите сценарий VBA в модуль рабочего листа. Когда значение в указанной ячейке соответствует условию, появится диалоговое окно Kutools for Excel, выберите ячейки, содержащие адреса электронной почты получателей, а затем нажмите OK Кнопка. Затем открываются электронные письма с указанными получателями. Пожалуйста, пришлите их по мере необходимости.
Привет, я поставил тот же скрипт, но он не работает, пожалуйста, помогите мне в 1-й части
Dim xRg как диапазон
Private Sub Worksheet_Change (ByVal Target As Range)
Если Target.Cells.Count > 1, то выйдите из подпрограммы
Установите xRg = Range ("D7")
Если xRg = Target And Target.Value = 200 Тогда
Вызов Mail_small_Text_Outlook
End If
Дорогой Хосе,
Пожалуйста, попробуйте ниже код VBA. При запуске кода появляется диалоговое окно, выберите диапазон, который вы будете проверять на наличие строки, и нажмите кнопку ОК. если строка не существует, вы получите диалоговое окно с подсказкой. Если строка существует в диапазоне, будет отображаться электронное письмо с указанным получателем, темой и телом.
Как я могу изменить этот код для отправки оценок учеников родителям. Где, если столбец A — это оценка, а столбец B — родительский адрес электронной почты. Я хочу заполнить электронное письмо для каждого ученика с оценкой F.
Дорогой Фрэнк,
Приведенный ниже код VBA может помочь вам решить проблему. Спасибо.
У меня уже есть список адресов электронной почты в файле Excel, как я могу изменить код, чтобы автоматически выбирать адрес электронной почты человека, если его ячейка D7 > 200?
Добрый день,
Следующий код VBA может помочь вам решить проблему. Поместите сценарий VBA в модуль рабочего листа. Когда значение в указанной ячейке соответствует условию, появится диалоговое окно Kutools for Excel, выберите ячейки, содержащие адреса электронной почты получателей, а затем нажмите OK Кнопка. Затем открываются электронные письма с указанными получателями. Пожалуйста, пришлите их по мере необходимости.
Как я могу решить эту проблему?
Добрый день,
Пожалуйста, попробуйте ниже код VBA, чтобы решить проблему.
У меня это не работает, так как значение в D7 является результатом формулы. Что, если ячейка D7 содержит формулу, например, D7 =2*120? Это все еще соответствует условию, но ничего не происходит. Пожалуйста помоги
как остановить запуск кода, т.е. не запрашивать электронное письмо, когда условие не выполняется?
Большое спасибо за размещение этого кода VBA и инструкций. Когда я нашла его, я почувствовала, что выиграла в лотерею. Однако я застрял в чем-то, поэтому я надеюсь, что вы можете помочь (я новичок в VBA, у меня есть только очень базовое понимание).
Я скопировал код и изменил ячейку и значение ячейки, чтобы выбрать из диапазона, если выполняются критерии. Я пробовал и тестировал, и это работает, и я получил электронное письмо в Outlook на основе критериев.
1) Однако я не могу понять, как заставить код VBA запускаться автоматически, когда я открываю лист Excel, вместо того, чтобы щелкать приложение VBA и выбирать «Выполнить». Не могли бы вы посоветовать, есть ли дополнительная подсказка для ввода кода VBA выше, который сделает это, или это нужно делать отдельно.
2) Также есть способ получить код VBA для отправки письма человеку, если для определенного элемента установлен срок «да», как показано в примере ниже.
скрытый столбец электронной почты
Имя и фамилия
Процедура
Срок выполнения процедуры №1 да
№ процедуры 2 срок нет
У меня было бы много людей в электронной таблице (идущей горизонтально подряд), и «Да» можно было бы выделить для различных просроченных процедур (перечисленных вертикально в столбце A. Есть ли способ создать код VBA, который работает для чего-то вроде этого - если «Да» для «Лицо 1», то отправьте электронное письмо «лицу 1» с «номером процедуры» (или номерами) и сроками выполнения. Возможность перечислить в электронном письме все процедуры и их последующие сроки выполнения.
Я бы не возражал, если бы мне пришлось устанавливать отдельный код VBA для каждого человека, если бы он отправлял по почте все документы, просроченные для этого человека, и сроки их выполнения.
Надеюсь, вы можете помочь
Дорогая Анна,
Пожалуйста, попробуйте приведенный ниже код VBA. Спасибо за ваш комментарий.
Это заменяет следующий код:
Дополнительный адрес электронной почты ()
Dim xRg как диапазон
Dim xRgEach как диапазон
Затемнение xEmail_Subject, xEmail_Send_Form и т. д.
Добрый день,
Вам нужно поместить код в окно кода рабочего листа.
Откройте окно Microsoft Visual Basic для приложений, дважды щелкните имя листа на левой панели, чтобы открыть редактор кода.
В настоящее время у меня небольшие проблемы с кодированием (новичок в этом - возможно, я откусил больше, чем могу прожевать)
В настоящее время у меня есть электронная таблица со следующим, что мне нужна помощь для автоматизации и отправки электронной почты по неисправностям, которые находятся в наших свойствах для нашего бизнеса.
В настоящее время мне нужен код, который будет использовать следующие данные:
1) Адрес и проблема ( 2 "общие" ячейки, которые были объединены через ((В ячейке D1)) " = = CONCAT (B1," "C1,)"
Адрес в B1 всегда будет одинаковым (более или менее)
В то время как C1 всегда будет меняться в зависимости от неисправности объекта.
3) Тело письма должно быть заполнено аналогично пункту 1) . ((В ячейке F1)) " =CONCAT(G1," ",H1)
Они будут постоянно меняться, поскольку они представляют компанию (G1) и то, что они делают, исправляют, цитируют и т. д. (H1).
4) Я использовал небольшие фрагменты от других пользователей, которые упомянули об использовании списка для триггера для отправки электронной почты, но не уверен, что на 100% это правильно, но мне нужно, чтобы он сканировал все Collum A. А4: А100
и если есть 47 ячеек, содержащих только « 7 », то будет отправлено 47 электронных писем.
Имеем таблицу в Microsoft Excel, в которой хранится информация о ключевых клиентах нашей компании (адреса эл.почты, имена, названия компаний и т.д.), которых мы хотим поздравить с очередным праздником.
В терминах Microsoft Office такая процедура называется Слиянием (Mail Merge) . Поехали.
Подготовка списка клиентов в Excel
Таблица со списком клиентов для рассылки должна удовлетворять нескольким простым условиям:
- Шапка таблицы должна быть простой - одна строка с уникальными названиями столбцов (без повторений и пустых ячеек).
- В таблице не должно быть объединенных ячеек.
- В таблице не должно быть пустых строк или столбцов (отдельные пустые ячейки допускаются).
Если планируется отправка по электронной почте, то, само-собой, в таблице должен быть столбец с адресами получателей.
Поскольку Excel и Word не смогу сами определить пол клиента по имени, то имеет смысл сделать отдельный столбец с обращением (господин, госпожа и т.п.) или с родовым окончанием (-ый или -ая) для обращения "Уважаемый(ая). " Как вариант, возможно полуавтоматическое определение пола в зависимости от окончания отчества ("а" или "ч"), реализованное функцией ПРАВСИМВ (RIGHT) .
В новых версиях Microsoft Excel 2007/2010 для таких таблиц очень удобно использовать инструмент Форматировать как таблицу (Format as Table) с вкладки Главная (Home) . Подробнее про такие "умные таблицы" можно почитать тут.
Потом запускаем пошаговый Мастер Слияния на вкладке Рассылки (Mailings) кнопкой Начать слияние ( Start Mail Merge ) – Пошаговый мастер слияния (Step-by-Step Merge Wizard) :
В Word 2003 и старше эта команда была доступна в меню Сервис - Письма и рассылки - Мастер слияния (Tools - Letters and Mailings - Mail Merge) .
Этап 1. Выбор типа документа.
Этап 2. Выбор документа
Этап 3. Выбор получателей
На этом шаге мы подключаем список клиентов в Excel к документу Word. Выбираем Использование списка и жмем на Обзор (Browse) , после чего в диалоговом окне открытия файла указываем где лежит наш файл со списком клиентов.
После выбора источника данных, Word позволяет провести фильтрацию, сортировку и ручной отбор записей при помощи окна Получатели слияния:
Этап 4. Создание письма
На этом этапе пользователь должен указать – куда именно в документ должны попасть данные из подключенного списка. Для этого необходимо установить курсор в точку вставки в письме и использовать ссылку Другие элементы - она выводит полный набор всех полей списка, из которого мы и выбираем нужное поле для вставки:
В итоге, после вставки всех полей слияния у нас должно получиться нечто похожее (вставленные поля выделены красным):
Если в исходной таблице не было специального столбца для окончания "ый"/"ая" к слову "уважаем" (как в нашем примере), но был обычный столбец "Пол" с классическими "муж" и "жен", то можно воспользоваться кнопкой Правила (Rules) на вкладке Рассылки (Mailings) :
Эта кнопка открывает список правил (функций и полей), доступных для вставки в документ при создании рассылки. Для подстановки нужного окончания к слову "уважаемый/ая" выберем третий пункт IF. THEN. ELSE. В открывшемся затем окне зададим правило подстановки правильного окончания в зависимости от пола:
Этап 5. Просмотр писем
На этом этапе мы уже можем предварительно просмотреть результаты слияния, используя кнопки со стрелками. При необходимости, также, можно исключить любого получателя из списка.
Этап 6. Завершение слияния
На завершающем этапе возможны несколько вариантов:
Нажатие ссылки Печать (Print) приведет к немедленной отправке всех результатов слияния на принтер без вывода на экран.
Если необходимо сохранить созданные в результате слияния документы для дальнейшего использования или требуется внести ручную правку в некоторые из документов, то лучше использовать ссылку Изменить часть писем (Edit individual letters) , которая выведет результаты слияния в отдельный файл:
Прежде чем начать читать статью прошу принять к сведению объявление: используйте СВОИ АДРЕСА ЭЛ.ПОЧТЫ при тестировании кодов . Не надо отсылать письма на указанные в статье e-mail адреса- это все приходит мне на почту. Помимо этого Вы сами не сможете понять работает или нет, т.к. письма придут мне, а не Вам.
Спасибо за понимание
P.S. А если написанное выше Вы все же проигнорировали и отправили письмо на мои адреса электронной почты - это означает, что Вы соглашаетесь с тем, что вся информация внутри письма, включая вложения, может быть использована мной без ограничений в личных целях.
Отправка через меню Excel
Отправку без кода осуществить достаточно просто:
Далее выбирается способ отправки:
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
Этот код отправляет одно письмо и одно вложение за раз. Но если несколько раз вызвать метод .Attachments.Add, то можно добавить еще файлы:
.Attachments.Add "C:\Temp\Книга1.xlsx" .Attachments.Add "C:\Temp\Книга2.xlsx" .Attachments.Add "C:\Documents\Report.rar"
objOutlookApp.Session.Logon "user","1234",False, True
имеет особое значение. По сути она нужна только в тех случаях, когда в Outlook настроено несколько профилей(не путать с учетными записями) и запускать нужно от конкретного. Если профиль только один или не указан, то Outlook запускается с профилем по умолчанию. Для этого строку нужно записать без параметров(так же можно записать эту строку, если Outlook при попытке создания письма выдает ошибку профиля):
Этот код отправляет одно письмо и вставляет одну картинку. За это отвечает строка
""
Если картинку надо вложить с заранее указанными размерами, то строка будет выглядеть так:
"" 'height - высота 'width - ширина
Если надо добавить несколько картинок, то метод .Attachments.Add sPicture надо будет вызвать столько раз, сколько картинок(для каждого свой путь к картинке).
Важно помнить: пути для картинок должны содержать полный путь до файла, включая его имя и расширение: C:\Документы\Изображения\Excel_vba_ru.jpg . При указании только имени Excel_vba_ru.jpg или пути без расширения ( C:\Документы\Изображения\Excel_vba_ru ) ошибки не будет, но картинка не будет вставлена, а вместо неё скорее всего будет текст "Ошибка загрузки картинки!" или пустой квадрат вместо реальной картинки.
- Outlook 2007 : Меню-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
- Outlook 2010 и выше : Файл-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
ВАЖНО: Если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями, возможность изменения данных настроек безопасности программного доступа будет недоступна.
Но так же при отправке файлов и писем часто необходимо не привязываться к конкретной почтовой программе. Ведь далеко не все ставят Outlook. Многие используют иные почтовые программы, например TheBat.
Данный код отправляет письмо, используя объект CDO (Collaboration Data Objects - присутствует во всех версиях Windows) и от имени Вашей учетной записи(либо Яндекс, либо Мэйл, либо Рамблер либо др.).
Это основные моменты. Поля Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.
Чтобы использовать данный код вы можете либо просто скопировать его прямо со страницы, либо скачать файл. В файле программа немного упрощена к использованию - в ячейки листа вам необходимо будет внести поля: Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) и выбрать SMTPserver. SMTPserver выбирается из выпадающего списка. Сам список является динамическим и расположен на листе "Settinngs". Там же расположены поля Учетной записи и Пароль, которые автоматически подставляются в необходимые поля на листе "Отправка". Т.к. список динамический Вы можете просто добавлять к уже имеющимся новые сервисы и потом просто выбирать их из списка. Так же в файле есть еще одна возможность - выбрать файл. Для этого надо просто нажать на кнопку и выбрать файл.
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 ". И указывать обязательно в треугольных скобках: " "
внутри же самого письма в том месте, где должна отображаться картинки надо записать:
в приведенном выше коде картинка вставляется в самом начале письма и после неё так же добавляется перенос на новую строку при помощи тэга
Читайте также: