Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2011, 21:00   #1
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
Радость Отправка почты c использованием CDO

Уважаемые форумчане.
Для автоматизации отправки писем из Excel использовал CDO.

Включил ссылку Microsoft CDO for Windows 2000 Library
Полагаю, что в ее составе есть библиотека
Microsoft CDO for Exchange 2000 Library(?)
За основу взял такой код:

Sub mail()
Dim oMyMail As New CDO.Message
oMyMail.To = "Administrator@nwtraders.msft"
oMyMail.From = "Administrator@nwtraders.msft"
oMyMail.Subject = "Hello from CDO"
oMyMail.TextBody = "Our letter"
oMyMail.AddAttachment "C:\1.txt"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
omyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.YourServer.com"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"YourLogin@YourDomain.com"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"Password"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
oMyMail.Configuration.Fields.Update
oMyMail.Send
End Sub
При отправке письма по внутренней почте Exchange Server появляется окно с ошибкой «Транспорту не удалось подключиться к серверу».
Подскажите, пожалуйста.Что означает это предупреждение, и какие могут быть варианты решения?
Автоматизированная отправка писем с помощью Outlook не подходит в связи с известным ограничением процедуры самого приложения.
Если есть у кого-нибудь эл. версия книги Сью Мошер Программирование Microsoft Outlook, поделитесь, пожалуйста
Мой адрес SDeev2009@yandex.ru
Sergey112233 вне форума Ответить с цитированием
Старый 28.07.2011, 04:42   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.YourServer.com"
...
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"YourLogin@YourDomain.com"
Какие значения вы подставляли сюда?

К примеру, для отправки почты с аккаунта @gmail.com требуется немного другие значения параметров (по сравнению с mail.ru)


Цитата:
(добавлено позже - может, кому пригодится)
Посмотрите самый простой способ, как организовать отправку почты (рассылку писем)
(с использованием программы заполнения документов по шаблонам, с последующей отправке по почте)

В программе есть возможность формировать письма по шаблону (с подстановкой данных из таблицы Excel),
прикреплять сформированные документы и файлы из выбранной папки, и много других возможностей.


Последний раз редактировалось EducatedFool; 12.01.2013 в 10:41.
EducatedFool вне форума Ответить с цитированием
Старый 28.07.2011, 09:36   #3
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Учитывая достигнутый положительный результат предыдущего варианта, где макрос работал, поставил (в ниже приведенный код) его установки для Yandex.ru. Но, макрос не заработал.
Код:
Код:
Sub mail()
'отправка письма
Dim oMyMail As New CDO.Message
oMyMail.To = "sdeev2009@yandex.ru"
oMyMail.From = "sdeev2009@yandex.ru"
oMyMail.Subject = "Hello from CDO"
oMyMail.TextBody = "Our letter"
oMyMail.AddAttachment "C:\1.txt"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.yandex.ru"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"sdeev2009@yandex.ru"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"Password"
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
oMyMail.Configuration.Fields.Update
'oMyMail.TextBodyPart.Charset = "windows-1251"
oMyMail.Send
'прием письма
Dim oSession As New MAPI.Session
Dim oFolder As MAPI.Folder
Dim oMessage As MAPI.Message
oSession.Logon ("Outlook")
Set oFolder = oSession.Inbox
For Each oMessage In oFolder.Messages
If oMessage.Unread = True Then Debug.Print oMessage
Next
End Sub
Sergey112233 вне форума Ответить с цитированием
Старый 28.07.2011, 09:42   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ещё бы макрос работал...
надо указывать правильные настройки

К примеру,
Код:
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = TRUE
Вполне возможно, что надо ещё что-то изменить в настройках подключения.

Цитата:
Код:
oMyMail.To = "sdeev2009@yandex.ru"
oMyMail.From = "sdeev2009@yandex.ru"
Не факт, что получится отправить письмо самому себе.
Помню, когда тестировал этот код, с какой-то почтовой системы не получалось отправить себе письмо.
(хотя, может, я что-то не так делал)

Последний раз редактировалось EducatedFool; 28.07.2011 в 09:44.
EducatedFool вне форума Ответить с цитированием
Старый 28.07.2011, 09:45   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Сергей, я же Вас отправлял с Планеты сюда:
http://www.excel-vba.ru/chto-umeet-e...ismo-iz-excel/
Я там в комментариях описал настройки для Яндекса.
Потом:
oMyMail.To = "sdeev2009@yandex.ru"
oMyMail.From = "sdeev2009@yandex.ru"
Вы что сами себе отправляете?
Пока искал адрес статьи, Игорь опередил:-)
П.С. Отправить самому себе можно, проверял.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 28.07.2011 в 09:52.
kuklp вне форума Ответить с цитированием
Старый 28.07.2011, 10:00   #6
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

kuklp,
В проекте Outlook все работает:
Код
Код:
Sub Mail()
   Call ammolSendMail("youraddress@mail.ru", "youraddress@mail.ru", "youraddress@mail.ru", "youraddress@mail.ru", "youraddress@mail.ru", "youraddress@mail.ru")    
End Sub

А я отправляю письма из Excel. Как сделать так, чтобы VBA Excel увидел Function ammolSendMail, расположенную в VBA Outlook ?
Sergey112233 вне форума Ответить с цитированием
Старый 28.07.2011, 10:49   #7
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ничего не понял. При чем тут Аутглюк? Мы обсуждаем отправку почты через CDO из Эксель. А Outlook я никогда не пользовался. У меня стоит TheBat! и я отправляю либо через Sendmail, либо через CDO.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка почты через SMTP с использованием Synapse chandrasecar Работа с сетью в Delphi 5 26.06.2012 13:04
Персонализированная рассылка почты CDO Эрнесто Microsoft Office Excel 1 07.07.2011 22:58
Отправка почты Gurt87 Работа с сетью в Delphi 1 24.03.2010 22:51
Отправка почты Fo][ Работа с сетью в Delphi 1 20.01.2009 23:15
отправка почты? gusluk Работа с сетью в Delphi 2 17.11.2008 07:45