Отправка мэйла с помощью VBA (макроса)

BEVale42

Случаем никто не подскажет, как отправить с помощью VBA-макроса простенькое текстовое письмо, без вложений?
Например, в ёкселе запускается макрос, который долго что-то обсчитывает, а потом берёт результат, копирует как текст или таблицу в письмо и отправляет на конкретный мэйл через аутлук или ещё как, без лишних диалоговых запросов на подтверждение отправки (какие возникают в мастере слияний ворды при отправке через аутлук).
Так автоматическая отправка расчётных данных, например, на домашний мэйл, когда их планируется закончить далеко после окончания рабочего дня, была бы весьма полезной.

timtaller

У книги есть метод SendMail

timtaller

По крайней мере, у меня сработало

Sub Macro1
Cells(1, 1).Value = "Hi"
ActiveWorkbook.SendMail Recipients:="gmail.com"
End Sub

Но вот только аутлук, гнида, ругается, "у вас вирус орудует, пытается письма посылать", так что кнопочку "послать все равно" мне нажать пришлось

BEVale42

Спасибо, но вот это вот сообщение как раз и мешает всей полезности.
Может можно как-нибудь иначе обойти? Слышал как-то вроде можно через хоткейсы методом sentkeys (сразу скажу - точно не знаю как это работает, может кто знает?).

nawok

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

Mixaz

будет.
ругается-то Outlook :)

nawok

Аааа, понял. Ну тогда в Аутлуке нужно найти в настройках соответствующую галочку, которая отключает это сообщение.

Mixaz

я там что-то не нашел такого...
мне бы самому это пригодилось :)

saveliev_a

1) В Outlook нет такой галочки, в свое время искал. Если кто-то покажет, буду рад.
2) Письмо лучше отправлять не через Outlook (MAPI а подключаясь напрямую к серверу (SMTP). Код сейчас привести не смогу, но, когда сам решал аналогичную задачу, решение для WSH нашел за 5 минут.

nawok

1) В Outlook нет такой галочки, в свое время искал. Если кто-то покажет, буду рад.
Параметры -> Безопасность -> Защита от вирусов -> галочка Предупреждать если приложения пытаются отправить почту от моего имени
- это не оно?

BEVale42

Это только в Экспрессе она есть.
Офисные приложения с ним так просто не взаимодействуют(.
Т.е. если например отправлять ёкселевскую книгу как вложение методом ActiveWorkbook.SendMail, то используется офисный аутлук.

saveliev_a

О, спасибо. А я уже думал, свершилось чудо.
UPD. Используется не офисный аутлук, а программа, обрабатывающая MAPI. Можно, конечно, поставить Outlook Express обработчиком, но это уже изврат, хранить часть писем там, часть там.

ANATOL54

копай в сторону Office resourse kit, в нём есть расширенная форма ностроек безопасности...
Оставить комментарий
Имя или ник:
Комментарий: