IE2017

Проверка E-mail (проверка адреса электронной почты)

Администрирование - Тестирование и исправление

Обработка для проверки e-mail (адреса электронной почты) контрагентов УТ 10.3

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

Поиск аналогичных обработок по порталу ничего не дал. Надеюсь, что не повторение и кому-то пригодится. Тестировалось только на УТ 10.3, но будет работать и на других конфигурация, в которых присутствует регистр сведений "КонтактнаяИнформация" такой же структуры как в УТ.

Скачать файлы

Наименование Файл Версия Размер
Обработка
.epf 7,78Kb
14.12.11
67
.epf 7,78Kb 67 Скачать

См. также

Комментарии
1. ediks (ediks) 324 12.12.11 12:08 Сейчас в теме
У меня была такая публикация - правда она не активная

// проверка правильности ввода адреса электронной почты - JScript
// русские буквы не допускаются
//
// Параметры
// <пСтрокаАдреса> - <Строка> - проверяемая строка адреса
//
// Возвращаемое значение:
// <Булево> - истина, если все ОК
//
Функция ПроверкаПравильностиВводаАдресаЭлектроннойПочтыJS(пСтрокаАдреса)

Объект = Новый COMОбъект("MSScriptControl.ScriptControl");

// Объект = CreateObject("MSScriptControl.Scriptcontrol"); //вариант для 7.7
Объект.Language="jscript";
Объект.AddCode("function isValidEmail(email)
|{
| return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
|}");

Возврат Объект.Run("isValidEmail", пСтрокаАдреса); //Result = ScriptControl.Run("Name", arg1, arg2, ... argn)

// другой вариант с использованием Eval
//Возврат Объект.Eval("isValidEmail(""" + пСтрокаАдреса + """)")); //Result = ScriptControl.Eval("some text expression")

КонецФункции // ПроверкаПравильностиВводаАдресаЭлектроннойПочтыJS()

2. Сергей Ожерельев (Поручик) 3591 12.12.11 12:10 Сейчас в теме
3. Максим Костиков (mkostya) 23 12.12.11 16:47 Сейчас в теме
Процедура РегулярныеВыраженияНажатие(Элемент)
Шаблон = ".+@.+\..+"; // регулярное выражение соответствует произвольному e-mail адресу

СтрокаАдреса = "ivanov@mail.com"; // проверяемый адрес
//CтрокаАдреса = ЭлементыФормы.ПолеВводаАдреса.Значение; //проверяемый адрес для элемента формы

RegExp = Новый COMОбъект("VBScript.RegExp"); // создаем объект для работы с регулярными выражениями
RegExp.MultiLine = Ложь; // истина — текст многострочный, ложь — одна строка
RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения
RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске
RegExp.Pattern = Шаблон; // шаблон (регулярное выражение) для проверки корректности e-mail
Если RegExp.Test(СтрокаАдреса) Тогда
Сообщить("Корректный адрес");
Иначе
Сообщить("Некорректный адрес");
КонецЕсли;
КонецПроцедуры
maksa2005; serg_khv; +2 Ответить
4. Андрей Казанцев (ander_) 14.12.11 09:22 Сейчас в теме
или еще один вариант:
RegExp.Pattern="^[a-zA-Z0-9_'+*/^&=?~{}\-](\.?[a-zA-Z0-9_'+*/^&=?~{}\-])*\@((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(\:\d{1,3})?)||(((([a-zA-Z0-9][a-zA-Z0-9\-]+[a-zA-Z0-9])|([a-zA-Z0-9]{1,2}))[\.]{1})+([a-zA-Z]{2,6})))$";
maksa2005; windows98a; +2 Ответить
5. Алексей Бовин (Lepochkin) 122 14.12.11 13:56 Сейчас в теме
Выкладывать публикации, которые тупо делают разбор строки, считаю глупо и неправильно. Это больше похоже на лабораторку первокурсника.
6. Сергей Судаков (New Look) 108 14.12.11 14:24 Сейчас в теме
(5) Представим себе ситуацию когда пользователь совершенно не знакомый с языком программирования 1С захочет сделать какие-либо действия по адресам электронной почты контрагентов в 1С. Но это у него не получится, т.к. адреса указаны с ошибками. Также предположим, что этот пользователь зайдет на данный сайт и попробует найти обработку, которая проверяет корректность адресов электронной почты. Что она найдет? Ничего. По крайней мере я не смог найти готовой обработки.
Именно для такового пользователя и предназначена данная обработка.

P.S.: На мой взгляд несколько перебор со словами "тупо" и "глупо" в столь небольшом комментарии по данной разработке.
7. Алексей Антонюк (Bozhevilnoe) 14.12.11 14:30 Сейчас в теме
Все работает, с экономил время, так как для меня эта обработка оказалась очень полезной. Если будешь дорабатывать, то так же пускай проверяет имэил контактного лица.
8. Сергей Судаков (New Look) 108 14.12.11 14:31 Сейчас в теме
9. Сергей Судаков (New Look) 108 14.12.11 15:23 Сейчас в теме
10. Алексей Бовин (Lepochkin) 122 14.12.11 16:35 Сейчас в теме
Качая обработку, я надеялся что она не просто проверяет русские буквы, но и проверяет на существование такого адреса, как это делают почтовые сервера. Вот тогда это бы была отличная штука.
11. Алексей Антонюк (Bozhevilnoe) 14.12.11 16:57 Сейчас в теме
Отборы можно добавить. Может кто нибудь захочет проверять не самостоятельно, а напрягать менеджеров, а доступ к контрагентов по уровням доступа реализован.
12. Сергей Судаков (New Look) 108 14.12.11 17:09 Сейчас в теме
13. Андрей Казанцев (ander_) 15.12.11 06:53 Сейчас в теме
(10) Lepochkin, нормального способа проверить существование адреса нет. Киньте кто-нибудь ссылкой, если я не прав. Потратив на это приличное количество времени для себя решил так:
делается отдельный ящик с которого идет вся рассылка. Потом регулярками парсятся входящие письма на предмет "возвратов". А дальше уже различные стратегии исключения адресов из рассылок.
ПС: если что, это рассылки на адреса реальных клиентов, которые они сами оставляют при заполнении анкет, а то еще посчитаете за спамера :)
14. Максим Литвинов (maksa2005) 94 15.10.15 08:47 Сейчас в теме
15. Сергей Ожерельев (Поручик) 3591 15.10.15 15:09 Сейчас в теме
(14) Не поверите, но даже это упоротое порождение сумрачного гения не обеспечивает стопроцентную проверку адреса электронной почты.
Оставьте свое сообщение