VBA Отправка писем из Excel через Gmail

Из этого туториала Вы узнаете, как отправлять электронные письма из Excel через Gmail с помощью VBA.

Добавление справочника Microsoft CDO

Чтобы разрешить Excel отправлять электронную почту через Gmail, вам сначала нужно добавить справочную библиотеку CDO в свой проект Excel.

В редакторе VBA нажмите Инструменты, Ссылки.

Найдите ссылку Microsoft CDO Reference и нажмите OK.

Отправка электронного письма через GMail

Чтобы отправить электронное письмо из Excel через Gmail, вам сначала нужно объявить объект CDO (Dim gMail как CDO.Message).

Во-вторых, вам нужно будет настроить SSL-аутентификацию для вашего сообщения в вашем коде. Это означает, что вам необходимо указать SMTP-сервер и сведения о порте, чтобы ваша электронная почта проходила правильно, а также указать имя пользователя и пароль.

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

12345678910111213141516171819202122232425262728 Функция CreateEmail (strTo как строка, strSubject как строка, необязательный strCC как строка, необязательный strBody как строка)'создать объект CDODim gMail как CDO.MessageУстановите gMail = New CDO.Message.'Включить проверку подлинности SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'Включить SMTP-аутентификацию = true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Установите SMTP-сервер и порт ПодробностиgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Задайте здесь свое имя пользователя и пароль для своей учетной записи GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Обновите поля конфигурацииgMail.Configuration.Fields.Update

Как только это будет сделано, вы можете создать свой адрес электронной почты и выполнить функцию.

123456789 'установите свойства электронной почты и файл для отправкиС помощью gMail .Subject = "Напишите тему здесь".From = "[email protected]".To = strTo.TextBody = strBodyКонец с'отправить почтуgMail.SendКонечная функция

Затем вы можете вызвать свою функцию с помощью следующего кода

1234567 Sub SendEmail'создать тело письмаDim strText как строкаstrText = "Доброе утро. Надеюсь, с вами все в порядке - это тестовое письмо"'заполните аргументы функции - оставьте поле CC пустым, поставьте запятую в качестве заполнителяCreateEmail ("[email protected]", "Тестовое письмо",, strText)Конец подписки

Отправка книги через GMail

Чтобы отправить книгу в виде вложения через GMail, вы можете создать функцию, похожую на приведенную выше, с некоторыми дополнениями.

Вам нужно добавить код для выбора книги, а затем вам нужно прикрепить выбранный файл к электронному письму.

Мы будем использовать Microsoft Office FileDialog команду, чтобы выбрать файл для отправки, а затем используйте Добавить приложение свойство электронной почты, чтобы добавить файл как вложение.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Функция SendWorkbook (strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) As BooleanПри ошибке goto eh:'создать объект CDODim gMail как CDO.MessageУстановите gMail = New CDO.Message.'Включить проверку подлинности SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'Включить SMTP-аутентификацию = true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Установите SMTP-сервер и порт ПодробностиgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Задайте здесь свое имя пользователя и пароль для своей учетной записи GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Обновите поля конфигурацииgMail.Configuration.Fields.Update'выберите файл для отправки в диалоговом окне файла MicrosoftDim strFileToSend как строкаDim dlgFile As FileDialogDim strItem как вариантDim nDlgResult As LongУстановите dlgFile = Application.FileDialog (msoFileDialogFilePicker)'фильтр только для файлов Excel и CSVdlgFile.Filters.Add «Файлы Excel», «* .csv; * .xls; * .xlsx; * .xlsm»nDlgResult = dlgFile.ShowЕсли nDlgResult = -1 ТогдаЕсли dlgFile.SelectedItems.Count> 0 ТогдаДля каждого strItem в dlgFile.SelectedItemsstrFileToSend = strItemСледующая строкаКонец, еслиКонец, если'установите свойства электронной почты и файл для отправкиС gMail.Subject = "Напишите тему здесь".From = "[email protected]".To = strTo.TextBody = strBody'добавить выбранный файл как вложение.AddAttachment strFileToSendКонец с'отправить почтуgMail.SendSendWorkbook = TrueФункция выходаа:SendWorkbook = FalseКонечная функция

Если порт конфигурации 25 не работает, вы можете получить сообщение об ошибке - «Транспорт не смог подключиться к серверу» Измените порт на 25 и попробуйте еще раз.

Вышеупомянутую функцию можно вызвать, используя приведенную ниже процедуру.

123456789101112131415 Sub SendMail ()Dim strTo As StringDim strSubject как строкаDim strBody как строка'заполнить переменныеstrTo = "[email protected]"strSubject = "Пожалуйста, найдите прикрепленный финансовый файл"strBody = "здесь идет текст в теле письма"'вызвать функцию для отправки электронного письмаЕсли SendWorkbook (strTo, strSubject`` strBody) = true, тоMsgbox «Электронное письмо успешно создано»ЕщеMsgbox "Не удалось создать электронное письмо!"Конец, еслиКонец подписки

Вам будет предложено выбрать файл, который вы хотите отправить. Этот код ограничен файлами Excel из-за фильтра «* .csv; * .xls; * .xlsx; * .xlsm »- однако вы также можете использовать этот код в Word и соответствующим образом изменить свой фильтр.

Выберите файл и нажмите «Открыть». Выполнение кода может занять некоторое время - если ваше письмо отправлено успешно, вы получите следующее сообщение.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave