Здравствуйте уважаемые эксперты. Нашел процедуру, позволяющую отправлять письмо посредством VBA без использования Outlook. http://www.excelvba.ru/code/CDO Смущает подпрограмма для внесения изменений в реестр. Можно ли использовать эту функцию не трогая реестр, а каждый раз определяя сервер исходящих, мейл и пароль. Если например программа кочует по разным компьютерам? Спасибо за советы.
Здравствуйте ДМ. Как всегда снимаю шляпу. (Маленькое уточнение. В данном случае не требуется настроек шифрования, проверок и прочего того, что требуется при настройке клиента?)
Причин множество, например: включенный брандмауэр Windows или другой файрволл неподходящая версия ОС (этот код работает не на всех версия Windows) ошибка в коде и т.д. и т.п.
Привет, Дима) Сначала отправил своё сообщение - потом внимательно прочитал вопрос автора темы. Как всегда, спешу))) И кнопки "правка", как назло, нет )
PS: Может быть ещё одна причина неработоспособности кода - прокси-сервер.
{quote}{login=}{date=23.11.2010 07:19}{thema=Re: }{post}В данном случае не требуется настроек шифрования, проверок и прочего того, что требуется при настройке клиента?{/post}{/quote} Да Дмитрий, что-то не так, все время пишет "нет доступа в интернет". smtp.gmail.com Сдается мне, что вот в этих настройках для гмейла собака порылась .Item(CDO_Cnf & "sendusing") = 2 .Item(CDO_Cnf & "smtpauthenticate") = 1
{quote}{login=The_Prist}{date=23.11.2010 10:45}{thema=}{post}А у меня почему-то с трех разных почтовых ящиков отправляет нормально...Среди них: рамблер, майл, яндекс - 2 штуки{/post}{/quote}
для Gmail нужны еще две настройки: .Item(CDO_Cnf & "smtpserverport") = 587 .Item(CDO_Cnf & "smtpusessl") = True
но все равно "нет доступа в интернет" (брандмауэр отключен)... не знаю даже где искать причину
Немного модифицировал процедуру и вынес в модуль, но по прежнему не работает. Нет соединения с интернетом. Пробовал в разных сетях.
Public Sub SendMail(Кому As String, Тема As String, Сообщение As String, АдресФайла As String) Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/" Dim oCDOCnf As Object, oCDOMsg As Object Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String On Error Resume Next 'Назначаем конфигурацию CDO Set oCDOCnf = CreateObject("CDO.Configuration") With oCDOCnf.Fields .Item(CDO_Cnf & "sendusing") = 2 .Item(CDO_Cnf & "smtpauthenticate") = 2 .Item(CDO_Cnf & "smtpserverport") = 587 .Item(CDO_Cnf & "smtpusessl") = True .Item(CDO_Cnf & "smtpserver") = "smtp.gmail.com" .Item(CDO_Cnf & "sendusername") = "info@visit-karelia.ru" .Item(CDO_Cnf & "sendpassword") = "password" .Update End With 'Создаем сообщение Set oCDOMsg = CreateObject("CDO.Message") With oCDOMsg Set .Configuration = oCDOCnf .BodyPart.Charset = "koi8-r" .From = "info@visit-karelia.ru" .To = Кому .BCC = "info@visit-karelia.ru" .Subject = Тема .TextBody = Сообщение If Len(АдресФайла) > 0 Then .AddAttachment АдресФайла .Send End With
Select Case Err.Number Case -2147220973: sMsg = "Нет доступа к Интернет" Case -2147220975: sMsg = "Отказ сервера SMTP" Case 0: sMsg = "Письмо отправлено" End Select MsgBox sMsg, vbInformation Set oCDOMsg = Nothing: Set oCDOCnf = Nothing End Sub
{quote}{login=Станислав}{date=29.09.2012 05:27}{thema=}{post}Выдаёт сообщение "Нет доступа к Интернет"{/post}{/quote} Так, может, на самом деле у Excel нет доступа в интернет? Отключите антивирус и файрвол, проверьте снова - должно заработать.
Добрый вечер. Подскажите пожалуйста первые шаги выполнения этого макроса. Тоесть данный код нужно вставить в модуль екселевського файла. А как заставить его функционировать? Спасибо всем.
Всем привет. Та же проблема "Выдаёт сообщение "Нет доступа к Интернет"" Выключенный брандмауэр Windows Отключенный антивирус и файервол Прокси сервера нет. smtp.gmail.com
Очень и очень нужно для создания через почтовый клиент gmail списка рассылки для 30 адресатов вложенного отчета. Всем спасибо заранее за помощь и советы .