Создать интеграцию Microsoft Excel с Outlook, легко, средствами VBA. Можно ли отправлять письма другими почтовыми сервисами? Например, через Gmail, самый популярный в мире почтовый сервис, от Google.
Ответ можно, используя настройки SMTP, IMAP, POP.
Макросы приложенные к данной статье дают возможность отправить отдельный лист или книгу с помощью CDO.
CDO является библиотекой объектов, которая предоставляет интерфейс Messaging Application Programming Interface (MAPI), позволяет отправлять и получать сообщения.Решение для MS Office без Outlook.
Алгоритм настройки макросов
Копируйте код в Личную книгу макросов или в файл своей надстройки;
Добавьте в код адрес нужной почты и пароль:
.Item(msConfigURL & "/sendusername") = "ДОБАВЬТЕ ВАШУ ПОЧТУ".Item(msConfigURL & "/sendpassword") = "ДОБАВЬТЕ ПАРОЛЬ".From = "ДОБАВЬТЕ ВАШУ ПОЧТУ" ' От кого = username почты
Подключите в редакторе VBA (Alt+F11) библиотеку Microsoft CDO для Windows 2000:
Код макроса на GitHub
Отправить текущий активный лист, как вложение по эл.почтеОтправить текущую книгу, как вложение по эл.почте
Копируйте код на русской раскладке клавиатуры, чтобы сохранить комментарии.
Особенности настройки почты
Пароль при установленной двухэтапной проверкеКак настроить доступ к Gmail в сторонних почтовых клиентахЕсли вы используете двухэтапную проверку, следуйте инструкции:
А как же наши дорогие Яндекс.Почта и @mail?
Чтобы их использовать, удалите или закомментируйте в коде макроса строки .Item(msConfigURL & "/smtpserver") кроме:
.Item(msConfigURL & "/smtpserver") = "smtp.yandex.ru"
em(msConfigURL & "/smtpserver") = "smtp.mail.ru"
В заключение, удобный макрос для открытия почты Gmail из Excel при помощи Send Keys:
Sub ActivateGmail() " Активировать почту Gmail
' Открыть
Handle = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
RetVal = Shell(Handle, 1)
Application.Wait Now + TimeValue("00:00:02")
SendKeys ("https://mail.google.com/mail/u/0/#inb..."), True
Application.Wait Now + TimeValue("00:00:03")
SendKeys ("{ENTER}"), True
Application.Wait Now + TimeValue("00:00:02")
'Создать письмо
SendKeys ("C"), True
End Sub
Для браузера Chrome.
Чтобы сразу открывалось окно нового сообщения, в настройках включите Быстрые клавиши.
Измените Handle на путь вашего браузер, а SendKeys ("https://mail.google.com/mail/u/0/#inb...") на другой почтовый клиент.