Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите доделать скрипт, который отправляет по почте текст

Ответить
Настройки темы
VBS/WSH/JS - [решено] Помогите доделать скрипт, который отправляет по почте текст

Пользователь


Сообщения: 100
Благодарности: 1


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый вечер друзья помогите пожалуйста разобраться . Я написал при помощи разных ресурсов скрипт который отправляет по почте текст.

Const EmailFrom = "test@mail.ru"
Const EmailPassword = "testtest1"
Const strSmtpServer = "smtp.mail.ru"
Const EmailTo = "mains1@mail.ru"
Set objEmail = CreateObject("CDO.Message")

objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.Subject = "test mail"
objEmail.Textbody = "134678990685445779436653754"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update

objEmail.Send

Так вот приходиться текст постоянно менять в поле objEmail.Textbody что бы получить новое сообщение . Вопрос в том как сделать что бы появлялось окно какое нибудь для ввода ? Как это будет выглядить кто нибудь может показать ? Заранее спасибо

Отправлено: 22:51, 05-12-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Например, так:
Код: Выделить весь код
Option Explicit

Const ForReading       = 1

Const cdoSendUsingPort = 2
Const cdoBasic         = 1

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

Dim strValue


strValue = InputBox("Input mail body:", "Mail body", "Input text here…")

If Len(strValue) <> 0 Then
	With WScript.CreateObject("CDO.Message")
		With .Configuration.Fields
			.Item(strPartSchema & "sendusing")        = cdoSendUsingPort
			.Item(strPartSchema & "smtpauthenticate") = cdoBasic
			.Item(strPartSchema & "smtpserver")       = "smtp.mail.ru"
			.Item(strPartSchema & "smtpserverport")   = 25
			.Item(strPartSchema & "sendusername")     = "test@mail.ru"
			.Item(strPartSchema & "sendpassword")     = "testtest1"
			
			.Update
		End With
		
		.To            = "mains1@mail.ru"
		.From          = "test@mail.ru"
		.Subject       = "test mail"
		.TextBody      = strValue
		
		.Send
	End With
Else
	' Nothing to do
End If

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:35, 05-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Или, для многострочного письма, так:
Код: Выделить весь код
Option Explicit

Const ForReading       = 1

Const cdoSendUsingPort = 2
Const cdoBasic         = 1

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

Dim i
Dim strLine
Dim strValue


i = 0
strValue = ""

Do
	i = i + 1
	strLine = InputBox("Введите [" & CStr(i) & "] строку тела письма " & _
		"(введите пустую строку для окончания)", "Формирование тела письма", "Введите [" & CStr(i) & "] строку здесь…")
	
	If Len(strLine) <> 0 Then
		strValue = strValue & vbCrLf & strLine
	Else
		strValue = Mid(strValue, 3)
		
		Exit Do
	End If
Loop

If Len(strValue) <> 0 Then
	If MsgBox("Вы сформировали следующее тело письма:" & vbCrLf & vbCrLf & _
		strValue & vbCrLf & vbCrLf & _
		"Отправить письмо?", vbOKCancel, "Отправка письма") = vbOK Then
		
		With WScript.CreateObject("CDO.Message")
			With .Configuration.Fields
				.Item(strPartSchema & "sendusing")        = cdoSendUsingPort
				.Item(strPartSchema & "smtpauthenticate") = cdoBasic
				.Item(strPartSchema & "smtpserver")       = "smtp.mail.ru"
				.Item(strPartSchema & "smtpserverport")   = 25
				.Item(strPartSchema & "sendusername")     = "test@mail.ru"
				.Item(strPartSchema & "sendpassword")     = "testtest1"
				
				.Update
			End With
			
			.To            = "mains1@mail.ru"
			.From          = "test@mail.ru"
			.Subject       = "test mail"
			.TextBody      = strValue
			
			.Send
		End With
	End If
Else
	' Nothing to do
End If

WScript.Quit 0
Если этого недостаточно/неудобно, существует иной способ — создание тела письма посредством формы на *.hta.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:50, 05-12-2011 | #3


Пользователь


Сообщения: 100
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, Огромное спасибо !!! )))) +

Отправлено: 07:36, 06-12-2011 | #4


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемый Iska, ваш скрипт отлично работает, но нельзя ли там сделать так, чтоб сообщение с окошка отправлялось не с письмом, а виде вложения с названием темы, например: test.txt

Отправлено: 00:30, 15-01-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата irshat:
…но нельзя ли там сделать…»
Конечно, можно. Делайте.

Отправлено: 15:44, 15-01-2013 | #6


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 21:38, 15-01-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Option Explicit

Const ForReading       = 1

Const cdoSendUsingPort = 2
Const cdoBasic         = 1

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

Dim i
Dim strLine
Dim strValue
Dim strFile


i = 0
strValue = ""

Do
	i = i + 1
	strLine = InputBox("Введите [" & CStr(i) & "] строку тела письма " & _
	"(введите пустую строку для окончания)", "Формирование тела письма", "Введите [" & CStr(i) & "] строку здесь…")
	
	If Len(strLine) <> 0 Then
		strValue = strValue & vbCrLf & strLine
	Else
		strValue = Mid(strValue, 3)
		
		Exit Do
	End If
Loop

If Len(strValue) <> 0 Then
	If MsgBox("Вы сформировали следующее тело письма:" & vbCrLf & vbCrLf & _
		strValue & vbCrLf & vbCrLf & _
		"Отправить письмо?", vbOKCancel, "Отправка письма") = vbOK Then
		
		strFile = GetTemporaryName()
		
		With WScript.CreateObject("Scripting.FileSystemObject").CreateTextFile(strFile)
			.Write strValue
			.Close
		End With
		
		With WScript.CreateObject("CDO.Message")
			With .Configuration.Fields
				.Item(strPartSchema & "sendusing")        = cdoSendUsingPort
				.Item(strPartSchema & "smtpauthenticate") = cdoBasic
				.Item(strPartSchema & "smtpserver")       = "smtp.mail.ru"
				.Item(strPartSchema & "smtpserverport")   = 25
				.Item(strPartSchema & "sendusername")     = "test@mail.ru"
				.Item(strPartSchema & "sendpassword")     = "testtest1"
				
				.Update
			End With
			
			.To            = "mains1@mail.ru"
			.From          = "test@mail.ru"
			.Subject       = "test mail"
			'.TextBody      = strValue
			
			.AddAttachment strFile
			
			.Send
		End With
		
		WScript.CreateObject("Scripting.FileSystemObject").DeleteFile strFile
	End If
Else
	' Nothing to do
End If

WScript.Quit 0

'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
	Const TemporaryFolder = 2
	
	Dim strTempName
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		Do
			strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
		Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
	End With
	
	GetTemporaryName = strTempName
End Function
'=============================================================================
Не проверялось.

Отправлено: 00:54, 16-01-2013 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите доделать скрипт, который отправляет по почте текст

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - BAT файл, который вставляет текст в открытую командную строку. garanov Скриптовые языки администрирования Windows 13 18-02-2015 20:26
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте mrxMonster Скриптовые языки администрирования Windows 20 08-12-2011 12:04
C/C++ - помогите доделать последнее действие maximusoida Программирование и базы данных 1 05-05-2011 23:13
VBS/WSH/JS - Помогите доработать скрипт отправки по почте с аттачем diavard Скриптовые языки администрирования Windows 4 21-02-2011 14:55
Помогите доделать сайт DaRiYs Вебмастеру 1 02-03-2008 18:33




 
Переход