класс Net::SMTP::Response
Этот класс представляет собой ответ, полученный от сервера SMTP. Экземпляры этого класса создаются классом SMTP; их не следует создавать напрямую. Для получения дополнительной информации об ответах SMTP см. раздел 4.2 RFC 5321
Атрибуты
Трехзначный код ответа сервера SMTP
Текст ответа сервера SMTP, понятный человеку
Публичные методы класса
# File lib/net/smtp.rb, line 1009 def initialize(status, string) @status = status @string = string end
Создаёт новый экземпляр класса Response и устанавливает атрибуты status и string
# File lib/net/smtp.rb, line 1003 def self.parse(str) new(str[0,3], str) end
Парсит полученный ответ и разделяет код ответа и текст ответа, понятный человеку
Публичные методы экземпляра
# File lib/net/smtp.rb, line 1052
def capabilities
return {} unless @string[3, 1] == '-'
h = {}
@string.lines.drop(1).each do |line|
k, *v = line[4..-1].chomp.split
h[k] = v
end
h
end Возвращает словарь текста ответа, понятного человеку, если он состоит из нескольких строк. Первая строка не возвращается. Ключ словаря - первое слово, значение - массив, в котором каждое последующее слово является значением в массиве.
# File lib/net/smtp.rb, line 1033 def continue? status_type_char() == '3' end
Определяет, был ли полученный ответ положительным промежуточным ответом (код ответа 3xx)
# File lib/net/smtp.rb, line 1044
def cram_md5_challenge
@string.split(/ /)[1].unpack('m')[0]
end Создаёт вызов CRAM-MD5. Более подробную информацию о CRAM-MD5 можно найти на Википедии: en.wikipedia.org/wiki/CRAM-MD5
# File lib/net/smtp.rb, line 1064 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 1038 def message @string.lines.first end
Первая строка текста ответа, понятного человеку
# File lib/net/smtp.rb, line 1021 def status_type_char @status[0, 1] end
Извлекает первую цифру кода ответа для определения типа статуса
# File lib/net/smtp.rb, line 1027 def success? status_type_char() == '2' end
Определяет, был ли полученный ответ положительным завершающим ответом (код ответа 2xx)
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.