С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
1

Почему не вставляется картинка из моей подписи?

03.10.2017, 07:06. Просмотров 883. Ответов 13
Метки нет (Все метки)

Подпись вставляется превосходно, но вот на месте картинки только крестик.

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
Function findMySign()
    Dim mySigPath As String, fso As Object, f As Object, _
    sType As String, sFold As Object
    mySigPath = getMySigPath()    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sFold = fso.GetFolder(mySigPath)
    mySigPath = mySigPath & Dir(mySigPath & "*.htm")
    Set f = fso.GetFile(mySigPath).OpenAsTextStream(1, -2)
    findMySign = f.readall
    f.Close
End Function
 
Sub test2()
    Dim myEmail As Outlook.MailItem
    
    Application.Session.Logon
    Set myEmail = Application.CreateItem(olMailItem)
        With myEmail
            .To = "ваша почта"
            .Subject = "Тест"
            On Error Resume Next
            .BodyFormat = olFormatHTML
            .HTMLBody = "<html><font size=""3"" color=""black"" face=""Segoe UI""><body>Текст письма</body></font><br>" & findMySign()
            .Send
        End With
End Sub
0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2017, 07:06
Ответы с готовыми решениями:

Почему новый макрос вставляется рядом со старым?
Создаю новый макрос в Excel ('Сервис/Макрос/Начать запись'). Затем захожу в...

Картинка не вставляется
Здрасте! Скажите: почему вот это #box...

Не вставляется картинка
&lt;div id=&quot;logo&quot;&gt;&lt;/div&gt; &lt;div id=&quot;search&quot;&gt;&lt;/div&gt; &lt;div...

Не вставляется картинка
Private Sub Command2_Click() x = Val(Text1.Text) Select Case x Case 1...

Не вставляется картинка
Не могу понять почему картинка не загружается, делаю все на денвере. &lt;ul...

13
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
03.10.2017, 08:38 2
Не видя файла с подписью можно только предполагать, например могли возникнуть проблемы из-за ссылки на картинку.
0
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
03.10.2017, 09:14  [ТС] 3
Homarty, прикрепил, посмотрите.
0
Вложения
Тип файла: rar Signatures.rar (15.0 Кб, 6 просмотров)
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
03.10.2017, 15:11  [ТС] 4
Я нашёл причину, и дело оказалось в том, что функция получает файл 1.htm, где указан файл image002.png, в то время как в папке по факту имеется лишь image001.png

А вот как такое могло получиться, и почему при отправке обычным способом указывается правильный файл - вопрос.
0
Миниатюры
Почему не вставляется картинка из моей подписи?  
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
03.10.2017, 15:16  [ТС] 5
А нет, не угадал, картинка указывается в этой строке
HTML5
1
<v:imagedata src="1.files/image001.png" o:href="cid:image005.png@01D33165.35DB51A0"/>
И указывается правильная картинка.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
03.10.2017, 23:10 6
Так пойдет?
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
Function AddMySign(sBody As String)
    Dim mySigPath As String, fso As FileSystemObject, f As TextStream, _
        sType As String, sFold As Folder
    Dim s$, i&, ss$
    mySigPath = getMySigPath()
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sFold = fso.GetFolder(mySigPath)
    mySigPath = mySigPath & Dir(mySigPath & "*.htm")
    Set f = fso.GetFile(mySigPath).OpenAsTextStream(1, -2)
    s = f.readall
    f.Close
    ss = "<div class=Section1>"
    i = InStr(1, s, ss, vbTextCompare) + Len(ss) + 3
    findMySign = Left(s, i) & "<p class=MsoNormal>" & sBody & "</p>" & _
        vbCrLf & vbCrLf & Right(s, Len(s) - i)
End Function
 
Sub test2()
    Dim myEmail As Outlook.MailItem
    Application.Session.Logon
    Set myEmail = Application.CreateItem(olMailItem)
    With myEmail
        .To = "ваша почта"
        .Subject = "Тест"
        On Error Resume Next
        .BodyFormat = olFormatHTML
        .HTMLBody = AddMySign("Текст письма")
        .Send
    End With
End Sub
0
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
04.10.2017, 04:00  [ТС] 7
Цитата Сообщение от Homarty Посмотреть сообщение
Так пойдет?
Ошибка на объявлении fso. Такая же возникает на объявлении f, если типом fso сделать Object.
0
Миниатюры
Почему не вставляется картинка из моей подписи?  
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
04.10.2017, 13:03 8
Понятно, в таком случае переменные fso, sFold и f объявите типом object или variant. Все должно заработать.

Добавлено через 11 минут
Или в references подключите ссылку на "microsoft scripting runtime".
0
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
05.10.2017, 05:28  [ТС] 9
Homarty, любопытно, что после подключения Microsoft scripting runtime код отработался, письмо ушло, но...
оно было абсолютно пустое.

Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub test_Mail()
    Dim myEmail As Outlook.MailItem
    
    Application.Session.Logon
    Set myEmail = Application.CreateItem(olMailItem)
        With myEmail
            .To = "моя почта"
            .Subject = "Тест"
            On Error Resume Next
            .BodyFormat = olFormatHTML
            .HTMLBody = "<html><font size=""3"" color=""black"" " & _
            "face=""Segoe UI""><body>Текст письма</body></font><br>" & getMySign()
            .Send
        End With
End Sub
При формировании тела письма просмотр доходит до функции:
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
Function getMySign()
' it works
    Dim mySigPath As String, fso As FileSystemObject, f As TextStream, _
    sType As String, sFold As Folder
    Dim s$, i&, ss$
    mySigPath = getMySignPath()
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sFold = fso.GetFolder(mySigPath)
    mySigPath = mySigPath & Dir(mySigPath & "*.htm")
    Set f = fso.GetFile(mySigPath).OpenAsTextStream(1, -2)
    s = f.readall
    f.Close
    ss = "<div class=Section1>"
    i = InStr(1, s, ss, vbTextCompare) + Len(ss) + 3
    findMySign = Left(s, i) & "<p class=MsoNormal>" & sBody & "</p>" & _
    vbCrLf & vbCrLf & Right(s, Len(s) - i)
'    Dim mySigPath As String, fso As Object, f As Object, _
'    sType As String, sFold As Object
'    mySigPath = getMySignPath()
'    Set fso = CreateObject("Scripting.FileSystemObject")
'    Set sFold = fso.GetFolder(mySigPath)
'    mySigPath = mySigPath & Dir(mySigPath & getMySignType())
'    Set f = fso.GetFile(mySigPath).OpenAsTextStream(1, -2)
'    getMySign = f.readall
'    f.Close
End Function
Доходит до строки 8 и...
сразу возвращается в test_Mail к .Send
У меня утро сегодня странное какое-то. Всё не работает как должно.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
05.10.2017, 10:26 10
В тексте программы которую прислал я есть ошибка, в строке
Visual Basic
1
2
findMySign = Left(s, i) & "<p class=MsoNormal>" & sBody & "</p>" & _
        vbCrLf & vbCrLf & Right(s, Len(s) - i)
нужно заменить findMySign на AddMySign. У себя я тестировал с другими названиями. Хотя ошибка не очень сложная и можно было надеятся что вы ее обнаружите и исправите самостоятельно.
Что касается приведенного вами кода, - это ваш код, думаю что вы имеете представление что и с какой целью пишете в программе, протестируйте и проанализируйте написанное.

Добавлено через 35 минут
В функции getMySign() вы не присвоили значение перед выходом. В процедуре test_Mail() непонятно оформлено тело сообщения, т.к. подпись сгенерирована Вордом в формате готовой html страницы, то для добавления подписи нужно вносить в нее необходимые изменения или использовать редактор Ворда, вносить изменения, сохранить в html-файле и отправлять сгенерированный код. Либо написать свою собственную html-заготовку подписи и на ее основе формировать готовый html код.
0
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
06.10.2017, 09:54  [ТС] 11
Цитата Сообщение от Homarty Посмотреть сообщение
Хотя ошибка не очень сложная и можно было надеятся что вы ее обнаружите и исправите самостоятельно
Просмотр просто не доходит до этой ошибки, на строке 8 просмотр останавливается, хотя к этому предпосылок нет. Я потому дальше и не смотрел.

Понял я в чём дело. Меня опять оператор On Error Resume Next с толку сбил, выключил его, и нашёл ошибку: вы объявили sFold как папку, и хотя на msdn и написано, что GetFolder() возвращает папку, здесь возникает ошибка. Объявил как объект - прошло нормально. В итоге, ваш вариант тоже не тянет картинку из папки. Ставлю ссылку на фотохостинг - тянет.

Добавлено через 3 часа 31 минуту
Посмотрел код двух писем, одного, отправленного из программы, обычным путём (картинка отображается), второго, отправленного с помощью макроса (картинки нет).
С картинкой (из Outlook)
Visual Basic
1
X-MS-Has-Attach: yes
Без картинки (из кода)
Visual Basic
1
X-MS-Has-Attach:
Как видим, здесь явное указание на использование вложения. Здесь требуется, вероятно, указать в заголовке использование вложения.
Я попытался это сделать:
Visual Basic
1
2
Dim fileAttach As Outlook.Attachment
Set fileAttach = myEmail.Attachments.Add("C:/Users/Jarit/AppData/Roaming/Microsoft/Signatures/mySign.files/image001.png", 1, 0)
И, хотя заголовок X-MS-Has-Attach: и приобрёл статус yes, картинка так и не отобразилась.
Для чистоты эксперимента, я удалил старую подпись, и добавил новую. Ничего не изменилось.
Возможно ответ нашёлся бы, будь у меня возможность прочитать тот код, который формирует сам Outlook.

Добавлено через 28 минут
Нарыл, кажется, кое-что ещё.
Функция getMySign() получает содержимое htm-файла подписи. И я посмотрел это содержимое:
HTML5
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 4"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 5"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 5"/>
  <w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 6"/>
  <w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
  <w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
  <w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 6"/>
  <w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 6"/>
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
    {font-family:"Cambria Math";
    panose-1:2 4 5 3 5 4 6 3 2 4;
    mso-font-charset:1;
    mso-generic-font-family:roman;
    mso-font-pitch:variable;
    mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
    {font-family:Calibri;
    panose-1:2 15 5 2 2 2 4 3 2 4;
    mso-font-charset:204;
    mso-generic-font-family:swiss;
    mso-font-pitch:variable;
    mso-font-signature:-536859905 -1073732485 9 0 511 0;}
@font-face
    {font-family:"Segoe UI Light";
    panose-1:2 11 5 2 4 2 4 2 2 3;
    mso-font-charset:204;
    mso-generic-font-family:swiss;
    mso-font-pitch:variable;
    mso-font-signature:-469750017 -1073683329 9 0 511 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
    {mso-style-unhide:no;
    mso-style-qformat:yes;
    mso-style-parent:"";
    margin:0cm;
    margin-bottom:.0001pt;
    mso-pagination:widow-orphan;
    font-size:11.0pt;
    font-family:"Calibri",sans-serif;
    mso-ascii-font-family:Calibri;
    mso-ascii-theme-font:minor-latin;
    mso-fareast-font-family:"Times New Roman";
    mso-fareast-theme-font:minor-fareast;
    mso-hansi-font-family:Calibri;
    mso-hansi-theme-font:minor-latin;
    mso-bidi-font-family:"Times New Roman";
    mso-bidi-theme-font:minor-bidi;}
a:link, span.MsoHyperlink
    {mso-style-noshow:yes;
    mso-style-priority:99;
    color:#0563C1;
    mso-themecolor:hyperlink;
    text-decoration:underline;
    text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
    {mso-style-noshow:yes;
    mso-style-priority:99;
    color:#954F72;
    mso-themecolor:followedhyperlink;
    text-decoration:underline;
    text-underline:single;}
.MsoChpDefault
    {mso-style-type:export-only;
    mso-default-props:yes;
    font-size:11.0pt;
    mso-ansi-font-size:11.0pt;
    mso-bidi-font-size:11.0pt;
    mso-ascii-font-family:Calibri;
    mso-ascii-theme-font:minor-latin;
    mso-fareast-font-family:"Times New Roman";
    mso-fareast-theme-font:minor-fareast;
    mso-hansi-font-family:Calibri;
    mso-hansi-theme-font:minor-latin;
    mso-bidi-font-family:"Times New Roman";
    mso-bidi-theme-font:minor-bidi;}
@page WordSection1
    {size:612.0pt 792.0pt;
    margin:2.0cm 42.5pt 2.0cm 3.0cm;
    mso-header-margin:36.0pt;
    mso-footer-margin:36.0pt;
    mso-paper-source:0;}
div.WordSection1
    {page:WordSection1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
    {mso-style-name:"Обычная таблица";
    mso-tstyle-rowband-size:0;
    mso-tstyle-colband-size:0;
    mso-style-noshow:yes;
    mso-style-priority:99;
    mso-style-parent:"";
    mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
    mso-para-margin:0cm;
    mso-para-margin-bottom:.0001pt;
    mso-pagination:widow-orphan;
    font-size:11.0pt;
    font-family:"Calibri",sans-serif;
    mso-ascii-font-family:Calibri;
    mso-ascii-theme-font:minor-latin;
    mso-hansi-font-family:Calibri;
    mso-hansi-theme-font:minor-latin;
    mso-bidi-font-family:"Times New Roman";
    mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</head>
 
<body lang=RU link="#0563C1" vlink="#954F72" style='tab-interval:35.4pt'>
 
<div class=WordSection1>
 
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'>Ярослав
Игоревич Чикал </span></b><span lang=EN-US style='font-size:10.0pt;font-family:
"Segoe UI Light",sans-serif;mso-ansi-language:EN-US'>| </span><span
style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'>Заместитель
начальника отдела ТОИТИ<o:p></o:p></span></p>
 
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'>Ханты-Мансийский
филиал «ЦРТ Сервис», г. Когалым</span><span lang=EN-US style='font-size:10.0pt;
font-family:"Segoe UI Light",sans-serif;mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'><!--[if gte vml 1]><v:shapetype
 id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
 path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:79.5pt;
 height:21pt'>
 <v:imagedata src="mySign.files/image001.png" o:title="Maykor Label"/>
</v:shape><![endif]--><![if !vml]><img width=106 height=28
src="mySign.files/image001.png" v:shapes="_x0000_i1025"><![endif]><o:p></o:p></span></p>
 
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'><o:p>&nbsp;</o:p></span></p>
 
<p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif;
mso-ansi-language:EN-US'><a href="mailto:Yaroslav.chikal@lukoil.com">Yaroslav.chikal@lukoil.com</a>
|</span><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'>
т: +7&nbsp;902&nbsp;692 05 39<o:p></o:p></span></p>
 
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'><a
href="http://maykor.com/">www.maykor.com</a><o:p></o:p></span></p>
 
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Segoe UI Light",sans-serif'><o:p>&nbsp;</o:p></span></p>
 
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Segoe UI Light",sans-serif;
color:#BFBFBF'>MAYKOR – общероссийский поставщик услуг в области аутсорсинга
ИТ- и бизнес-процессов. Сегодня MAYKOR – это крупнейшая сеть филиалов,
квалифицированные сотрудники и мощная ресурсная база во всех регионах России.</span><o:p></o:p></p>
 
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
 
</div>
 
</body>
 
</html>
Как здесь видно, оно сверху, как мне кажется, обрезано, поскольку мы видим закрывающий тэг
HTML5
1
<![endif]-->
, но не видим открывающего.

Добавлено через 24 минуты
Да, дело именно в этом. Открыл браузером исходный .htm - увидел подпись, как она должна быть. Открыл содержимое полученной подписи увидел подпись, но без картинки. Значит дело в том, что функция либо получает подпись урезанной, либо режет её.

Добавлено через 5 минут
На MSDN аж три страницы посвящено методу ReadAll, но нормального описания этого метода нет ни на одной.

Добавлено через 1 минуту
Потеряно 611 строчек сверху, по сравнению с исходным файлом.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
08.10.2017, 18:53 12
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
Function AddMySign(sBody As String) As String
    Dim mySigPath As String, fso As FileSystemObject, f As TextStream, _
        sType As String, sFold As Folder
    Dim s$, i&, ss$
    mySigPath = getMySigPath()
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sFold = fso.GetFolder(mySigPath)
    mySigPath = mySigPath & Dir(mySigPath & "*.htm")
    Set f = fso.GetFile(mySigPath).OpenAsTextStream(1, -2)
    s = f.readall
    f.Close
    ss = "<div class=Section1>"
    i = InStr(1, s, ss, vbTextCompare)   Len(ss)   4
    s = Left(s, i - 1) & "<p class=MsoNormal>" & sBody & "</p>" & _
        vbCrLf & vbCrLf & Right(s, Len(s) - i   1)
    Dim s2$
    'Здесь открывается и считывается файл SignLogo.txt, нужно указать его полный путь
    Set f = fso.GetFile("d:\SignLogo.txt").OpenAsTextStream(1, -2)
    s2 = f.readall
    f.Close
    ss = "1.files/image001.png"
    i = InStr(1, s, ss, vbTextCompare)
    Do While i
        s = Left(s, i - 1) & s2 & Right(s, Len(s) - i - Len(ss)   1)
        i = i   1
        i = InStr(1, s, ss, vbTextCompare)
    Loop
    AddMySign = s
End Function
 
Sub test2()
    Dim myEmail As Outlook.MailItem
    Application.Session.Logon
    Set myEmail = Application.CreateItem(olMailItem)
    With myEmail
        .To = "ваша почта"
        .Subject = "Тест"
        On Error Resume Next
        .BodyFormat = olFormatHTML
        .HTMLBody = AddMySign("Текст письма")
        .Send
    End With
End Sub
Здесь требуется файл SygnLogo.txt (см. вложение).
Имеется одна загвоздка, чтобы удовлетворить ваше настойчивое желание мне пришлось встроить картинку в html-код. Как будет отображаться страница на приеме я не знаю, могу лишь заметить, что Опера и Хром сгенерированный код отображают нормально, а IE 9 - нет.
Отправлять картинку во вложении и затем внедрять ее в сообщение проблематично, т.к. неизвестно что делает со вложениями приемная сторона. Можно подгружать изображение из сети но до этого вы уже додумались самостоятельно.
Пожалуй все, и еще, наверное больше не стоит "копать" этот вопрос, граничащий с обычным кодированием и хакерством, для этого есть соответствующие ветки форума и хакерские сайты. Где все ваши "хотелки" будут, возможно, исполнять.
Не могу загрузить файл требуют какой-то маркер безопасности.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
08.10.2017, 19:02 13
По-моему загрузилось, какой индюк сидит и отслеживает мой трафик?
0
Вложения
Тип файла: txt SignLogo.txt (9.2 Кб, 3 просмотров)
SrgKord
45 / 27 / 2
Регистрация: 14.02.2013
Сообщений: 617
11.10.2017, 05:03  [ТС] 14
Цитата Сообщение от Homarty Посмотреть сообщение
наверное больше не стоит "копать" этот вопрос, граничащий с обычным кодированием и хакерством
Не могу согласиться с таким определением предпринятых исследований. Ведь хакерство в данном контексте это что? Это принуждение Outlook сделать то, к чему он не предназначен, либо то, что явно запрещено разработчиком. Но ведь отправлять картинку в подписи Outlook умеет по-умолчанию, а ничего другого я сделать и не пытаюсь. Я же всего лишь пытаюсь без ошибок автоматизировать стандартные функции Outlook.
Вот если б я пытался заставить Outlook приёмной стороны выполнить какие-то скрипты, переданные с теле сообщения, или если б я пытался заставить Outlook воспроизводить анимацию или видео, то это можно было бы назвать хакерством.
Так или иначе, работу над подписью я пока отложил, ваш пример я проверю позже, сейчас у меня другой вопрос на повестке.
0
11.10.2017, 05:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2017, 05:03

не вставляется картинка в пикчербокс
не вставляется картинка в пикчербокс, строку где выдает ошибку выделил ...

Программа WebCoder - не вставляется картинка
Пишу тег а рисунок не вставляется &lt;body&gt; &lt;img src=&quot;D:\äîêóìåíòû\Ìîè...

Не вставляется картинка. Вместо неё квадрат
&lt;IMG scr=&quot;Okno.png&quot; /&gt; картинка лежит в папке с документом. Пробовал...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru