Если вам нужно рассылать письма из Excel,
воспользуйтесь готовым решением в виде надстройки FillDocuments
Ознакомьтесь с возможностями и способами рассылки писем из Excel
Макрос для отправки письма из Excel штатными средствами Windows
ВНИМАНИЕ! Данный код гарантированно работает ТОЛЬКО в ОС WindowsXP.
В остальных версиях Windows код не проверял.
В Windows7 данный макрос работать не будет ввиду отсутствия библиотеки CDO for Windows 2000.
(потребуется ручная установка недостающей библиотеки)
Пример отправки почты макросом Excel:
Sub Main() ' Пример использования функции Send_Mail txt = "Это письмо сформировано макросом" & vbNewLine & _ "без использования внешних программ и подключения дополнительных библиотек" If Send_Mail("ivan_ivanov@mail.ru", "vasya_pupkin@mail.ru", "проверка отправки почты", txt) Then MsgBox "Письмо успешно отправлено", vbInformation Else MsgBox "Не удалось отправить письмо", vbExclamation End If End Sub
Ознакомьтесь также со способом отправки почты из Excel
с использованием почтовой программы TheBAT!
Для рассылки писем со вложениями, и настраиваемым текстом и темой письма,
рекомендую воспользоваться специализированной универсальной программой FillDocuments
Достаточно нажать одну кнопку - чтобы создать и разослать множество персонализированных писем.
Для сохранения настроек почтового аккаунта запустите один раз этот макрос:
Sub SaveAccountData() ' запускать один раз - для записи в реестр Windows параметров почтового аккаунта SaveSetting Application.Name, "mail", "smtpserver", "smtp.mail.ru" ' Ваш SMTPServer SaveSetting Application.Name, "mail", "sendusername", "vasya_pupkin@mail.ru" ' Ваша учетная запись SaveSetting Application.Name, "mail", "sendpassword", "pup123456" ' Ваш пароль End Sub
Вместо использования макроса SaveAccountData, вы можете добавить в свой файл
форму сохранения и редактирования настроек учётной записи электронной почты
Комментарии
Великолепный пример! Даже не думал, что так просто.
Что нужно для прокси-сервера дописывать ?
Так и должно быть - письма отправляются напрямую из Windows, без использования каких-либо почтовых сервисов или программ.
Так что, эти письма не появятся нигде в исходящих. (потому что отправителем является ваша операционная система, и никто больше не знает о факте отправки этих писем)
Работает!
Только на mail.ru у получателя письма во входящих оно есть, а у отправителя в отправленных его нет.
А кто покажет макрос VBA для получения почты (например, из Yandex.ru или Mail.ru) без использования почтовых программ?
Спасибо.
Работает! Благодарю!
Александр, вы перемудрили с кодом...
Ваши ошибки:
1) в Word нет метода SaveCopyAs, поэтому эта строка не работала
2) Вы сохраняли документ через SaveAs, и потом пытались отправить этот же (открытый в Word) файл по почте. А открытый файл невозможно отправить таким способом.
Вот так будет работать:
(чтобы получить закрытый файл под другим именем, я его сначала сохраняю текущий документ под новым именем, а потом снова под исходным.)
Xls отправляется. Скопировал макрос в doc Файл, изменил book на document, xls на doc. Получил сообщение: Возможно, отсутствует интернет-связь. Посмотрите пожалуйста, что не так: http://zalil.ru/33237731
Смотри ниже таблицы, ссылки в зависимости от версии оутлука.
Кто поделится ссылкой на библиотеку CDO for Windows 2000
Не смог сам найти.
Здравствуйте, Алексей.
К сожалению, вряд ли смогу вам помочь, - у меня нет Exchange-сервера, и протестировать код не на чем.
Я бы на вашем месте попробовал указать не имя, а IP адрес вашего сервера в параметре SMTPServer.
И ещё - у вас выход в интернет идет через прокси-сервер?
(если да - то в код надо добавить ещё пару строк)
Лучше вам задать вопросы о настройках этого кода вашему системному администратору (кому, как не ему, знать все настройки вашего почтового сервера)
Например, для использования этого кода с Google или mail.ru, необходимо указать специфические параметры
(например, номер порта, и ещё там что-то, не помню уже)
Возможно, в вашем случае тоже нехватает изменения одной цифры.
Здравствуйте.
Попробовал на корпоративный Exchange-сервер отправить. Поле ' Ваш SMTPServer заполнял и с префиксом домена (mailXX.kostal.int) так и без (mailXX) - выдает ошибку "SMTP сервер ответил отказом". Файрвол отключен.
Помогите плиз.
Изучайте объектную модель CDO for Windows 2000:
(щелкните на картинке для увеличения)
Видимо, потребуется дополнительно сменить свойство Charset у другого объекта
(у какого конкретно - не знаю, описания всех методов и свойств CDO я так и не нашел)
Подскажи, пожалуйста, решение такой проблемы.
Реализовал отправку при помощи CDO, немного другой код (без страницы конфигурации от Windows, т.к. почтовый сервер у меня в сетке).
Все работает, но Тему и имя вложения (которые на русском языке) пишет "кракозябрами".
Как задать кодировку тела письма понятно (SMail.BodyPart.Charset = "windows-1251"), а как задать кодировку темы и имени вложения (не нашел метода)?
Спасибо.
Спасибо, очень нужная функция!
Спасибо. Работает, все и сразу, с одного нажатия.
1) Создаёте копию активного листа:
2) Сохраняете созданный файл из одного листа куда-нибудь на диск:
3) Прикрепляете сохранённый файл (как любой другой файл) к письму
К качестве пути прикрепляемого файла используете переменную Путь$
А как сделать? Чтобы вместо вложения отправить активный лист. или добавить
Спасибо большое за макрос, использую его теперь для действия в полуавтоматическом режиме: импортирую накладную из Foxpro 2.6 и отправляю по эл. почте
Спасибо за макрос. Здорово получается..
Причин может быть несколько.
Например, наличие прокси-сервера, ненастроенный файрвол, глюк Windows или сбой в системных файлах.
Наиболее вероятная причина - что Excel пытается выйти в интернет, а антивирус со встроенным файрволом (типа KIS) его не пускает.
Добрый день!
Из-за чего функция Send_Mail может выдавать ошибку отсутствия соединения с интернетом, при его наличии? Проверил на разных компах одной сети. Результат: 3 успешно, 1 с ошибкой (-2147220973 MsgBox "Отсутствует связь с интернетом").
Операционка одинаковая - ХР.
Огромное спасибо за коды макросов - очень много полезного!
Огромное спасибо за код. Работает прекрасно
А из-за Proxy работать будет?
У меня на работе прокси, плюс запрещен доступ к mail.ru.
Как вы считаете можно решать эту проблему?
Скрытая копия отправляется по полю
.BCC="типа мыло"
Спасибо за код! Подскажите, а как можно поместить адресата в скрытую копию?возможно ли такое?
Работает в вин7. проверил только на корпоративном smtp сервере. mail.ru не проверял
Нужно только подключить библиотеку CDO for Windows 2000
Отправить комментарий