-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
68 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,3 +30,4 @@ bld/ | |
*.VisualState.xml | ||
TestResult.xml | ||
|
||
TestApp.exe.config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,63 @@ | ||
// Исполняемое приложение для запуска компоненты под отладчиком | ||
|
||
// В проекте TestApp в "Ссылки" ("References") должен быть добавлен проект компоненты | ||
// В проекте TestApp должны быть подключены NuGet пакеты OneScript и OneScript.Library | ||
|
||
using System; | ||
using System; | ||
using ScriptEngine.Machine; | ||
using ScriptEngine.HostedScript; | ||
using ScriptEngine.HostedScript.Library; | ||
using System.Configuration; | ||
|
||
namespace TestApp | ||
{ | ||
class MainClass : IHostApplication | ||
{ | ||
|
||
static readonly string SCRIPT = @" | ||
Процедура ОтправитьПисьмоФоновоеЗадание(Знач Получатель, Знач Заголовок, Знач ТекстПисьма) Экспорт | ||
Процедура ОтправитьПисьмо(Знач Получатель, Знач Заголовок, Знач ТекстПисьма) Экспорт | ||
Профиль = Новый ИнтернетПочтовыйПрофиль; | ||
Профиль.АдресСервераSMTP = ""smtp.office365.com""; | ||
Профиль.АдресСервераSMTP = Сервер; | ||
Профиль.Таймаут = Таймаут; | ||
Профиль.ПользовательSMTP = ""[email protected]""; | ||
Профиль.ПарольSMTP = """"; | ||
Профиль.ПортSMTP = 587; | ||
Профиль.ИспользоватьSSLSMTP = Истина; | ||
Профиль.ПользовательSMTP = Пользователь; | ||
Профиль.ПарольSMTP = Пароль; | ||
Профиль.ПортSMTP = ПортSMTP; | ||
Профиль.ИспользоватьSSLSMTP = ИспользоватьSSLSMTP; | ||
Профиль.Пользователь = ""[email protected]""; | ||
Профиль.Пароль = """"; | ||
Профиль.Пользователь = Пользователь; | ||
Профиль.Пароль = Пароль; | ||
Сообщение = Новый ИнтернетПочтовоеСообщение; | ||
Сообщение.Получатели.Добавить(Получатель); | ||
Сообщение.ОбратныйАдрес.Добавить(""[email protected]"").ОтображаемоеИмя = ""SuperStep""; | ||
Сообщение.ОбратныйАдрес.Добавить(Отправитель).ОтображаемоеИмя = ""Отправителище""; | ||
Сообщение.Отправитель = Сообщение.ОбратныйАдрес.Получить(0); | ||
Сообщение.Тема = Заголовок; | ||
Сообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст); | ||
Сообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст); | ||
Почта = Новый ИнтернетПочта; | ||
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); | ||
Почта.Послать(Сообщение, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать, ПротоколИнтернетПочты.SMTP); | ||
Попытка | ||
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); | ||
Исключение | ||
Сообщить(""Ошибка подключения""); | ||
Сообщить(ОписаниеОшибки()); | ||
Возврат; | ||
КонецПопытки; | ||
Попытка | ||
Почта.Послать(Сообщение, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать, ПротоколИнтернетПочты.SMTP); | ||
Исключение | ||
Сообщить(""Ошибка отправки""); | ||
Сообщить(ОписаниеОшибки()); | ||
Возврат; | ||
КонецПопытки; | ||
КонецПроцедуры | ||
ОтправитьПисьмоФоновоеЗадание(""[email protected]"", ""Theme"", ""OneScript rockz!""); | ||
ОтправитьПисьмо(""[email protected]"", ""Theme"", ""OneScript rockz!""); | ||
" | ||
; | ||
|
||
|
@@ -53,16 +69,43 @@ public static HostedScriptEngine StartEngine() | |
// Тут можно указать любой класс из компоненты | ||
engine.AttachAssembly(System.Reflection.Assembly.GetAssembly(typeof(OneScript.InternetMail.InternetMail))); | ||
|
||
// Если проектов компонент несколько, то надо взять по классу из каждой из них | ||
// engine.AttachAssembly(System.Reflection.Assembly.GetAssembly(typeof(oscriptcomponent_2.MyClass_2))); | ||
// engine.AttachAssembly(System.Reflection.Assembly.GetAssembly(typeof(oscriptcomponent_3.MyClass_3))); | ||
|
||
return engine; | ||
} | ||
|
||
public static void InjectSettings(HostedScriptEngine engine) | ||
{ | ||
string server = ConfigurationManager.AppSettings["server"]; | ||
string userName = ConfigurationManager.AppSettings["userName"]; | ||
string password = ConfigurationManager.AppSettings["password"]; | ||
string replyTo = ConfigurationManager.AppSettings["replyTo"] ?? String.Format("{0}@{1}", userName, server); | ||
|
||
int portSmtp; | ||
bool useSsl; | ||
int timeout; | ||
|
||
if (!Int32.TryParse(ConfigurationManager.AppSettings["portSmtp"], out portSmtp)) | ||
portSmtp = 25; | ||
|
||
if (!Boolean.TryParse(ConfigurationManager.AppSettings["useSsl"], out useSsl)) | ||
useSsl = true; | ||
|
||
if (!Int32.TryParse(ConfigurationManager.AppSettings["timeout"], out timeout)) | ||
timeout = 30; | ||
|
||
engine.InjectGlobalProperty("Сервер", ValueFactory.Create(server), true); | ||
engine.InjectGlobalProperty("Пользователь", ValueFactory.Create(userName), true); | ||
engine.InjectGlobalProperty("Пароль", ValueFactory.Create(password) , true); | ||
engine.InjectGlobalProperty("ПортSMTP", ValueFactory.Create(portSmtp), true); | ||
engine.InjectGlobalProperty("Отправитель", ValueFactory.Create(replyTo), true); | ||
engine.InjectGlobalProperty("ИспользоватьSSLSMTP", ValueFactory.Create(useSsl), true); | ||
engine.InjectGlobalProperty("Таймаут", ValueFactory.Create(timeout), true); | ||
} | ||
|
||
public static void Main(string[] args) | ||
{ | ||
var engine = StartEngine(); | ||
InjectSettings(engine); | ||
|
||
var script = engine.Loader.FromString(SCRIPT); | ||
var process = engine.CreateProcess(new MainClass(), script); | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters