Страницы: 1
RSS
Рассылка писем Outlook с шаблоном из Excel
 
Добрый день, ув. Форумчане!

Требуется разослать шаблон письма по списку адресов, которые расположены на листе Excel.
Шаблон расположен в файле *htm. Для рассылки использую простой макрос:
Код
Sub SendMail()
Dim objOL As Outlook.Application
Dim objMail As MailItem
Set objOL = Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
    .To = "ddd@penobet.ru" '"здесь указывается адрес получателя письма"
    .CC = "" '"здесь указывается адрес получателя копии"
    .Body = T '"Текст письма"               'указывается текст письма
    .Subject = "Тема письма"             'указывается тема письма
    .Attachments.Add "d:\Шаблон.htm"   'указывается полный путь к файлу
    .Display
End With
Set objMail = Nothing
Set objOL = Nothing
End Sub

Но при таком варианте шаблон прикрепляется к письму как вложенный файл.
Вопрос: как поместить шаблон непосредственно в тело письма Outlook?
Буду благодарен за любую помощь или совет.

 
что значит "поместить шаблон непосредственно в тело письма Outlook"? Нужен именно текст в htm файле и он для всех получателей одинаковый?  
Тогда может просто его скопировать в .Body=
Изменено: pantel1987 - 17.04.2020 15:07:59
 
Считываете htm. Потом считанную строку вставляете в objMail.HTMLBody.
 
Код
Set objMail = objOL.CreateItemFromTemplate("d:\Шаблон.htm")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
pantel1987 написал:
Тогда может просто его скопировать в .Body=
Он копируется вместе с тегами (как текст), а это не то, что нужно.
 
Цитата
МатросНаЗебре написал:
Считываете htm. Потом считанную строку вставляете в objMail.HTMLBody.
Благодарю! Это в целом сработало, но рисунки почему-то не подгружаются (
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Set objMail = objOL.CreateItemFromTemplate("d:\Шаблон.htm")
Благодарю за ответ! Напишите, пожалуйста, по-подробнее. При вставке данной строки в код появилась ошибка "Не удалось найти файл".
При том файл по указанному адресу существует.
 
Рисунки надо во вложения добавить
Код
.Attachments.Add
 
Цитата
МатросНаЗебре написал:
Рисунки надо во вложения добавитьКод ? 1.Attachments.Add
Не совсем Вас понял.
1. Разве информация о рисунках не содержится в самом файле htm и не должна загружать автоматом?
2. При .Attachments.Add необходимо указывать путь к рисункам, а информация о них, повторюсь, в самом файле htm
 
1. В этом варианте не содержится и не будет подгружаться автоматом.
2. Да.  При .Attachments.Add указываете полные имена вместе с путями.

А в HTMLBody указываете только имена. Вроде бы.
 
Цитата
МатросНаЗебре написал:
1. В этом варианте не содержится и не будет подгружаться автоматом.
Я конечно далек от этой темы, но при открытии в браузере htm документа, который находится на жестком диске, рисунки отображаются. Т.е. браузер "понимает" откуда их взять. Следовательно и Outlook может это "понять".
 
И вот Вы отправили письмо, в котором указан путь к картинке, скажем "С:\Важное\Работа\Бабы\Анжела.jpg".
Письмо приходит к другому пользователю. И тот Outlook начинает понимать, что у него на компьютере такой картинки нет . Хотя шанс есть :)

А если серьёзно. Сделайте, как написано выше.
Вставьте в Attachments картинки, указав полное имя.
А в тексте HTMLBody вместо полных имён оставьте только имена.
Ну или добейте вариант с CreateItemFromTemplate.
 
Буду добивать.
В любом случае благодарю, что уделили время!
Страницы: 1
Наверх