gifts2017

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

Опубликовал Сергей Судаков (New Look) в раздел Администрирование - Тестирование и исправление

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

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

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

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

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

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. ediks (ediks) 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. Сергей Ожерельев (Поручик) 12.12.11 12:10
3. Максим Костиков (mkostya) 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) 14.12.11 13:56
Выкладывать публикации, которые тупо делают разбор строки, считаю глупо и неправильно. Это больше похоже на лабораторку первокурсника.
6. Сергей Судаков (New Look) 14.12.11 14:24
(5) Представим себе ситуацию когда пользователь совершенно не знакомый с языком программирования 1С захочет сделать какие-либо действия по адресам электронной почты контрагентов в 1С. Но это у него не получится, т.к. адреса указаны с ошибками. Также предположим, что этот пользователь зайдет на данный сайт и попробует найти обработку, которая проверяет корректность адресов электронной почты. Что она найдет? Ничего. По крайней мере я не смог найти готовой обработки.
Именно для такового пользователя и предназначена данная обработка.

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