Найти тему
Войти в IT

Отправка писем через Gmail, ЯндексПочта и @mail из Excel

Создать интеграцию 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:

-2
-3

Код макроса на GitHub

Отправить текущий активный лист, как вложение по эл.почтеОтправить текущую книгу, как вложение по эл.почте

Скачать файл с макросами

Копируйте код на русской раскладке клавиатуры, чтобы сохранить комментарии.

Особенности настройки почты

Пароль при установленной двухэтапной проверкеКак настроить доступ к Gmail в сторонних почтовых клиентахЕсли вы используете двухэтапную проверку, следуйте инструкции:

-4

А как же наши дорогие Яндекс.Почта и @mail?

Чтобы их использовать, удалите или закомментируйте в коде макроса строки .Item(msConfigURL & "/smtpserver") кроме:

-5

.Item(msConfigURL & "/smtpserver") = "smtp.yandex.ru"

-6

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...") на другой почтовый клиент.