Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/56: Рейтинг темы: голосов - 56, средняя оценка - 4.57
4 / 4 / 1
Регистрация: 14.10.2012
Сообщений: 95

Картинка в теле письма Outlook 2013 не отображается в других почтах

16.07.2014, 12:37. Показов 11851. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

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

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

Пробовал вручную вставить картинки через Вставка-картинка и отправлял себе на яндекс. Все видно отлично. А как программно сделать не знаю.

Могли бы помочь? Могу отблагодарить.


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub send_report_mail()
 
Application.ScreenUpdating = False
 
    Dim OutApp As Object
    Dim OutMail As Object
    Dim mail_comments As String
    Dim TempFilePath As String
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
 
    On Error Resume Next
 
    With OutMail
        .To = "mymail@yandex.ru"
        .CC = ""
        .BCC = ""
        .Subject = "Ежедневный отчет план-факт"
        
        .Attachments.Add "C:\main_chart.jpg"
        .Attachments.Add "C:\trend_chart.jpg"
        .Attachments.Add thefilename
        
        .HTMLBody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=4>" _
& "Уважаемые коллеги! <br><br>" _
& "<img src='cid:main_chart.jpg' & width='700'><br><br>" _
& "<img src='cid:trend_chart.jpg' & width='700'><br><br>"
 
        '.Display
        .Send
    End With
    On Error GoTo 0
 
    Set OutMail = Nothing
    Set OutApp = Nothing
    
Debug.Print "Action performed on " & Date & " at " & Time
 
Application.ScreenUpdating = True
 
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2014, 12:37
Ответы с готовыми решениями:

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

Outlook 2010 теле письма не отображает картинки
Добрый день. Мучаюсь уже неделю с outlook 2010, до этого был 2007 офис, все нормально работало, но в определенный момент на почту стали...

Отображение изображения в теле письма (Outlook 2010)
доброго времени суток. возникла такая проблема. сотрудники фирмы желают чтобы вложенное изображение отображалось непосредственно в теле...

7
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
16.07.2014, 15:01
Лучший ответ Сообщение было отмечено alexmosc как решение

Решение

alexmosc, для начала уберите On Error Resume Next, тогда сразу увидите, что и строка .Attachments.Add thefilename лишняя (или это переменная в которой у вас что хранится?). Ну и On Error GoTo 0 тоже в топку. Запустите, посмотрите есть ли какие ошибки, может просто картинок нет на месте?

PS, проверил на рамблере, в аутлуке письма выглядят нормально, в яндексе не отображаются в теле письма картинки, но во вложениях есть
1
4 / 4 / 1
Регистрация: 14.10.2012
Сообщений: 95
16.07.2014, 16:20  [ТС]
Спасибо, korvindeson!

Я уже несколько дней тупил. Сделал как вы посоветовали: удалил обработку ошибок и неиспользуемые переменные (стандартный код брал в интернетах). И еще добавил ширину+высоту для картинок. Теперь все работает!!! Картинки должны быть присоединены как аттач, а потом через img src подтянуты в тело письма (это для outlook 2013). Теперь они действительно уходят из аттача и переходят в тело письма, как я и хотел. В яндексе отображаются, как и в thunderbird.

Работающий код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub send_report_mail()
 
Application.ScreenUpdating = False
 
    Dim OutApp As Object
    Dim OutMail As Object
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
 
    With OutMail
        .To = "mymail@yandex.ru"
        .CC = ""
        .BCC = ""
        .Subject = "..."
        
        .Attachments.Add "C:\main_chart.jpg"
        .Attachments.Add "C:\trend_chart.jpg"
        .Attachments.Add thefilename     'Это отдельный файл, формируемый в другой процедуре.
        
        .HTMLBody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=4>" _
& "текст письма! <br><br>" _
& "<img src='cid:main_chart.jpg' & height='639' width='974'><br><br>" _
& "<img src='cid:trend_chart.jpg' & height='639' width='974'>"
 
' Обработка действия от дня недели
 
    If Weekday(Now, 2) >= 6 Then
        .Send
    Else
        .Display
    End If
    
    End With
 
    Set OutMail = Nothing
    Set OutApp = Nothing
    
Debug.Print "Action performed on " & Date & " at " & Time
 
Application.ScreenUpdating = True
 
End Sub
Добавлено через 34 минуты
Поспешил радоваться!

Оказывается, когда я увидел таки картинки в письме я через макрос вызвал команду .Display и затем мышкой отправил письмо. А если макросом отправлять .Send, то картинки опять не видны! Вот это загогулина.

Более того, теперь я решил обойти эту странность и сделал последовательно:
.Display
.Send

И вижу: первая картинка вставилась в тело, а вторая нет и осталась висеть в аттаче. Why?

Добавлено через 8 минут
Может, не хватает времени секунду-другую на подгрузку изображения из аттача в тело?
0
0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 5
17.10.2016, 13:34
Доброго дня!
В итоге удалось решить проблему?
0
4 / 4 / 1
Регистрация: 14.10.2012
Сообщений: 95
17.10.2016, 15:06  [ТС]
Да, решили!
0
0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 1
03.11.2016, 18:06
alexmosc, не подскажите ли решение проблемы? А то столкнулся с такой же проблемой....
0
4 / 4 / 1
Регистрация: 14.10.2012
Сообщений: 95
03.11.2016, 19:16  [ТС]
Это было давно и я уже не пользуюсь этими штуками. Но приведу кусок кода, который работал у меня...

Visual Basic
1
2
3
4
5
6
7
8
.Attachments.Add "...\main_chart.jpg"
        .Attachments.Add "...\trend_chart.jpg"
        .Attachments.Add thefilename
        
        .htmlbody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=4>" _
& "<img src='cid:main_chart.jpg' & height='600' width='900'><br><br>" _
& "<img src='cid:trend_chart.jpg' & height='600' width='900'>"
0
5 / 5 / 2
Регистрация: 21.12.2015
Сообщений: 14
05.10.2017, 10:12
Спасибо, alexmosc! (жмет руку)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2017, 10:12
Помогаю со студенческими работами здесь

MS Outlook 2007: Как применить форматирование ко всем фотографиям, находящимся в теле письма
Доброго всем времени суток! Вопрос заключается в следующем: возможно ли применить форматирование фотографий каким-либо образом ко всем...

Как прописать в теле отправляемого через CDONTS письма тэг <img...>, чтобы картинка была видна у клиента?
Добрый день! Подскажите, плз, как прописать в теле отправляемого через CDONTS письма тэг &lt;img...&gt;, чтобы картинка была видна у...

Вставка письма Outlook Item неверно отображается
Outlook 2007. Помогите разобраться в такой ситуации: Создаю новое письмо, выбираю скрепку, нахожу сохраненное письмо в виде &quot;Outlook...

Не отображается картинка в DataGridView (Visual Studio 2013)
Добрый вечер! В свойстве колонки таблицы я установила картинку, но на таблице вместо изображения значок error. Как отобразить картинку? ...

Не отображается картинка в DataGridView (Visual Studio 2013)
Добрый вечер! В свойстве колонки таблицы я установила картинку, но на таблице вместо изображения значок error. Как отобразить картинку? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru