класс Net::SMTP::Response
Этот класс представляет ответ, полученный от сервера SMTP. Экземпляры этого класса создаются классом SMTP; их создание пользователем напрямую не допускается. Для получения дополнительной информации об ответах SMTP см. раздел 4.2 RFC 5321.
Атрибуты
Трехзначный код ответа сервера SMTP
Текстовое описание ответа сервера SMTP, читаемое человеком
Публичные методы класса
# File lib/net/smtp.rb, line 999 def initialize(status, string) @status = status @string = string end
Создаёт новый экземпляр класса Response и устанавливает атрибуты status и string
# File lib/net/smtp.rb, line 993 def self.parse(str) new(str[0,3], str) end
Парсит полученный ответ и разделяет код ответа и удобочитаемый текст ответа
Публичные методы экземпляра
# File lib/net/smtp.rb, line 1042
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 1023 def continue? status_type_char() == '3' end
Определяет, является ли полученный ответ положительным промежуточным ответом (код ответа 3xx).
# File lib/net/smtp.rb, line 1034
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 1054 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 1028 def message @string.lines.first end
Первая строка удобочитаемого текста ответа.
# File lib/net/smtp.rb, line 1011 def status_type_char @status[0, 1] end
Получает первую цифру кода ответа для определения типа статуса.
# File lib/net/smtp.rb, line 1017 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.