класс Net::SMTP::Response
Этот класс представляет ответ, полученный от сервера SMTP. Экземпляры этого класса создаются классом SMTP; они не должны создаваться пользователем напрямую. Для получения дополнительной информации об ответах SMTP см. Раздел 4.2 RFC 5321
Атрибуты
Трехзначный код ответа сервера SMTP
Текстовое описание ответа сервера SMTP (человекочитаемый текст)
Общедоступные методы класса
# File lib/net/smtp.rb, line 1038 def initialize(status, string) @status = status @string = string end
Создаёт новый экземпляр класса Response и задаёт атрибуты status и string
# File lib/net/smtp.rb, line 1032 def self.parse(str) new(str[0,3], str) end
Парсит полученный ответ и разделяет код ответа и человекочитаемый текст ответа
Общедоступные методы экземпляра
# File lib/net/smtp.rb, line 1081
def capabilities
return {} unless @string[3, 1] == '-'
h = {}
@string.lines.drop(1).each do |line|
k, *v = line[4..-1].split(' ')
h[k] = v
end
h
end Возвращает хэш с человекочитаемым текстом ответа, если ответ состоит из нескольких строк. Первая строка не возвращается. Ключ хэша — первое слово, значение — массив, где каждое последующее слово является значением в массиве
# File lib/net/smtp.rb, line 1062 def continue? status_type_char() == '3' end
Определяет, является ли полученный ответ положительным промежуточным ответом (код ответа 3xx)
# File lib/net/smtp.rb, line 1073
def cram_md5_challenge
@string.split(/ /)[1].unpack1('m')
end Создаёт вызов CRAM-MD5. Дополнительную информацию о CRAM-MD5 можно найти на Википедии: en.wikipedia.org/wiki/CRAM-MD5
# File lib/net/smtp.rb, line 1093 def exception_class case @status when /\A4/ then SMTPServerBusy when /\A50/ then SMTPSyntaxError when /\A53/ then SMTPAuthenticationError when /\A5/ then SMTPFatalError else SMTPUnknownError end end
Определяет, была ли ошибка, и поднимает соответствующую ошибку на основе кода ответа
# File lib/net/smtp.rb, line 1067 def message @string.lines.first end
Первая строка человекочитаемого текста ответа
# File lib/net/smtp.rb, line 1050 def status_type_char @status[0, 1] end
Извлекает первую цифру из кода ответа для определения типа статуса
# File lib/net/smtp.rb, line 1056 def success? status_type_char() == '2' end
Определяет, является ли полученный ответ положительным завершающим ответом (код ответа 2xx)
Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.