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

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

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

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

15 Comments

  1. ediks

    У меня была такая публикация — правда она не активная

    // проверка правильности ввода адреса электронной почты — JScript

    // русские буквы не допускаются

    //

    // Параметры

    // <пСтрокаАдреса> — <Строка> — проверяемая строка адреса

    //

    // Возвращаемое значение:

    // <Булево> — истина, если все ОК

    //

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

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

    // Объект = CreateObject(«MSScriptControl.Scriptcontrol»); //вариант для 7.7

    Объект.Language=»jscript»;

    Объект.AddCode(«function isValidEmail(email)

    |{

    | return (/#k8SjZc9Dxk([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()

    Reply
  2. Поручик

    (0) Посмотрите, вот ещё материал на тему

    http://forum.mista.ru/topic.php?id=581653&page=3#221

    Reply
  3. mkostya

    Процедура РегулярныеВыраженияНажатие(Элемент)

    Шаблон = «.+@.+..+»; // регулярное выражение соответствует произвольному e-mail адресу

    СтрокаАдреса = «ivanov@mail.com»; // проверяемый адрес

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

    RegExp = Новый COMОбъект(«VBScript.RegExp»); // создаем объект для работы с регулярными выражениями

    RegExp.MultiLine = Ложь; // истина — текст многострочный, ложь — одна строка

    RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения

    RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске

    RegExp.Pattern = Шаблон; // шаблон (регулярное выражение) для проверки корректности e-mail

    Если RegExp.Test(СтрокаАдреса) Тогда

    Сообщить(«Корректный адрес»);

    Иначе

    Сообщить(«Некорректный адрес»);

    КонецЕсли;

    КонецПроцедуры

    Reply
  4. ander_

    или еще один вариант:

    RegExp.Pattern=»#k8SjZc9Dxk[a-zA-Z0-9_’+*/#k8SjZc9Dxk&=?~{}-](.?[a-zA-Z0-9_’+*/#k8SjZc9Dxk&=?~{}-])*@((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})))$»;

    Reply
  5. Lepochkin

    Выкладывать публикации, которые тупо делают разбор строки, считаю глупо и неправильно. Это больше похоже на лабораторку первокурсника.

    Reply
  6. New Look

    (5) Представим себе ситуацию когда пользователь совершенно не знакомый с языком программирования 1С захочет сделать какие-либо действия по адресам электронной почты контрагентов в 1С. Но это у него не получится, т.к. адреса указаны с ошибками. Также предположим, что этот пользователь зайдет на данный сайт и попробует найти обработку, которая проверяет корректность адресов электронной почты. Что она найдет? Ничего. По крайней мере я не смог найти готовой обработки.

    Именно для такового пользователя и предназначена данная обработка.

    P.S.: На мой взгляд несколько перебор со словами «тупо» и «глупо» в столь небольшом комментарии по данной разработке.

    Reply
  7. Bozhevilnoe

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

    Reply
  8. New Look

    (7) Немного позже сделаю.

    Reply
  9. New Look

    (7) Сделал.

    Reply
  10. Lepochkin

    Качая обработку, я надеялся что она не просто проверяет русские буквы, но и проверяет на существование такого адреса, как это делают почтовые сервера. Вот тогда это бы была отличная штука.

    Reply
  11. Bozhevilnoe

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

    Reply
  12. New Look

    (11) Доделаю.

    Reply
  13. ander_

    (10) Lepochkin, нормального способа проверить существование адреса нет. Киньте кто-нибудь ссылкой, если я не прав. Потратив на это приличное количество времени для себя решил так:

    делается отдельный ящик с которого идет вся рассылка. Потом регулярками парсятся входящие письма на предмет «возвратов». А дальше уже различные стратегии исключения адресов из рассылок.

    ПС: если что, это рассылки на адреса реальных клиентов, которые они сами оставляют при заполнении анкет, а то еще посчитаете за спамера 🙂

    Reply
  14. maksa2005
  15. Поручик

    (14) Не поверите, но даже это упоротое порождение сумрачного гения не обеспечивает стопроцентную проверку адреса электронной почты.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *