Как реализовать исключение для моего сценария «Отправить почту»? (Используя "Mail" Gem) - PullRequest
0 голосов
/ 06 января 2012

Я написал скрипт SendMail на базовом Ruby, и он работает очень хорошо. Проблема заключается в том, что если скрипт отправляет на адрес электронной почты, например, «notavliable1», я получаю сообщение об ошибке SMTP, что квитанция недоступна, и сценарий останавливается.

Мне нужно исключение для фильтрации или REGEX для почтового адреса.

Вот фрагмент:

require 'mail'

mail = Mail.new do
      from 'peter@lustig.de'
      to ("#{send.toAdress}")
      subject ("#{send.subject}")

      html_part do
        content_type 'text/html; charset=UTF-8'
        body ("#{send.body}")
      end
    end

Как мне сказать, чтобы мой фрагмент пропустил недействительный "send.toAdress"?

Я использую камень 'mail'.

1 Ответ

0 голосов
/ 06 января 2012

Использование исключения является, вероятно, лучшей практикой, поскольку REGEX не найдет все возможные ошибки в почтовом адресе.

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

require 'mail'

mail = Mail.new do
      from 'peter@lustig.de'
      to ("#{send.toAdress}")
      subject ("#{send.subject}")

      html_part do
        content_type 'text/html; charset=UTF-8'
        body ("#{send.body}")
      end
    end if send.toAdress.match /regex_to_match_email/

Что касается /regex_to_match_email/, я думаю, что это вопрос вкуса.Я обычно использую это

\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

однако, это далеко от совершенства.

...