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