1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # Copyright (C) 2012-2025 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
|