User Tools

Site Tools


1C app mail code changes

From: Borodin Oleg <o.borodin@lazurit.com>
To: a.pchelkin@lazurit.com
Cc: Новиков Дмитрий <dn@lazurit.com>
Subject: Re: Почтовые домены, 1C патч-прототип
Date: Tue, 9 Aug 2016 13:09:02 +0200
X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.28; i386-pc-freebsd10)

Для присланного тобой в жаббер примера, ниже привел шаблон кода, учитывающий новые почтовые сервера.
В принципы, после его сверки по аналогии можно менять везде где есть почтовая отправка, шибко вреда не будет.
Конечно, код необходимо проверить, это только набросок. 

--- 1c-code.txt.orig	2016-08-09 12:53:37.452000000 +0200
+++ 1c-code.txt	2016-08-09 12:52:55.634762000 +0200
@@ -4,13 +4,54 @@
 	Пользователь = ТекущУзел.ПочтовыйЯщик;
 	Пароль = ТекущУзел.ПарольКПочте;
     Профиль = Новый ИнтернетПочтовыйПрофиль;
-	Профиль.АдресСервераSMTP = "mail.lazurit.com"; 	
+
 	Профиль.ПортSMTP = Константы.ПортSMTPПочтовогоСервераОбмена.Получить();		
 	Профиль.Пользователь = Пользователь;
 	Профиль.Пароль = Пароль;	
 	Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
 	Профиль.ПарольSMTP = Пароль;
 	Профиль.ПользовательSMTP = Пользователь;
+
+        // Выделяем почовый домен в имени отправителя
+        // some@bare.lazurit.com -> bare.lazurit.com
+        ИмяПользователя = Пользователь;
+        Индекс = Найти(ИмяПользователя, "@");
+        // Необходимо проверить корректность выделения!
+        ПочтовыйДоменПользователя = (Прав(ИмяПользователя, Индекс+1)
+
+        // Почтовые домены с новыми серверами
+        ПочтовыеДомены = Новый Массив();
+        ПочтовыеДомены.Добавить("bel.lazurit.com");
+        ПочтовыеДомены.Добавить("center.lazurit.com");
+        ПочтовыеДомены.Добавить("kaluga.lazurit.com");
+        ПочтовыеДомены.Добавить("kur.lazurit.com");
+        ПочтовыеДомены.Добавить("lip.lazurit.com");
+        ПочтовыеДомены.Добавить("ryaz.lazurit.com");
+        ПочтовыеДомены.Добавить("tula.lazurit.com");
+        ПочтовыеДомены.Добавить("srt.lazurit.com");
+        ПочтовыеДомены.Добавить("vrn.lazurit.com");
+        ПочтовыеДомены.Добавить("izhevsk.lazurit.com");
+        ПочтовыеДомены.Добавить("kirov.lazurit.com");
+        ПочтовыеДомены.Добавить("krv.lazurit.com");
+        ПочтовыеДомены.Добавить("kzn.lazurit.com");
+        ПочтовыеДомены.Добавить("nn.lazurit.com");
+        ПочтовыеДомены.Добавить("pnz.lazurit.com");
+        ПочтовыеДомены.Добавить("sm.lazurit.com");
+        ПочтовыеДомены.Добавить("tlt.lazurit.com");
+        ПочтовыеДомены.Добавить("yola.lazurit.com");
+
+        //Имя почтового сервера по умолчанию
+        ИмяПочтовогоСервера = "mail.lazurit.com";
+
+        Для Каждого Домен Из ПочтовыеДомены Цикл
+           Если Домен == ПочтовыйДоменПользователя Тогда
+              // Переопределяем почтовый сервер если он в списке новых
+              ИмяПочтовогоСервера = "smtp." + ПочтовыйДоменПользователя;
+           КонецЕсли;
+        КонецЦикла;
+
+	Профиль.АдресСервераSMTP = ИмяПочтовогоСервера; 	
+
 	//Формируем сообщени обмена
 	Почта = Новый ИнтернетПочта;		
 	Сообщение = Новый ИнтернетПочтовоеСообщение;

-- 

С уважением,

Бородин Олег
Ведущий специалист службы ИТ
Компании "Лазурит", г. Калининград
+7-952-058-72-64
o.borodin@lazurit.com