Outlook как корректно переслать сообщение

Программирование на Visual Basic for Applications
ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Outlook как корректно переслать сообщение

Сообщение ilya_d » 12.11.2008 (Ср) 21:16

Здравствуйте!!!
И так имеем Outlook office 2003
Задача переслать некоторое входящие сообщение (ну или какое-то другое).
Код: Выделить всё

Sub sendmail()
Dim message As MailItem
Dim mail As MailItem

'Ну конечно здесь будут всякие умные проверки и т.д. не о том разговор
Set message = Application.Explorers.item(1).Selection.item(1)
Set mail = Application.CreateItem(olMailItem)
mail.Recipients.Add ("my@derevnya.ru")
mail.Subject = message.Subject
mail.BodyFormat = olFormatHTML
mail.HTMLBody = message.HTMLBody
mail.Send
End Sub



Проблема в том что в теле исходного письма имеется картинка, а в отправленном получается только рамка (дырка от бублика), следовательно начинаем изучать message и видим что:

message.Attachments.item1.filename -> FileName : "image001.jpg" : String : Module1.sendmail

оказывается мы имеем вложенную картинку?!
но вопрос как присобачить (извините за выражение) ее к новому письму.

mail.Attachments.add () - это оно понятно, но надеюсь, Вы мне не предложите сохранить файл на диск
а потом его загрузить, типа:

Код: Выделить всё
Dim path As String
path = "C:\" + message.Attachments.item(1).FileName
message.Attachments.item(1).SaveAsFile (path)
mail.Attachments.Add (path)


Потому что результат получится несколько другой. (((((((

Спасибо всем кто ответит, ну или, хотя бы посочувствует.
Последний раз редактировалось ilya_d 13.11.2008 (Чт) 11:00, всего редактировалось 1 раз.

ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Re: Outlook как корректно переслать сообщение

Сообщение ilya_d » 12.11.2008 (Ср) 21:30

Если написать такой код

Код: Выделить всё
mail.Attachments.Add(path, message.Attachments.item(1).Type, message.Attachments.item(1).Position, message.Attachments.item(1).DisplayName) = message.Attachments.item(1)


получаем опять только рамку!?
смысл mail.Attachments.Add() вот этого я не понимаю = message.Attachments.item(1)

т.е. требуется "=" а что подставить я понятие не имею?

ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Re: Outlook как корректно переслать сообщение

Сообщение ilya_d » 12.11.2008 (Ср) 21:41

Возможно, я не совсем ясно выразился картинка (а так же диван, чемодан, саквояж, корзинка, картонка и маленькая собачонка ) не вложение в письмо, а в тексте письма находится.
Последний раз редактировалось ilya_d 13.11.2008 (Чт) 11:01, всего редактировалось 1 раз.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Outlook как корректно переслать сообщение

Сообщение Debugger » 12.11.2008 (Ср) 22:00

Думаешь, тебе так быстро помогут?
А что, если бы ты аттачил не картинку, а ZIP-архив, как бы ты поступил?
Если я не ошибаюсь, если твою картинку зовут "IMG.jpg", то в тело письма достаточно вставлять "<img src='IMG.jpg' />' соответственно.
А сейчас за крики о помощи периодичностью в 11 минут - рекорд сейчас поймаешь предупреждение.
P.S. про-инглишмен, что за бред в последнем сообщении:
Help, not just anybody HELP!

ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Re: Outlook как корректно переслать сообщение

Сообщение ilya_d » 12.11.2008 (Ср) 23:08

спасибо на добром слове
достаточно вставлять "<img src='IMG.jpg' />' соответственно


вот можно для даунов, подробнее.
т.е. это как> mail.Body = message.Body + "<img src='IMG.jpg' />'

ну не дружу с html и англицким и с головой видимо тож, ну не вешаться

ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Re: Outlook как корректно переслать сообщение

Сообщение ilya_d » 12.11.2008 (Ср) 23:30

Тихо сам с собою я веду беседу.
Если есть входящее сообщение, в котором есть картинка, и она отображается следовательно она где лежит,
путем "научного тыка" определил

src="cid:image001.jpg@01C944F2.B13450E0" - видимо энто-то место
(но почему одна вилка?)
замена этой Байды на
src="С:\image001.jpg" - (т.е. то заветное место, куда мы сохранили наш драгоценный файл.)

но если файл уже существует, то на кой болт его еще раз сохранять???

Спасибо.
[Viper] :: Научись таки пользоваться кнопкой "Правка" и прочитай Правила. На первый раз предупреждение устное!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Outlook как корректно переслать сообщение

Сообщение iGrok » 13.11.2008 (Чт) 0:28

Научись пользоваться кнопой "правка", а? Это же не трудно..

UPD:
И не жди моментальной реакции.
А посты с интервалом менее часа вообще по-моему в правилами запрещены..
label:
cli
jmp label

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Outlook как корректно переслать сообщение

Сообщение Sebas » 13.11.2008 (Чт) 9:57

Function Forward() As MailItem
Member of Outlook.MailItem
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

ilya_d
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.11.2008 (Ср) 20:42

Re: Outlook как корректно переслать сообщение

Сообщение ilya_d » 13.11.2008 (Чт) 11:17

Спасибо Sebas Outlook.MailItem.Forward или Outlook.MailItem.Copy сразу не допер, сорри.

Остальным: нечего сказать - сиди молчи.

to Debugger
передавай привет богу, куда мне с диатезом?

Всем спасибо, все свободны!
P.S. через год мне ответ не нужен.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Outlook как корректно переслать сообщение

Сообщение alibek » 13.11.2008 (Чт) 11:42

ilya_d, меньше горячности, либо ты тут не задержишься.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92

    TopList