Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/117: Рейтинг темы: голосов - 117, средняя оценка - 4.54
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
VBS

Отправка e-mail через SMTP-сервер

29.05.2013, 13:11. Показов 22923. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
У меня возникла проблема - скрипт не желает отправлять сообщение через SMTP. Использую сервер гугла.

Сам код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
 
'Содание объекта CDO
Dim objmes
Set objmes=CreateObject ("CDO.Message")
 
'От кого и кому
Dim from
Dim whom
from="email1@gmail.com" 'адрес отправителя
whom="email2@mail.ru" 'адрес получателя
 
'Тема и текст сообщения
Dim theme
Dim text
theme="temp"
text="sended!"
 
'Конфигурация
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2    
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 2
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email1.gmail.com"
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "****"
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
 
'Заполнение письма
objmes.From=from
objmes.To=whom
objmes.Subject=theme
objmes.HTMLBody=text
 
'Обновление данных и отправка письма
objmes.Configuration.Fields.Update
objmes.Send
При запуске выходит с ошибкой "Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available".
В чем может быть причина неработоспособности скрипта?

Добавлено через 1 час 49 минут
Чуть подправил скрипт, всё заработало) Спасибо всем, кто морально поддержал)

Добавлено через 22 минуты
Теперь вопрос в другом: при попытке приложить файл (.AddAttachment "D:\send_mail2.vbs" ) вылетает с ошибкой "Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x800ccc6f. Отклик сервера: 554 Suspicious message". В чем причина ошибки?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2013, 13:11
Ответы с готовыми решениями:

VBS Отправка e-mail через SMTP-сервер - VBScript/JScript/WSH/WMI/HTA
Помогите, при запуске скрипта возникает ошибка Option Explicit 'Содание объекта CDO Dim objmes Set...

Отправка на почту через SMTP mail
Не могу найти как решить проблему в коде. Простая форма автоматической отправки сообщения людям на почту с моей почты. Отправляю с...

Отправка через SMTP писем с mail.ru на yandex.ru
Всем доброго времени суток. На этот раз проблема состоит в следующем: нужно отправить сообщение с ящика mail.ru на ящик yandex.ru и на...

19
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
29.05.2013, 13:37
Google не дает отправлять исполняемые файлы. Надо запаковать в rar, а потом этот rar в zip, т.к на один уровень архивов Гугл смотрить

Добавлено через 12 минут
*Смотрит
1
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
29.05.2013, 13:43  [ТС]
FraidZZ, спасибо за совет) Тогда вопрос - остальные почтовые службы нормально пропускают файлы?
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
29.05.2013, 13:59
А вот хай их знает. Яндекс вроде нормально всегда работал
0
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
29.05.2013, 14:25  [ТС]
Спасибо большое ^^
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.05.2013, 14:47
kamiru_wr, здесь имеет значение не только почтовая служба, которая отправляет, но и которая принимает.
Она тоже может отклонить получение письма с прикрепленным EXE-файлом.
Обратите на это внимание.
Оптимально - все паковать в архив.
1
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
29.05.2013, 14:50  [ТС]
Dragokas, понял, благодарю)
0
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
31.05.2013, 09:20  [ТС]
Доброго времени суток ещё раз. У меня опять возникла проблема касательно этой темы, потому другую решил не создавать.
Задание: вставить код HTML в тело письма. Делаю через .CreateMHTMLBody. Проблема в том, что только на один почтовик - hotmail.com - отправляется всё, как надо, в той форме, которая должна быть. Два другие почтовика, на которых тестировался скрипт - gmail.com и mail.ru - отображают код некорректно. Прилагаю скриншоты писем.

Собственно, вопрос: проблема на моей стороне? Или разные почтовики по разному интерпретируют код?
Миниатюры
Отправка e-mail через SMTP-сервер   Отправка e-mail через SMTP-сервер   Отправка e-mail через SMTP-сервер  

0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
31.05.2013, 13:17
Я с этим не сталкивался, но как вариант: попробуй просмотреть не через веб-интерфейс, а приняв письмо в The Bat/Thunderbird/Outlook/The bee или еще что-нибудь.
P.S hotmail - родной почтовик мелкомягких, возможно имеется некая связь между штатными средствами винды и hotmail'ом
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
31.05.2013, 14:01
kamiru_wr, так может попробовать просто .HTMLBody
0
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
31.05.2013, 22:51  [ТС]
Dragokas, через .HTMLBody то же самое показывает, к сожалению. Но всё-равно спасибо.

FraidZZ, насчёт Пы.Сы - нет, зарегался на рамблере, тот точно так же всё нормально отображает. Насчёт почтовых программ - попробую, спасибо.

Возможно, ошибка в том, что в коде сайта есть стили, которые почтовики некоторые не признают и им чистый ХТМЛ подавай?
0
0 / 0 / 0
Регистрация: 11.01.2015
Сообщений: 3
11.01.2015, 16:58
вопрос к автору темы. Что ты исправил в коде и он заработал?
0
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
12.01.2015, 00:19  [ТС]
y_belinskiy, к сожалению, не могу ответить на вопрос. Давно работал со скриптом. И прошу простить, что не рассказал способ решения проблемы сразу - виноват ^^
1
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
12.01.2015, 11:29
y_belinskiy, - вы необыкновенно счастливый человек, со времени последнего поста в этом треде
прошло ~1,5 года, и ваши шансы на ответ ТС были очень низки, но чудо случилось!!!

kamiru_wr, RESPECT & +1 за верность форуму!!!
1
 Аватар для kamiru_wr
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 13
12.01.2015, 17:08  [ТС]
buggydancer, хих, спасибо
1
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
12.01.2015, 18:05
kamiru_wr, всегда пожалуйста!

y_belinskiy, скрипт из поста #1 заработал в таком варианте:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Option Explicit
 
'Содание объекта CDO
Dim objmes
Set objmes=CreateObject("CDO.Message")
 
'От кого и кому
Dim from
Dim whom
from="email1@gmail.com" 'адрес отправителя
whom="email2@mail.ru"   'адрес получателя
 
'Тема и текст сообщения
Dim theme
Dim text
theme="subj"
text="sended!"
 
'Конфигурация
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2    
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = from
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "****"
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
 
'Заполнение письма
objmes.From=from
objmes.To=whom
objmes.Subject=theme
objmes.TextBody=text
 
'Обновление данных и отправка письма
objmes.Configuration.Fields.Update
objmes.Send
PS: всех со "Старым Новым Годом!!!"
2
0 / 0 / 0
Регистрация: 11.01.2015
Сообщений: 3
12.01.2015, 21:24
Спасибо большое, очень выручили)))
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 11:25
Цитата Сообщение от y_belinskiy Посмотреть сообщение
Спасибо большое...
и Вам спасибо, "везение - дар божий", глядишь от вашей
везучести и нам толика от "боженьки" перепадет!
PS: куда-то кнопка +1 под вашим постом пропала
0
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 1
08.01.2016, 09:58
Спасибо автору) скрипт реально очень помог)
0
1 / 1 / 1
Регистрация: 15.06.2016
Сообщений: 2
22.02.2019, 08:09
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    Function SendMail(ByRef Sender As String, ByRef Recipient As String, ByRef Header As String, ByRef Body As String, ByRef Password As String, Optional ByRef Port As Integer = 465, Optional ByRef Server As String = "smtp.gmail.com") As String
        Dim o_Mess As Object, v_Conf As String
        On Error GoTo ErrOfSend
        o_Mess = CreateObject("CDO.Message")
        v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
        o_Mess.BodyPart.CharSet = "Windows-1251"
        With o_Mess
            .To = Recipient
            .From = Sender
            .Subject = Header
            .TextBody = Body ' Если надо отправить просто текст
            '.HTMLBody = TextBox1.Text ' Если надо отправить HTML
            With .Configuration.Fields
                .Item(v_Conf & "sendusing") = 2
                .Item(v_Conf & "smtpserver") = Server
                .Item(v_Conf & "smtpauthenticate") = 1
                .Item(v_Conf & "sendusername") = Sender
                .Item(v_Conf & "sendpassword") = Password
                .Item(v_Conf & "smtpserverport") = Port
                .Item(v_Conf & "smtpusessl") = True
                .Item(v_Conf & "smtpconnectiontimeout") = 60
                .Update()
            End With
            .send()
        End With
        SendMail = "good"
        Exit Function
ErrOfSend:
        SendMail = "bad"
        'MsgBox(Err.Number)
    End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2019, 08:09
Помогаю со студенческими работами здесь

Как на c++ написать отправку письма на e-mail через внешний smtp сервер?
Как на c++ написать отправку письма на e-mail через внешний smtp сервер? Обращение к мейлеру не предлагать, прога должна связаться с...

Массовая отправка сообщений с вложением через SMTP сервер
Всем привет. Ребят, подскажите пожалуйста, в чем ошибка? Есть самописные форма и обработчик формы для массовой отправки почты с вложением....

Отправка email на через smtp сервер mx1.mirohost.net из своей программы
Не получается отправить email через smtp сервер mx1.mirohost.net из своей программы if (comboBox1.SelectedItem is MailServer) ...

Автоматическая отправка отчетов по mail-smtp
Добрый день.Проблема такая: Требуется отправлять почтовое сообщение при событии с определенным текстом на адрес gmail. При...

Отправка e-Mail без использования SMTP
Здравствуйте. Возможна ли реализация анонимной отправки e-Mail в vb.net? Если быть точнее то: Поля(текстбоксы) и кнопка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru