Проверка 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 не будет опубликован. Обязательные поля помечены *