Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» ??? Скрипт vbs отправки файла по почте ???

Автор: wwwad
Дата сообщения: 29.03.2005 22:41
Помогите ! Нужен скрипт (желательно .vbs) который отправляет определенный файл по почте (желательно theBAT) на определенный адрес. Может есть у кого готовый ?
Автор: distance
Дата сообщения: 30.03.2005 00:14
vb-скриптом не пользуюсь...


Код:
function SendMail(sRecipientMail, sSubject, sMsgBody)
{
try
{
// create a session and log on -- username and password in profile
var refMsg = WScript.CreateObject("CDO.Message");
var refConf = WScript.CreateObject("CDO.Configuration");

// Setting configuration params
with(refConf.Fields)
{
Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "www.mysmtp.com";
Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
}
refConf.Fields.Update();

with(refMsg)
{
Configuration = refConf;
To = sRecipientMail;
From = "billgates@microsoft.com";
Subject = sSubject;
TextBody = sMsgBody;
}
refMsg.Send();
}
catch(e)
{
WScript.Echo("SendMail error: " + e.description);
WScript.Quit(1);
}
}
Автор: wwwad
Дата сообщения: 30.03.2005 22:05
distance спасибо . если можно еще чуточку помочь ...

1) Я так понимаю это все забить в нотепаде и запомнить с каким расширением ?

2)если я правильно понял это только функция - надо еще в начале написать процедуру в которой вызывается эта функция SendMail . Только я с синтаксисом незнаком - если не трудно можно ли набросать код этой процедуры

3)Что неправильно понял ? Например вот такие МОИ параметры :

sRecipientMail = "pupkin@mail.ru" - это почта куда шлю
sSubject = "пробное письмо" - это типа ТЕМА, да ?
sMsgBody = "С:/Отчет.xls " - сюда что можно вписать адрес файла ?
From = "mymail@mail.ru" вместо "billgates@microsoft.com"

непонятно только строка Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "www.mysmtp.com" - это что ? надо оставлять или менять ? И как это связано с моим smtp ? если например почта на mail.ru - то что писать то ???
Автор: distance
Дата сообщения: 31.03.2005 00:45
wwwad

Цитата:
1) Я так понимаю это все забить в нотепаде и запомнить с каким расширением ?

.js


Цитата:
Только я с синтаксисом незнаком - если не трудно можно ли набросать код этой процедуры


Код:
var to = "pupkin@mail.ru";
var subj = "тема письма";
var text = "собственно тело письма";
SendMail(to, subj, text);
Автор: wwwad
Дата сообщения: 01.04.2005 00:03
очень очень большое спасибо за внимание.

непонятен пункт // Setting configuration params непонятен не в том как он работает (ясно что не пойму пока - объяснять нестоит) непонятно мне что писать то ?

Например я пользуюсь theBatom и вот те реальные параметры которые требуются theBaty для отправки писем :

1) vadim422@yandex.ru
2) smtp.yandex.ru
3) "mypassword" для smtp

Их то где соответствие в скрипте ?

1) Smtp я так понял указывается через Item
Т.е. ведь это бред так определять Item?

Цитата:
// Setting configuration params
with(refConf.Fields)
{
Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru";
Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
}

А как? и оставлять ли мне второй пункт где он = 2 ???

2) Насчет vadim422@yandex.ru понятно - это пункт From
т.е. From="vadim422@yandex.ru"

3) А как насчет "mypassword" ???
--------------------------------------------------------

Возможно что я не получаю доконца понятный мне ответ изза того что сам невнятно задаю вопрос. Если можно я задам его заново ???

файл для отправки : 1.txt
адрес получателя : pupkin@mail.ru
мои параметры почты : vadim422@yandex.ru
smtp.yandex.ru
"mypassword"
дополнительные параметры отправки почты(возможно специфичные только для theBat) :
Аутентификация SMTP (RFC-2554) = True

В данном случае переменные равны следующим значениям :
-------------------------------
var to = "pupkin@mail.ru";
var subj = "тема письма";
var text = "собственно тело письма";
SendMail(to, subj, text, ["c:\\1.txt"]);

а в поцедуре SendMail
From = "vadim422@yandex.ru";
Item(???) = ???;
Item(???)=2;
---------------------------------

Автор: distance
Дата сообщения: 01.04.2005 15:45
wwwad

Цитата:
А как? и оставлять ли мне второй пункт где он = 2 ???

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


Цитата:
3) А как насчет "mypassword" ???

для авторизации на smtp сервере добавь
Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1;
Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "твой логин для почты";
Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "твой пароль";

если в сети используется прокси сервер, то также нужно добавить:
Item("http://schemas.microsoft.com/cdo/configuration/urlproxyserver") = "www.someproxy.com:8080";

если и прокся требует авторизации, тогда не знаю
Автор: wwwad
Дата сообщения: 02.04.2005 07:19
БЛИННН - не отправляет !!! вот что пишет :

Цитата:
SendMail error !!! : Неудалось отправить сообщение на SMTP-сервер. Код ошибки транспорта:0х80040217.Отклик сервера: not available


А вроде все правильно написал в скрипте. Вот он :

Цитата:
var to = "vadim422@yandex.ru";
var subj = "тема письма";
var text = "собственно тело письма";

SendMail(to, subj, text, ["c:\\1.txt", "c:\\2.txt"]);


function SendMail(sRecipientMail, sSubject, sMsgBody,files)
{
try
{
// create a session and log on -- username and password in profile
var refMsg = WScript.CreateObject("CDO.Message");
var refConf = WScript.CreateObject("CDO.Configuration");

// Setting configuration params
with(refConf.Fields)
{
Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru";
Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1;
Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "vadim422@yandex.ru";
Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*******";
}
refConf.Fields.Update();

with(refMsg)
{
Configuration = refConf;
To = sRecipientMail;
From = "vadim422@yandex.ru";
Subject = sSubject;
TextBody = sMsgBody;
}

if (files)
{
for(var i=0; i<files.length; i++)
refMsg.AddAttachment(files[i]);
}

refMsg.Send();
}
catch(e)
{
WScript.Echo("SendMail error !!! : " + e.description);
WScript.Quit(1);
}
}


Что же не так ???
И еще вопрос - отправка почты с помощью js скрипта возможен только с помощью "http://schemas.microsoft.com" ? может у них там проблема ?
Автор: distance
Дата сообщения: 05.04.2005 11:52
wwwad
Думаю проблема в яндексе.
у меня этот стрипт исправно отсылает почту уже долгое время.
а недевно проверил, и файлы аттачатся нормально.
Автор: wwwad
Дата сообщения: 05.04.2005 23:25
distance
если дело в Яндексе - подскажи пожалуйста
каким сервером пользуешься ты - я тогда тоже там создам почту - очень надо чтобы скрипт заработал
Автор: distance
Дата сообщения: 06.04.2005 11:28
там не получится это сервер у меня на работе.
возможно, яндексу требуется дополнительная настройка в свойствах ящика... например в Google Mail по умолчанию pop3-протокол заблокирован и его нужно вручную разрешить.

ps. Если в системе установлен Microsoft Outlook (не Express) то можно использовать его сервер автоматизации для отправки почты. Но в этом направлении не копал...
пошарь по google строку Outlook.Application, должны найтись всякие примеры. Удачи.
Автор: wwwad
Дата сообщения: 06.04.2005 23:02
Все . Вопросов больше не имею . Спасибо огромное !!!
Автор: Mark_Titov
Дата сообщения: 13.02.2011 10:43

Код: 'Отправить сообщение с помощью локальной службы SMTP
Const cdoSendUsingPickup = 1
Set objMessage = CreateObject("CDO.Message")
' Тема сообщения и адрес отправителя
objMessage.Subject = "Тема письма"
objMessage.From = """Генератор отчетов"" "
' Получатели письма указываются через " ; "
objMessage.To = "login@yandex.ru"
' Содержимое тела письма.
objMessage.TextBody = "JSC AUTO SERVICE. Please find Orders reporting in attachment." & vbCRLF & _
"------------------------------------------" & vbCRLF & _
"Best regards, Auto report service" & vbCRLF & _
"Support line: it@domian.ru" & vbCRLF
' Добавляем файл - вложение для отправки отчета по EMail
objMessage.AddAttachment "C:\1.txt"
' Секция настроек SMTP сервера для отправки почты.
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
' Имя или IP адрес SMTP Server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "login@yandex.ru"
' Тип используемой авторизации, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
' SMTP server
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru"
' Авторизация на SMTP server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "login"
' Пароль SMTP server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
' Порт SMTP Server port (обычно 25, но может быть и другим)
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
' Использование SSL для соединения (False или True)
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
' Время ожидания соединения с почтовым сервером
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
' Сохранить настройки CDO для отправки сообщения
objMessage.Configuration.Fields.Update
' Отправить созданное почтовое сообщение с вложением по указанному адресу
objMsg.Send
Wscript.Echo "Отправка завершена"
Wscript.Quit

Страницы: 1

Предыдущая тема: Вычисление трудового стажа на Access 97


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.