Ruby 2.4

Net::SMTP::Response

Net::SMTP::Response类

Parent:Object

该类表示SMTP服务器收到的响应。这个类的实例由SMTP类创建; 他们不应该由用户直接创建。有关SMTP响应的更多信息,请查看RFC 5321的第4.2节

属性

statusR

SMTP响应的三位数答复码

stringR

SMTP响应的人可读型回复文本

公共类方法

new(status, string) Show source

创建Response类的新实例并设置状态和字符串属性

# File lib/net/smtp.rb, line 1003 def initialize(status, string) @status = status @string = string end

parse(str) Show source

解析收到的回复并分离回复代码和人可读型的回复文本

# File lib/net/smtp.rb, line 997 def self.parse(str) new(str[0,3], str) end

公共实例方法

capabilities() Show source

如果它有多行,则返回响应中人可读型回复文本的散列。它不返回第一行。散列的关键字是第一个字,散列的值是一个数组,其后的每个字都是数组中的一个值

# File lib/net/smtp.rb, line 1046 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

continue?() Show source

确定收到的响应是否是肯定性中间答复(3xx答复码)

# File lib/net/smtp.rb, line 1027 def continue? status_type_char() == '3' end

cram_md5_challenge() Show source

# File lib/net/smtp.rb, line 1038 def cram_md5_challenge @string.split(/ /)[1].unpack('m')[0] end

exception_class() Show source

确定是否存在错误并根据响应的答复代码提出适当的错误

# File lib/net/smtp.rb, line 1058 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

message() Show source

人可读型回复文本的第一行

# File lib/net/smtp.rb, line 1032 def message @string.lines.first end

status_type_char() Show source

取响应代码的第一位数字以确定状态类型

# File lib/net/smtp.rb, line 1015 def status_type_char @status[0, 1] end

success?() Show source

确定收到的回复是否为肯定型完成回复(2xx回复代码)

# File lib/net/smtp.rb, line 1021 def success? status_type_char() == '2' end