Sha256: 381053fa883c355d89c8f34701bb3c058b6db926112015dd55facae69448497f

Contents?: true

Size: 955 Bytes

Versions: 1

Compression:

Stored size: 955 Bytes

Contents

# frozen_string_literal: true

module Mail
  class SES
    # Validates a Mail::Message object before sending
    class MessageValidator
      # message - The Mail::Message object to be validated.
      def initialize(message)
        @message = message
      end

      # Validate the message.
      def validate
        validate_class
        validate_delivery_params
        validate_attachments
      end

      private

      def validate_class
        return if @message.is_a?(Mail::Message)

        raise ArgumentError.new('mail must be an instance of Mail::Message class')
      end

      def validate_delivery_params
        Mail::SmtpEnvelope.new(@message)
      end

      def validate_attachments
        return unless @message.has_attachments? && @message.text_part.nil? && @message.html_part.nil?

        raise ArgumentError.new('Attachment provided without message body')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mail-ses-1.1.0 lib/mail/ses/message_validator.rb