PDA

Показать полную графическую версию : [решено] Отправка почты на email чрезез VBS


Страниц : [1] 2

ymo_4@vk
02-12-2017, 23:14
Доброго времени суток.
Нужно отправить через VBS скрипт письмо на gmail.com (www.gmail.com).
Перепробовал кучу скриптов, никакой не работает :( .
Нужна отсылка логов.

mwz
02-12-2017, 23:50
никакой не работает »

Приведите пример одного из таких "никаких".

ymo_4@vk
03-12-2017, 01:31
Приведите пример одного из таких "никаких". »
Такой пробовал:
Option Explicit
Dim objmes
Set objmes=CreateObject("CDO.Message")

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") = "emalka@gmail.com" 'email акка
objmes.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "12345" 'пароль акка
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="emalka@gmail.com" 'адрес отправителя
objmes.To="myaccount@mail.ru" 'адрес получателя
objmes.Subject="Тема"
objmes.HTMLBody="Содержание письма"
.AddAttachment "C:\123.rar"

objmes.Configuration.Fields.Update
objmes.Send

И такой пробовал но это то же самое:
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
.To = "support@apple.com" 'куда отправляем
.From = "Alex <xxx@yandex.ru>" 'имя отправителя + Email
.Subject = "Subj" 'Тема письма
.TextBody = "BodyMail" 'Сообщение
.AddAttachment "C:\RemoveDrive.exe" 'Прикрепить файл
.TextBodyPart.Charset = "windows-1251" 'русская кодировка
With .Configuration.Fields
.Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange
.Item(v_Conf & "smtpserver") = "smtp.yandex.ru" 'Адрес SMTP-сервера
.Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации
.Item(v_Conf & "sendusername") = "xxx" 'здесь имя пользователя без @
.Item(v_Conf & "sendpassword") = "pass" 'пароль
.Item(v_Conf & "smtpserverport") = 25 'порт (альтернативный - 465)
.Item(v_Conf & "smtpusessl") = False 'использовать ли шифрованое подключение SSL
.Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения
.Update
End With
.send
End With
Set o_Mess = Nothing

Iska
03-12-2017, 09:37
ymo_4@vk, хотелось бы услышать, как именно выглядит «не работает»? Для второго скрипта сразу скажу, что GMail требует SSL.

Patroklos
03-12-2017, 11:33
Возможно проще будет взять http://www.blat.net/?faq/index.html
Это почтовая программа работающая через CLI.

Iska
03-12-2017, 12:06
Patroklos, открываете google.com, набираете в поиске «gmail blat», читаете выборку хотя бы из нескольких первых строк, а затем оцениваете свой совет. При том, что библиотека CDO работает с SSL напрямую, без необходимости установки дополнительных сервисов.

ymo_4@vk
03-12-2017, 15:12
Возможно проще будет взять http://www.blat.net/?faq/index.html
Это почтовая программа работающая через CLI. »
Мне нужно именно через VBScript. Не хотелось-бы устанавливать дополнения.

ymo_4@vk, хотелось бы услышать, как именно выглядит «не работает»? Для второго скрипта сразу скажу, что GMail требует SSL. »
Пробовал вот этот код (данные заменил на свои):
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
.To = "support@apple.com" 'куда отправляем
.From = "Alex <xxx@yandex.ru>" 'имя отправителя + Email
.Subject = "Subj" 'Тема письма
.TextBody = "BodyMail" 'Сообщение
.AddAttachment "C:\RemoveDrive.exe" 'Прикрепить файл
.TextBodyPart.Charset = "windows-1251" 'русская кодировка
With .Configuration.Fields
.Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange
.Item(v_Conf & "smtpserver") = "smtp.yandex.ru" 'Адрес SMTP-сервера
.Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации
.Item(v_Conf & "sendusername") = "xxx" 'здесь имя пользователя без @
.Item(v_Conf & "sendpassword") = "pass" 'пароль
.Item(v_Conf & "smtpserverport") = 25 'порт (альтернативный - 465)
.Item(v_Conf & "smtpusessl") = true 'использовать ли шифрованое подключение SSL
.Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения
.Update
End With
.send
End With
Set o_Mess = Nothing
вот ошибка: 149846

Iska
03-12-2017, 15:23
Пробовал вот этот код (данные заменил на свои): »
Покажите именно Ваш код. Замените Ваши реальные данные на ***, наподобие:
.To = "***@apple.com" 'куда отправляем
.From = "*** <***@yandex.ru>" 'имя отправителя + Email
.Item(v_Conf & "sendusername") = "***" 'здесь имя пользователя без @
.Item(v_Conf & "sendpassword") = "***" 'пароль

Нужны конкретные детали — откуда, куда и как происходит отправление, какие используются сервера, соответствуют ли выбранные порты выбранным серверам и т.п.

ymo_4@vk
03-12-2017, 15:48
Покажите именно Ваш код. Замените Ваши реальные данные на *** »
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
.To = "*******@google.com" 'куда отправляем
.From = "*** <****@gmail.com>" 'имя отправителя + Email
.Subject = "Subj" 'Тема письма
.TextBody = "BodyMail" 'Сообщение
.AddAttachment "C:\chat\log.zip" 'Прикрепить файл
.TextBodyPart.Charset = "windows-1251" 'русская кодировка
With .Configuration.Fields
.Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange
.Item(v_Conf & "smtpserver") = "smtp.gmail.com" 'Адрес SMTP-сервера
.Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации
.Item(v_Conf & "sendusername") = "****" 'здесь имя пользователя без @
.Item(v_Conf & "sendpassword") = "****" 'пароль
.Item(v_Conf & "smtpserverport") = 465 'порт (альтернативный - 465)
.Item(v_Conf & "smtpusessl") = true 'использовать ли шифрованое подключение SSL
.Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения
.Update
End With
.send
End With
Set o_Mess = Nothing

Iska
03-12-2017, 16:09
ymo_4@vk, попробуйте задать для:
.Item(v_Conf & "sendusername") = "****" 'здесь имя пользователя без @
как раз-таки полное имя пользователя, включая @gmail.com.

И что за адрес такой:
.To = "*******@google.com" 'куда отправляем
(хотя в данном случае пока не важно)?!

ymo_4@vk
03-12-2017, 17:55
.To = "*******@google.com" 'куда отправляем »
это я не так написал.

Давай я тебе на email отправлю скрипт с данными и паролями?
Email напиши ещё.
И ты сделаешь рабочий скрипт? =)

Iska
03-12-2017, 18:21
Давай я тебе на email отправлю скрипт с данными и паролями? »
Гмм… Даже не знаю. А не заблокирует ли Gmail учётную запись, если доступ к ней пойдёт не с типичного адреса? Они там любят это дело. Ну, если хотите — отправьте, попробую покрутить, сначала отправку на свой адрес, потом с GMail на Gmail.

Я бы и самолично проверил, но у меня на Google нет учётных записей, и заводить их там я не планирую.

Email напиши ещё. »
Щёлкаете над любым моим сообщением ссылку Профиль (http://forum.oszone.net/member.php?userid=121960), там — ссылку Отправить сообщение по E-mail (http://forum.oszone.net/sendmessage.php?do=mailmember&u=121960), вводите какой-нибудь текст для опознания Вас и отправляете. Я, получив письмо, Вам отвечаю по почте. Так Вы узнаете адрес, на который затем отправите учётные данные в зашифрованном архиве 7-Zip или RAR. Пароль на архив выложите сюда.

Iska
03-12-2017, 21:28
ymo_4@vk, письмо получил, ответ отправил.

ymo_4@vk
03-12-2017, 21:59
Щёлкаете над любым моим сообщением ссылку Профиль, там — ссылку Отправить сообщение по E-mail, вводите какой-нибудь текст для опознания Вас и отправляете. Я, получив письмо, Вам отвечаю по почте. Так Вы узнаете адрес, на который затем отправите учётные данные в зашифрованном архиве 7-Zip или RAR. Пароль на архив выложите сюда. »
пароль от архива - DVUAML

Iska
03-12-2017, 22:24
Письмо получил, пробую.

Update: попробовал от Вашего имени к себе — работает, письмо получил. Вот код:
Option Explicit

Const cdoSendUsingPort = 2
Const cdoBasic = 1

Const strConstPartOfSchema = "http://schemas.microsoft.com/cdo/configuration/"


Dim strSourceFile
Dim strContent


strSourceFile = "C:\Мои проекты\0135\Sample.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With WScript.CreateObject("CDO.Message")
.From = "***@gmail.com"
.To = "***@yandex.ru"
.Subject = "Content of file [" & strSourceFile & "]"

.TextBody = strContent
.TextBodyPart.Charset = "windows-1251"

.AddAttachment strSourceFile

With .Configuration.Fields
.Item(strConstPartOfSchema & "smtpserver") = "smtp.gmail.com"
.Item(strConstPartOfSchema & "sendusing") = cdoSendUsingPort
.Item(strConstPartOfSchema & "smtpserverport") = 465
.Item(strConstPartOfSchema & "smtpauthenticate") = cdoBasic
.Item(strConstPartOfSchema & "sendusername") = "***@gmail.com"
.Item(strConstPartOfSchema & "sendpassword") = "***"
.Item(strConstPartOfSchema & "smtpusessl") = True

.Update
End With

.Send
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 1
End If
End With

WScript.Quit 0
Теперь можете попробовать с одного Gmail-адреса отправить на другой Gmail-адрес.

Update2: если сработает — пишите, как лучше отправлять файлы, в примере взят один с жёстко заданным именем.

ymo_4@vk
03-12-2017, 22:37
Письмо получил, пробую.
Update: попробовал от Вашего имени к себе — работает, письмо получил. »
Спасибо вам большое!
И скажите пожалуйста как добавить текст?

Iska
03-12-2017, 22:39
И скажите пожалуйста как добавить текст? »
Option Explicit

Const cdoSendUsingPort = 2
Const cdoBasic = 1

Const strConstPartOfSchema = "http://schemas.microsoft.com/cdo/configuration/"


Dim strSourceFile


strSourceFile = "C:\Мои проекты\0135\Sample.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With WScript.CreateObject("CDO.Message")
.From = "***@gmail.com"
.To = "***@yandex.ru"
.Subject = "File [" & strSourceFile & "]"

.TextBody = "Мама мыла раму"
.TextBodyPart.Charset = "windows-1251"

.AddAttachment strSourceFile

With .Configuration.Fields
.Item(strConstPartOfSchema & "smtpserver") = "smtp.gmail.com"
.Item(strConstPartOfSchema & "sendusing") = cdoSendUsingPort
.Item(strConstPartOfSchema & "smtpserverport") = 465
.Item(strConstPartOfSchema & "smtpauthenticate") = cdoBasic
.Item(strConstPartOfSchema & "sendusername") = "***@gmail.com"
.Item(strConstPartOfSchema & "sendpassword") = "***"
.Item(strConstPartOfSchema & "smtpusessl") = True

.Update
End With

.Send
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 1
End If
End With

WScript.Quit 0

Спасибо вам большое! »
Э… «Спасибо, работает» или «Спасибо, не работает» ;)?

ymo_4@vk
03-12-2017, 22:56
Э… «Спасибо, работает» или «Спасибо, не работает» ? »
Работает =), и ещё раз спасибо!

Iska
03-12-2017, 23:23
Работает , и ещё раз спасибо! »
Лады. Тогда зачищаю у себя Ваше письмо с явками и паролями.

А что с:
если сработает — пишите, как лучше отправлять файлы, в примере взят один с жёстко заданным именем. »
— есть нужда?

addy2k
29-11-2019, 09:33
Помогите пожалуйста !!!
У всех видимо работает .... а я уже второй день бьюсь и ничего не отправляет !!!
Вот код :
Option Explicit

Const cdoSendUsingPort = 2
Const cdoBasic = 1

Const strConstPartOfSchema = "http://schemas.microsoft.com/cdo/configuration/"


Dim strSourceFile


strSourceFile = "C:\1\1.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With WScript.CreateObject("CDO.Message")
.From = "*****@gmail.com"
.To = "*****@gmail.com"
.Subject = "File [" & strSourceFile & "]"

.TextBody = "Мама мыла раму"
.TextBodyPart.Charset = "windows-1251"

.AddAttachment strSourceFile

With .Configuration.Fields
.Item(strConstPartOfSchema & "smtpserver") = "smtp.gmail.com"
.Item(strConstPartOfSchema & "sendusing") = cdoSendUsingPort
.Item(strConstPartOfSchema & "smtpserverport") = 465
.Item(strConstPartOfSchema & "smtpauthenticate") = cdoBasic
.Item(strConstPartOfSchema & "sendusername") = "*****@gmail.com"
.Item(strConstPartOfSchema & "sendpassword") = "*****"
.Item(strConstPartOfSchema & "smtpusessl") = True

.Update
End With

.Send
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 1
End If
End With

WScript.Quit 0




© OSzone.net 2001-2012