class Mail::SmtpEnvelope
:nodoc:
def from=(addr)
def from=(addr) if Utilities.blank? addr raise ArgumentError, "SMTP From address may not be blank: #{addr.inspect}" end @from = validate_addr 'From', addr end
def initialize(mail)
def initialize(mail) self.from = mail.smtp_envelope_from self.to = mail.smtp_envelope_to self.message = mail.encoded end
def message=(message)
def message=(message) if Utilities.blank?(message) raise ArgumentError, 'SMTP message may not be blank' end @message = message end
def to=(addr)
def to=(addr) if Utilities.blank?(addr) raise ArgumentError, "SMTP To address may not be blank: #{addr.inspect}" end @to = Array(addr).map do |addr| validate_addr 'To', addr end end
def validate_addr(addr_name, addr)
def validate_addr(addr_name, addr) if addr.bytesize > MAX_ADDRESS_BYTESIZE raise ArgumentError, "SMTP #{addr_name} address may not exceed #{MAX_ADDRESS_BYTESIZE} bytes: #{addr.inspect}" end if /[\r\n]/ =~ addr raise ArgumentError, "SMTP #{addr_name} address may not contain CR or LF line breaks: #{addr.inspect}" end addr end