mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
# Validation for email addresses
|
|
|
|
class EmailAddressValidation
|
|
|
|
attr_reader :email_address
|
|
|
|
# @param [String] email_address Email address to be validated
|
|
def initialize(email_address)
|
|
@email_address = email_address
|
|
end
|
|
|
|
def to_s
|
|
email_address
|
|
end
|
|
|
|
# Checks if the email address has a valid format.
|
|
# Reports email addresses without dot in domain as valid (zammad@localhost).
|
|
#
|
|
# @param mx [Boolean] check only syntax or MX as well
|
|
#
|
|
# @return [true] if email address has valid format
|
|
# @return [false] if email address has no valid format
|
|
def valid?(check_mx: false)
|
|
valid!(check_mx:)
|
|
rescue InvalidEmailAddressError
|
|
false
|
|
end
|
|
|
|
def valid!(check_mx: false)
|
|
error_message = EmailAddressValidator.error email_address, host_validation: check_mx ? :mx : :syntax
|
|
return true if error_message.blank?
|
|
|
|
raise InvalidEmailAddressError, error_message
|
|
end
|
|
|
|
class InvalidEmailAddressError < StandardError
|
|
def initialize(message = '')
|
|
super("The email address is invalid: #{message}")
|
|
end
|
|
end
|
|
|
|
end
|